Bug 178027 - RFE: Provide a way to retrieve the lock holder from cluster, if possible [gulm plugin]
RFE: Provide a way to retrieve the lock holder from cluster, if possible [gul...
Product: Red Hat Cluster Suite
Classification: Red Hat
Component: magma-plugins (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Lon Hohberger
Cluster QE
Depends On: 178024
  Show dependency treegraph
Reported: 2006-01-17 09:59 EST by Lon Hohberger
Modified: 2009-04-16 16:19 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-01-17 15:00:04 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Lon Hohberger 2006-01-17 09:59:44 EST
+++ 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
without it.

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.
Comment 1 Lon Hohberger 2006-01-17 15:00:04 EST
This does not appear to be possible to do from the libgulm API.  As such, CANTFIX.

Note You need to log in before you can comment on or make changes to this bug.