From: Jason S. <js...@in...> - 2010-06-04 03:31:08
|
It looks like we have a deadlock. Processor 15 is holding the lock that Processor 6 wants. Processor 6 is holding the lock that processor 15 wants. I was under the impression that you could have multiple, simultaneous read locks on a single collection. Is that not true? Can someone explain why read locks are deadlocking one another? Jason Smith ________________________________________ From: Paul Ryan Sent: Thursday, June 03, 2010 9:24 PM To: Jason Smith Subject: Re: [Exist-open] Is it possible to detect deadlocks in eXist? You might want to forward this to the exist list as adam retter might be able to answer too. -- Paul Ryan On Jun 3, 2010, at 9:19 PM, Jason Smith wrote: > Here is a JMX log. These are all read locks. I was under the impression that multiple threads could share many read locks, and that only write locks are blocking. Was I mistaken? > > Thanks for your earlier answer. > > ******AFTER LOAD TEST (LOCKED STATE) > Connected to MBean server. > MEMORY: > Current heap: 68,044 k Committed memory: 103,616 k > Max memory: 504,896 k > List of threads currently waiting for a lock: > ----------------------------------------------- > Thread http-8086-Processor17 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor19 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor12 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor14 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor15 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor23 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor4 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor11 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor8 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor5 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db > Held by: [http-8086-Processor6] > Thread http-8086-Processor6 > Lock type: COLLECTION > Lock mode: READ > Lock id: /db/dashboard > Held by: [http-8086-Processor15] > > > Jason Smith > ________________________________________ > From: Wolfgang Meier [wol...@ex...] > Sent: Thursday, June 03, 2010 4:17 PM > To: Jason Smith > Cc: ml > Subject: Re: [Exist-open] Is it possible to detect deadlocks in eXist? > > Just a quick note (it's getting late here): you can use the JMX client > (parameter -l) to obtain more information on which threads are > currently waiting for locks on documents or collections and which > other thread does hold that lock. See > > http://demo.exist-db.org/exist/jmx.xml#N10178 > > It may help us to see the report this generates. > > Wolfgang |