This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug go/48242] gotest needs timeout mechanism


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48242

--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-04-04 17:23:00 UTC ---
When I attach gdb to the hanging process (on Solaris 8/x86), I find:

[Switching to Thread 4 (LWP 1)]
0xbf6cac1b in _sigsuspend () from /usr/lib/libc.so.1
(gdb) where
#0  0xbf6cac1b in _sigsuspend () from /usr/lib/libc.so.1
#1  0xbeaa6a44 in sigsuspend () from /usr/lib/libthread.so.1
#2  0xbf71a0c5 in sigsuspend () from /usr/lib/libc.so.1
#3  0xbee2c61c in stop_for_gc ()
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-go.c:302
#4  0xbea979bf in __sighndlr () from /usr/lib/libthread.so.1
#5  <signal handler called>
#6  0xbf6c9891 in _poll () from /usr/lib/libc.so.1
#7  0xbf6dd41f in select () from /usr/lib/libc.so.1
#8  0xbefff522 in libgo_syscalls.syscall.Select (nfds=0, r=0x0, w=0x0, e=0x0, 
    timeout=0x9e000390)
    at /vol/gcc/src/hg/trunk/local/libgo/syscalls/sysfile_posix.go:213
#9  0xbf00015a in libgo_syscalls.syscall.Sleep (nsec=1000000000)
    at /vol/gcc/src/hg/trunk/local/libgo/syscalls/sleep_select.go:11
#10 0xbeef85ac in time.sysSleep (t=1000000000)
    at /vol/gcc/src/hg/trunk/local/libgo/go/time/sys.go:57
#11 0xbeefd993 in time.sleeper (sleeperId=1)
    at /vol/gcc/src/hg/trunk/local/libgo/go/time/sleep.go:128
#12 0xbeef80d8 in time.$thunk0 (__go_thunk_parameter=0x9e010de0)
    at /vol/gcc/src/hg/trunk/local/libgo/go/time/sleep.go:109
#13 0xbee2c957 in start_go_thread (thread_arg=0x9e01c7c0)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-go.c:167
#14 0xbea978fc in _thread_start () from /usr/lib/libthread.so.1
[...]
(gdb) 
#8  0xbefff522 in libgo_syscalls.syscall.Select (nfds=0, r=0x0, w=0x0, e=0x0, 
    timeout=0x9e000390)
    at /vol/gcc/src/hg/trunk/local/libgo/syscalls/sysfile_posix.go:213
213       n = libc_select(nfds, (*byte)(unsafe.Pointer(r)),
(gdb) p timeout
$1 = (struct syscall.Timeval *) 0x9e000390
(gdb) p *$1
$2 = {Sec = 1, Usec = 0}

I.e. the timeout is long past, but still the select hangs.

    Rainer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]