On 2013-06-11 23:08, Alex Bligh wrote:
Sorin,
On 11 Jun 2013, at 21:57, Sorin Manolache wrote:
The threadallocatormutex is created from a child of the request pool. The
request pool and its child-pools are destroyed when the request terminates. Do
you use the threadpool/threadallocator/threadallocatormutex afterwards?
Nope. It's one long running request, and at the end of the request handler, the
thread I've created is _join'ed, and the pools are destroyed.
When I torture test it, I can run 10 hours of fullscreen video through it, and
every 5 or 6th such test results in a core dump (inevitably a bucket brigade
pointer being unhappy). We have a customer who seems to be talented at making
things go wrong and who does not get an abort/segv, but a 100% CPU live lock.
gdb suggests the destruction of the bucket brigade goes around and around -
again a symptom of bucket brigade linked list pointers being unhappy.
I'm sorry, I ran out of ideas. I suppose that the operations of the two
threads on the bucket brigade are protected by mutexes...
S