From: Wolfgang M. <wol...@gm...> - 2006-08-12 10:54:21
|
The deadlock we had in the XQTS XQuery test suite did disappear after fixing the text node serialization bug described in my other post today. I'm not sure if this is related to your issue. It could be. > Do you have any suggestions about what I can do to reduce the likelihood of this > happening? I re-checked the exceptions you reported. Unfortunately, we don't have a stack trace to show us which operation triggered the exception. I'm now adding some log statements to the lock classes to print the stack trace to a dedicated log file. Maybe this helps next time you get the deadlock. Also, if you suspect a deadlock in a Java application, try to press Ctrl-] on Linux or Ctrl-Break on windows. This will generate a stack trace of all running threads. Please post this here. > This same problem just happened again. As near as I can tell, I am serializing all > write requests through a single lock in the sole application that talks to eXist. I > have not serialized read requests.. Would that help? A read request can certainly collide with a concurrent write request and thus generate a deadlock. It is also possible that the acquire/release sequence within eXist is wrong at some point, i.e. a lock is acquired and not released or locks are released in a different order. Anyway, I think we need more stack traces. I will change the lock classes accordingly. Wolfgang |