Nicholas (& any newbies listening in),

Just to make sure all bases are covered:

1. LIST.READU's "EVERY" keyword.
Besides showing group locks, it will also, at the very end, show who is waiting on a lock. If there are 2 lines where waiter & lock-holder are reversed on the 2nd line, you have a deadlock.

2. There is also a deadlock daemon that you can run or not run as you wish.
If you turn it off, & closely monitor it manually, you can find the offending code. Both processes will hang until you find it & log one off. PORT.STATUS can then tell you what code is being executed when the deadlock hit the 2 offending processes.
PORT.STATUS PID [pid] LAYER.STACK is especially useful.

2b. The deadlock daemon's log can give you a history of when deadlocks were found.
My last 2 entries were last June & August:
      Wed Jun 01 15:49:07 2011 - Deadlock detected (victim User 61023)
      Mon Aug 01 17:05:57 2011 - Deadlock detected (victim User 5380)

3. If you have writes without explicit readus preceding them, UV will wait for a readu lock behind the scenes, but it won't tell you about it in the LIST.READU waiter section. You can change the default behaviour.
I think deadlock daemon handles this, but I don't recall for certain.


On 3/26/2012 2:19 AM, Namacha, N. (Nicholas) wrote:
  The issue here is to try and monitor for deadlocks.

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to