lxd

Comment 9 for bug 2062176

Revision history for this message
Aleksandr Mikhalitsyn (mihalicyn) wrote (last edit ):

Another reproducer:

# cat test2.c
#include <pthread.h>
#include <stdio.h>

void *threadfn(void *ptr)
{
    return NULL;
}

int main(int argc, char **argv)
{
    pthread_t thread;
    pthread_create(&thread, NULL, &threadfn, NULL);
    pthread_join(thread, NULL);
    return 0;
}

# arm-linux-gnueabihf-gcc -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -static test2.c

# strace -n -f /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 ./a.out
...
[pid 3205] [ 338] set_robust_list(0xf7b3180c, 12 <unfinished ...>

[pid 3204] [ 240] <... futex resumed>) = -1 ENOSYS (Function not implemented)

BOOM!

[pid 3205] [ 338] <... set_robust_list resumed>) = 0
[pid 3204] [ 146] writev(2, [{iov_base="The futex facility returned an u"..., iov_len=54}], 1The futex facility returned an unexpected error code.
 <unfinished ...>
[pid 3205] [ 175] rt_sigprocmask(SIG_SETMASK, [], <unfinished ...>
[pid 3204] [ 146] <... writev resumed>) = 54
[pid 3205] [ 175] <... rt_sigprocmask resumed>NULL, 8) = 0
[pid 3204] [ 192] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 3205] [ 175] rt_sigprocmask(SIG_BLOCK, ~[RT_1], <unfinished ...>
[pid 3204] [ 192] <... mmap2 resumed>) = 0xf7330000
[pid 3205] [ 175] <... rt_sigprocmask resumed>NULL, 8) = 0
[pid 3204] [ 175] rt_sigprocmask(SIG_UNBLOCK, [ABRT], <unfinished ...>
[pid 3205] [ 220] madvise(0xf7331000, 8372224, MADV_DONTNEED <unfinished ...>
[pid 3204] [ 175] <... rt_sigprocmask resumed>NULL, 8) = 0
[pid 3205] [ 220] <... madvise resumed>) = 0
[pid 3205] [ 1] exit(0 <unfinished ...>
[pid 3204] [ 224] gettid( <unfinished ...>
[pid 3205] [ 1] <... exit resumed>) = ?
[pid 3205] [ 1] +++ exited with 0 +++
[ 224] <... gettid resumed>) = 3204
[ 20] getpid() = 3204
[ 268] tgkill(3204, 3204, SIGABRT) = 0
[ 268] --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=3204, si_uid=0} ---
[ 268] +++ killed by SIGABRT (core dumped) +++