Ralph Goers wrote:
We tried to deploy an update to our product. Pretty much the only thing
we did to Cocoon was to replace Xalan with XSLTC which produces a
dramatic performance improvement. However, Cocoon is not consistently
hanging. I tried to attach the thread dumps but they are too big. They
also don't make any sense to me. I've reduced them down and pasted them
below. It shows many calls to XMLFileModule waiting for a lock. The
thread that has the lock is waiting for ResourceLimitingPool to get a
lock. However, the thread dump doesn't show any threads holding that
lock. Does anyone have any ideas on this? This is cocoon 2.1.7-dev svn
revision 122686.
Looks like you've got a classic deadlock.
Request (*) calls XMLFileModule which synchronizes on its internal cache, and
tries to parse a document, which is coming from Cocoon pipeline, so tree
processor looks up a pipeline object.
But while this request does this, new requests are coming in, and each one of
them takes one pipeline object out of the pool, and then all those requests are
piling up before XMLFileModule lock.
Pipeline pool runs out of resources, and request (*) above blocks waiting when
pool gets resources back.
But it won't.
What I'm not clear on is IIRC component pools should use soft limiting pools, so
there should be no waiting in ResourceLimitingPool. You may want to double check
this.
Vadim
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]