steve
steve

Reputation: 290

perl threading core dump

I have a perl script that does a lot of processing. It is multithreaded using the example from the accepted solution from this question:

How to limit the max number of parallel threads in perl

As it runs it seems to begin starting and running threads correctly.. Then it throws this error and dumps the core.

perl: posixio.c:342: px_rel: Assertion `pxp->bf_offset <= offset && offset < pxp->bf_offset + (off_t) pxp->bf_extent' failed.

My question... what does that mean?? What is happening?

Upvotes: 0

Views: 414

Answers (1)

ikegami
ikegami

Reputation: 385915

An assertion error is thrown by assert(EXPR), a C macro that kills the program if its argument evaluates to something false. (Though for performance reasons, assert is a no-op in non-debug builds.)

So that means the stated expression was false and it should never be. If you want to find out why it was false, you'll have to backtrack.

Of course, there's a good chance someone's already done it and fixed the bug, thus you should try your code with a newer version of Perl. perlbrew can help you install a new version of Perl locally. (Don't forget -Dusethreads!)

Upvotes: 1

Related Questions