SIGBUS failure for misc/tst-bz21269 on i386

Florian Weimer fweimer@redhat.com
Wed Mar 28 08:01:00 GMT 2018


On 03/27/2018 11:47 PM, Aurelien Jarno wrote:
> Here is the coredump that I can get:
> 
>    Thread 1 "tst-bz21269" received signal SIGBUS, Bus error.
>    0x565564a0 in do_test () at ../sysdeps/unix/sysv/linux/i386/tst-bz21269.c:217
>    217           while (atomic_load (&ftx) != 0)
>    (gdb) bt
>    #0  0x565564a0 in do_test () at ../sysdeps/unix/sysv/linux/i386/tst-bz21269.c:217
>    #1  0x56556bc2 in support_test_main (argc=<optimized out>, argv=0xffffd518, config=0xffffd424) at support_test_main.c:321
>    #2  0x56556061 in main (argc=2, argv=0xffffd514) at ../support/test-driver.c:164
>    (gdb) print &ftx
>    $1 = (atomic_uint *) 0x5655a0e0 <ftx>
>    (gdb) print ftx
>    $2 = 0

Ahh.  I see.

       /* Fire up thread modify_ldt call.  */
       atomic_store (&ftx, 2);

       while (atomic_load (&ftx) != 0)
	;

       /* On success, modify_ldt will segfault us synchronously and we 
will escape via siglongjmp.  */
       support_record_failure ();

But:

   xsethandler (SIGSEGV, sigsegv_handler, 0);
   /* 32-bit kernels send SIGILL instead of SIGSEGV on IRET faults.  */
   xsethandler (SIGILL, sigsegv_handler, 0);

So some kernels apparently use SIGBUS instead, and the crash actually 
shows the test succeeded.

Would you please try the attached patch?

Thanks,
Florian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sigbus.patch
Type: text/x-patch
Size: 902 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20180328/17936aa2/attachment.bin>


More information about the Libc-alpha mailing list