Red Hat Bugzilla – Bug 178027
RFE: Provide a way to retrieve the lock holder from cluster, if possible [gulm plugin]
Last modified: 2009-04-16 16:19:34 EDT
+++ This bug was initially created as a clone of Bug #178024 +++
Description of problem:
In order to detect deadlocks, it might be a good thing to be able to query the
underlying cluster locking system for the holder of an exclusive lock so that we
can detect deadlock easily.
This should not break existing application APIs on RHEL4 or STABLE branches, and
newer applications which understand the extension *must* be able to function
Given the above requirements, and the fact that node IDs are 64 bit in magma
(thus, simply casting the return pointer is not going to work on 32-bit
architectures), the easiest way to do this is to:
(a) Provide a new flag to clu_lock / cp_lock APIs which gets passed down to the
(b) Failure code from the lock functions, and store the node ID in the first 64
bits of the return pointer block (which the plugin will allocate).
(c) The caller will be expected to free this, as the caller should be expecting
it if it is using the new flag in (a).
NOTE: In future (e.g. HEAD) branches, the locking API should be changed to have
a uint64_t * pointer parameter (possibly with a new lock function call - which
need not necessarily be implemented by the plugin(s)) instead of the above hack.
This does not appear to be possible to do from the libgulm API. As such, CANTFIX.