Subject | Re: [firebird-support] strange hang |
---|---|
Author | Helen Borrie |
Post date | 2005-03-03T02:11:05Z |
At 08:48 PM 2/03/2005 +0200, Maris Paupe wrote:
I smell a rat when I see this trace. It seems to be saying that the engine
is stuck, trying to invoke a thread for the garbage collector. (Or it might
be saying that the GC thread is busy and the engine has already reached the
limit of threads it is allowed to spawn...)
Given that Linuxen are in a transition between the old threading engine
(which, in my ignorance, I assume is what is being invoked from /lib/tls)
and the new model (NPTL) -- are you looking at a Debian build that was done
with the NPTL includes, that is being run on a version of Deb that doesn't
support NPTL?
The Deb builds don't follow our naming conventions for packages, otherwise
it would be realistic to ask you to do an RPM query to find out whether you
accidentally installed an NPTL build...
Would you take this posting (the one I am replying to) and post it to
firebird-devel? Please be exact in describing 1) the version of the server
that you are running; 2) the name of the package you installed; and 3)
the Linux kernel version.
./heLen
>I collected some data when this 'hang' happens, yep exactly as you toldI plead near-total ignorance with respect to thread handling on Linux, but
>firebird was using processor 100%(btw two P4 processors), I can't wait
>longer than 5min to see if this operation will finish so I always have
>to kill firebirs and restart it. When this strage thing happens I can't
>make any connection to database, it doesn't react.
>
>Here are some backtraces from gdb:
>
>(gdb) thread 3
>[Switching to thread 3 (Thread -1312822352 (LWP 502))]#0 0xb7f6e440 in
>pthread_cond_timedwait@@GLIBC_2.3.2
> () from /lib/tls/libpthread.so.0
>(gdb) bt
>#0 0xb7f6e440 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
>/lib/tls/libpthread.so.0
>#1 0x08059ed3 in gds__cleanup ()
>#2 0x080535bb in ?? ()
>#3 0xb7f6bb63 in start_thread () from /lib/tls/libpthread.so.0
>#4 0xb7e2bc4a in clone () from /lib/tls/libc.so.6
>(gdb) thread 2
>[Switching to thread 2 (Thread -1337988176 (LWP 3201))]#0 0xb7f6e440 in
>pthread_cond_timedwait@@GLIBC_2.3.2
> () from /lib/tls/libpthread.so.0
>(gdb) bt
>#0 0xb7f6e440 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
>/lib/tls/libpthread.so.0
>#1 0x08059ed3 in gds__cleanup ()
>#2 0x080535bb in ?? ()
>#3 0xb7f6bb63 in start_thread () from /lib/tls/libpthread.so.0
>#4 0xb7e2bc4a in clone () from /lib/tls/libc.so.6
>(gdb) thread 1
>[Switching to thread 1 (Thread -1210806144 (LWP 6279))]#0 0xb7e37e2b in
>pthread_setcanceltype ()
> from /lib/tls/libc.so.6
>(gdb) bt
>#0 0xb7e37e2b in pthread_setcanceltype () from /lib/tls/libc.so.6
>#1 0xb7e254c8 in select () from /lib/tls/libc.so.6
>#2 0x080be6f9 in ERRD_post ()
>#3 0x080be382 in ERRD_post ()
>#4 0x080cd471 in ERRD_post ()
>#5 0x0804e564 in ?? ()
>#6 0x0804e0be in ?? ()
>#7 0xb7d69904 in __libc_start_main () from /lib/tls/libc.so.6
>#8 0x0804dd41 in ?? ()
>What could be the reason?
I smell a rat when I see this trace. It seems to be saying that the engine
is stuck, trying to invoke a thread for the garbage collector. (Or it might
be saying that the GC thread is busy and the engine has already reached the
limit of threads it is allowed to spawn...)
Given that Linuxen are in a transition between the old threading engine
(which, in my ignorance, I assume is what is being invoked from /lib/tls)
and the new model (NPTL) -- are you looking at a Debian build that was done
with the NPTL includes, that is being run on a version of Deb that doesn't
support NPTL?
The Deb builds don't follow our naming conventions for packages, otherwise
it would be realistic to ask you to do an RPM query to find out whether you
accidentally installed an NPTL build...
Would you take this posting (the one I am replying to) and post it to
firebird-devel? Please be exact in describing 1) the version of the server
that you are running; 2) the name of the package you installed; and 3)
the Linux kernel version.
./heLen