Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 308424 Details for
Bug 231696
RFE: Use understandable term in debugging output when locking cluster volumes
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
simple patch
lvm2-clvmd-decode-cmd.patch (text/plain), 6.02 KB, created by
Milan Broz
on 2008-06-05 10:09:10 UTC
(
hide
)
Description:
simple patch
Filename:
MIME Type:
Creator:
Milan Broz
Created:
2008-06-05 10:09:10 UTC
Size:
6.02 KB
patch
obsolete
>--- > daemons/clvmd/clvmd.c | 29 ++++++++++++++++-- > daemons/clvmd/lvm-functions.c | 65 ++++++++++++++++++++++++++++++++++++++---- > lib/cache/lvmcache.c | 3 + > 3 files changed, 86 insertions(+), 11 deletions(-) > >Index: lvm2.up/daemons/clvmd/lvm-functions.c >=================================================================== >--- lvm2.up.orig/daemons/clvmd/lvm-functions.c 2008-06-03 13:28:50.000000000 +0200 >+++ lvm2.up/daemons/clvmd/lvm-functions.c 2008-06-05 10:57:59.000000000 +0200 >@@ -61,6 +61,58 @@ struct lv_info { > int lock_mode; > }; > >+static const char *decode_cmd(unsigned char cmdl) >+{ >+ static char buf[100]; >+ const char *type = "unknown"; >+ const char *scope = "unknown"; >+ const char *command = "unknown"; >+ >+ switch (cmdl & LCK_TYPE_MASK) { >+ case LCK_NULL: type = "NULL"; break; >+ case LCK_READ: type = "READ"; break; >+ case LCK_PREAD: type = "PREAD"; break; >+ case LCK_WRITE: type = "WRITE"; break; >+ case LCK_EXCL: type = "EXCL"; break; >+ case LCK_UNLOCK: type = "UNLOCK"; break; >+ } >+ >+ switch (cmdl & LCK_SCOPE_MASK) { >+ case LCK_VG: scope = "VG"; break; >+ case LCK_LV: scope = "LV"; break; >+ } >+ >+ switch (cmdl) { >+ case LCK_LV_EXCLUSIVE: command = "LCK_LV_EXCLUSIVE"; break; >+ case LCK_LV_SUSPEND: command = "LCK_LV_SUSPEND"; break; >+ case LCK_UNLOCK: command = "LCK_LV_UNLOCK"; break; >+ case LCK_LV_RESUME: command = "LCK_LV_RESUME"; break; >+ case LCK_LV_ACTIVATE: command = "LCK_LV_ACTIVATE"; break; >+ case LCK_LV_DEACTIVATE: command = "LCK_LV_DEACTIVATE"; break; >+ } >+ >+ sprintf(buf, "0x%x %s (%s|%s%s%s%s%s%s)", cmdl, command, type, scope, >+ cmdl & LCK_NONBLOCK ? "|NONBLOCK" : "", >+ cmdl & LCK_HOLD ? "|HOLD" : "", >+ cmdl & LCK_LOCAL ? "|LOCAL" : "", >+ cmdl & LCK_CLUSTER_VG ? "|CLUSTER_VG" : "", >+ cmdl & LCK_CACHE ? "|CACHE" : ""); >+ >+ return buf; >+} >+ >+static const char *decode_flags(unsigned char flags) >+{ >+ static char buf[100]; >+ >+ sprintf(buf, " 0x%x%s%s%s", flags, >+ flags & LCK_PARTIAL_MODE ? " PARTIAL_MODE" : "", >+ flags & LCK_MIRROR_NOSYNC_MODE ? " MIRROR_NOSYNC" : "", >+ flags & LCK_DMEVENTD_MONITOR_MODE ? " DMEVENTD_MONITOR" : ""); >+ >+ return buf; >+} >+ > char *get_last_lvm_error() > { > return last_error; >@@ -312,8 +364,8 @@ int do_lock_lv(unsigned char command, un > { > int status = 0; > >- DEBUGLOG("do_lock_lv: resource '%s', cmd = 0x%x, flags = %x\n", >- resource, command, lock_flags); >+ DEBUGLOG("do_lock_lv: resource '%s', cmd = %s, flags = %s\n", >+ resource, decode_cmd(command), decode_flags(lock_flags)); > > pthread_mutex_lock(&lvm_lock); > if (!cmd->config_valid || config_files_changed(cmd)) { >@@ -391,8 +443,8 @@ int pre_lock_lv(unsigned char command, u > before suspending cluster-wide. > */ > if (command == LCK_LV_SUSPEND) { >- DEBUGLOG("pre_lock_lv: resource '%s', cmd = 0x%x, flags = %d\n", >- resource, command, lock_flags); >+ DEBUGLOG("pre_lock_lv: resource '%s', cmd = %s, flags = %s\n", >+ resource, decode_cmd(command), decode_flags(lock_flags)); > > if (hold_lock(resource, LKM_PWMODE, LKF_NOQUEUE)) > return errno; >@@ -411,8 +463,8 @@ int post_lock_lv(unsigned char command, > int oldmode; > > DEBUGLOG >- ("post_lock_lv: resource '%s', cmd = 0x%x, flags = %d\n", >- resource, command, lock_flags); >+ ("post_lock_lv: resource '%s', cmd = %s, flags = %s\n", >+ resource, decode_cmd(command), decode_flags(lock_flags)); > > /* If the lock state is PW then restore it to what it was */ > oldmode = get_current_lock(resource); >@@ -505,6 +557,7 @@ static void drop_vg_locks() > */ > void drop_metadata(const char *vgname) > { >+ DEBUGLOG("Dropping metadata for VG %s\n", vgname); > pthread_mutex_lock(&lvm_lock); > lvmcache_drop_metadata(vgname); > pthread_mutex_unlock(&lvm_lock); >Index: lvm2.up/lib/cache/lvmcache.c >=================================================================== >--- lvm2.up.orig/lib/cache/lvmcache.c 2008-06-04 14:21:09.000000000 +0200 >+++ lvm2.up/lib/cache/lvmcache.c 2008-06-04 20:00:17.000000000 +0200 >@@ -494,7 +494,8 @@ struct volume_group *lvmcache_get_vg(con > return_NULL; > } > >- log_debug("Using cached metadata for VG %s.", vginfo->vgname); >+ log_debug("Using %s cached metadata for VG %s.", >+ vginfo->precommitted ? "precommitted" : "", vginfo->vgname); > > return vg; > } >Index: lvm2.up/daemons/clvmd/clvmd.c >=================================================================== >--- lvm2.up.orig/daemons/clvmd/clvmd.c 2008-05-22 15:07:48.000000000 +0200 >+++ lvm2.up/daemons/clvmd/clvmd.c 2008-06-05 10:55:17.000000000 +0200 >@@ -191,6 +191,26 @@ void debuglog(const char *fmt, ...) > } > } > >+static const char *decode_cmd(unsigned char cmdl) >+{ >+ static char buf[100]; >+ const char *command = "unknown"; >+ >+ switch (cmdl) { >+ case CLVMD_CMD_TEST: command = "TEST"; break; >+ case CLVMD_CMD_LOCK_VG: command = "LOCK_VG"; break; >+ case CLVMD_CMD_LOCK_LV: command = "LOCK_LV"; break; >+ case CLVMD_CMD_REFRESH: command = "REFRESH"; break; >+ case CLVMD_CMD_SET_DEBUG: command = "SET_DEBUG"; break; >+ case CLVMD_CMD_GET_CLUSTERNAME: command = "CLUSTERNAME";break; >+ case CLVMD_CMD_VG_BACKUP: command = "VG_BACKUP"; break; >+ } >+ >+ sprintf(buf, "(0x%x %s)", cmdl, command); >+ >+ return buf; >+} >+ > int main(int argc, char *argv[]) > { > int local_sock; >@@ -1169,8 +1189,8 @@ static void process_remote_command(struc > /* Get the node name as we /may/ need it later */ > clops->name_from_csid(csid, nodename); > >- DEBUGLOG("process_remote_command %d for clientid 0x%x XID %d on node %s\n", >- msg->cmd, msg->clientid, msg->xid, nodename); >+ DEBUGLOG("process_remote_command %s for clientid 0x%x XID %d on node %s\n", >+ decode_cmd(msg->cmd), msg->clientid, msg->xid, nodename); > > /* Check for GOAWAY and sulk */ > if (msg->cmd == CLVMD_CMD_GOAWAY) { >@@ -1441,8 +1461,9 @@ static int process_local_command(struct > int replylen = 0; > int status; > >- DEBUGLOG("process_local_command: msg=%p, msglen =%d, client=%p\n", msg, >- msglen, client); >+ DEBUGLOG("process_local_command: %s msg=%p, msglen =%d, client=%p\n", >+ decode_cmd(msg->cmd), msg, msglen, client); >+ > if (replybuf == NULL) > return -1; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 231696
: 308424