Bug 178026

Summary: RFE: Provide a way to retrieve the lock holder from cluster, if possible [cman/sm]
Product: Red Hat Cluster Suite Reporter: Lon Hohberger <lhh>
Component: magma-pluginsAssignee: Lon Hohberger <lhh>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: cluster-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: RHBA-2006-0240 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-03-09 14:48:15 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 178024    
Bug Blocks:    

Description Lon Hohberger 2006-01-17 09:58:39 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
plugin.
(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-24 14:19:26 EST
Fixes in CVS head / RHEL4 / STABLE
Comment 4 Red Hat Bugzilla 2006-03-09 14:48:15 EST
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2006-0240.html