in reply to Re^2: Perl Thread Quitting Abnormally
in thread Perl Thread Quitting Abnormally
Thread 20 terminated abnormally: panic: COND_SIGNAL (298) at cm.pl line 487. Terminating on signal SIGINT(2)
The error breaks down into several parts:
Fairly obviously means that thread number 20 was started, but it terminated as a result of something other than return or 'running off the end of the sub'.
This is the reason it terminated. Perl (threads.pm) itself terminated it because of an unexpected internal error condition (panic).
In this case, the code is executing (either explicitly in your code or implicitly through perl internal code):
#define COND_SIGNAL(c) \ STMT_START { \ if ((c)->waiters > 0 && \ ReleaseSemaphore((c)->sem,1,NULL) == 0) \ Perl_croak_nocontext("panic: COND_SIGNAL (%ld)",GetLastError() +); \ } STMT_END
The 298 is the system error code returned by GetLastError after the ReleaseSemaphore() call fails.
It translates to "Too many posts were made to a semaphore." which is further explained as
There is a limited number of times that an event semaphore can be posted. You tried to post an event semaphore that has already been posted the maximum number of times.
If you are making extensive use of threads::shared::cond_* calls in your code, that could be the root of the problem. If you want help in debugging that further, you will have to "show us the code".
If you are not using the cond_* calls in your code, then it could be that you've unearthed a bug in Perl itself. You might try upgrading your versions of Perl to (say) 5.10.1. And/or your version of threads &| threads::shared.
Under most circumstances, this will only occur if you (or someone) types ^C. Did you fail to mention that your application is hanging and you get the above error message only when you interrupt it?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Perl Thread Quitting Abnormally
by Anonymous Monk on Jul 06, 2010 at 09:38 UTC | |
by BrowserUk (Patriarch) on Jul 06, 2010 at 11:26 UTC | |
by Anonymous Monk on Jul 07, 2010 at 15:56 UTC | |
by BrowserUk (Patriarch) on Jul 07, 2010 at 21:27 UTC | |
by Corion (Patriarch) on Jul 06, 2010 at 10:18 UTC |