```
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xf77ee330 (LWP 2958)]
0x000000000040f5bc in raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x000000000040f5bc in raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:55
#1 0x000000000040f884 in abort () at abort.c:89
#2 0x00000000004073b4 in uw_update_context_1 (
context=context@entry=0xf77ec820, fs=fs@entry=0xf77ebec8)
at /home/GCC-Build/p660/p660_build_dir/src/gcc-4.9/libgcc/unwind-dw2.c:1430
#3 0x00000000004078c0 in uw_update_context
(context=context@entry=0xf77ec820,
fs=fs@entry=0xf77ebec8)
at
/home/GCC-Build/p660/p660_build_dir/src/gcc-4.9/libgcc/unwind-dw2.c:1506
#4 0x0000000000407a9c in uw_advance_context (fs=0xf77ebec8,
context=0xf77ec820)
at
/home/GCC-Build/p660/p660_build_dir/src/gcc-4.9/libgcc/unwind-dw2.c:1529
#5 _Unwind_ForcedUnwind_Phase2 (exc=exc@entry=0xf77ee580,
context=context@entry=0xf77ec820)
at /home/GCC-Build/p660/p660_build_dir/src/gcc-4.9/libgcc/unwind.inc:185
#6 0x0000000000408228 in _Unwind_ForcedUnwind (exc=0xf77ee580,
stop=stop@entry=0x405440 <unwind_stop>, stop_argument=0xf77eddd8)
at /home/GCC-Build/p660/p660_build_dir/src/gcc-4.9/libgcc/unwind.inc:207
#7 0x00000000004055c4 in __pthread_unwind (buf=<optimized out>)
at unwind.c:126
#8 0x00000000004050b4 in __do_cancel () at ./pthreadP.h:283
#9 sigcancel_handler (sig=<optimized out>, si=<optimized out>,
ctx=<optimized out>) at nptl-init.c:225
---Type <return> to continue, or q <return> to quit---
#10 <signal handler called>
#11 0x0000000000000000 in ?? ()
#12 0x0000000000423084 in __select (nfds=-66661, readfds=<optimized out>,
writefds=<optimized out>, exceptfds=<optimized out>, timeout=0x0)
at ../sysdeps/unix/sysv/linux/generic/select.c:45
#13 0x0000000000400604 in TEST_TaskDelay (
uiMillSecs=<error reading variable: can't compute CFA for this frame>)
at test-cancel.c:18
#14 0x0000000000400680 in printids (
s=<error reading variable: can't compute CFA for this frame>)
at test-cancel.c:38
#15 0x00000000004006d0 in thr_fn (
arg=<error reading variable: can't compute CFA for this frame>)
at test-cancel.c:49
#16 0x0000000000401b28 in start_thread (arg=0x4a3000) at
pthread_create.c:335
#17 0x0000000000401b28 in start_thread (arg=0x4a3000) at
pthread_create.c:335
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
```
Such abort is raise by the following code:
```
static void
uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState
*fs)
{
//...
/* Compute this frame's CFA. */
switch (fs->regs.cfa_how)
{
case CFA_REG_OFFSET:
cfa = _Unwind_GetPtr (&orig_context, fs->regs.cfa_reg);
cfa += fs->regs.cfa_offset;
break;
case CFA_EXP:
{
const unsigned char *exp = fs->regs.cfa_exp;
_uleb128_t len;
exp = read_uleb128 (exp, &len);
cfa = (void *) (_Unwind_Ptr)
execute_stack_op (exp, exp + len, &orig_context, 0);
break;
}
default:
gcc_unreachable ();
}
context->cfa = cfa;
//...
}
``
Any suggestion is appreciated.
CC gcc mailing list. Sorry if it is off topic.
Regards
Bamvor
pipeio_x tests are very unstable and may fail randomly. I strongly
suspect race conditions, as they all work like a charm if pinned to
single CPU with taskset. Probably, race is the reason of clone02 too.
Though I'm not sure, is the race in kernel, glibc or test itself.
But I know for sure that pause01 fails due to test design:
if (setitimer(ITIMER_REAL, &it, NULL)) // For 1000us
tst_brkm(TBROK | TERRNO, NULL, "setitimer() failed");
TEST(pause());
As setitimer() and pause() calls are not atomic, alarm may come before
pause()
is called, and be silently dropped by the handler. Next pause() call hangs
test forever. I already reported to LTP list.
open12, rename11, rmdir02, mmap16, mtest06 - all call mkfs tool, and it
returns
error code. I didn't investigate it much yet.
umount02_x, utime06 - cannot reproduce out of scenario, even run it in
infinite
loop - they work fine.
Full test log is attached.
Yury