From: Jeffrey Altman Date: Sat, 21 Aug 2010 04:23:45 +0000 (-0400) Subject: Windows: Log cell along with volume id for server errors X-Git-Tag: openafs-devel-1_5_77~13 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=54fd97ac8c19dae4ff6524bd463cc01316fbf701;p=packages%2Fo%2Fopenafs.git Windows: Log cell along with volume id for server errors When logging server volume instance errors to the windows application event log, be sure to log the cell as well. Translating from server ip address is non-trivial. Make it easier for administrators triaging issues to plug the volume and cell info into vos commands. LICENSE MIT Change-Id: I801fcd5c1afba4a8cdef4386fec72b9a529d4cfb Reviewed-on: http://gerrit.openafs.org/2653 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit 2ef83d24846e6035b752fcbe98d980e046e074f9) Reviewed-on: http://gerrit.openafs.org/2700 --- diff --git a/src/WINNT/afsd/afsd_eventlog.c b/src/WINNT/afsd/afsd_eventlog.c index 065ec5a26..0709246b7 100644 --- a/src/WINNT/afsd/afsd_eventlog.c +++ b/src/WINNT/afsd/afsd_eventlog.c @@ -233,6 +233,12 @@ LogEvent(WORD wEventType, DWORD dwEventID, ...) case MSG_SERVER_REPORTS_VIO: case MSG_SERVER_REPORTS_VBUSY: case MSG_SERVER_REPORTS_VRESTARTING: + wNumArgs = 3; + lpArgs[0] = va_arg(listArgs, LPTSTR); + StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,afs_int32)); + lpArgs[1] = lpStrings[1]; + lpArgs[2] = va_arg(listArgs, LPTSTR); + break; case MSG_ALL_SERVERS_BUSY: case MSG_ALL_SERVERS_OFFLINE: case MSG_ALL_SERVERS_DOWN: diff --git a/src/WINNT/afsd/afsd_eventmessages.mc b/src/WINNT/afsd/afsd_eventmessages.mc index eb5dc361e..9e714a6de 100644 --- a/src/WINNT/afsd/afsd_eventmessages.mc +++ b/src/WINNT/afsd/afsd_eventmessages.mc @@ -114,7 +114,7 @@ Severity=Warning Facility=System SymbolicName=MSG_SERVER_REPORTS_VNOVOL Language=English -Server %1 reported volume %2 as not attached (may have been moved or deleted). +Server %1 reported volume %2 in cell %3 as not attached (may have been moved or deleted). . MessageId= @@ -122,7 +122,7 @@ Severity=Informational Facility=System SymbolicName=MSG_SERVER_REPORTS_VMOVED Language=English -Server %1 reported volume %2 as moved. +Server %1 reported volume %2 in cell %3 as moved. . MessageId= @@ -130,7 +130,7 @@ Severity=Warning Facility=System SymbolicName=MSG_SERVER_REPORTS_VOFFLINE Language=English -Server %1 reported volume %2 as offline. +Server %1 reported volume %2 in cell %3 as offline. . MessageId= @@ -138,7 +138,7 @@ Severity=Warning Facility=System SymbolicName=MSG_SERVER_REPORTS_VSALVAGE Language=English -Server %1 reported volume %2 as needs salvage. +Server %1 reported volume %2 in cell %3 as needs salvage. . MessageId= @@ -146,7 +146,7 @@ Severity=Warning Facility=System SymbolicName=MSG_SERVER_REPORTS_VNOSERVICE Language=English -Server %1 reported volume %2 as not in service. +Server %1 reported volume %2 in cell %3 as not in service. . MessageId= @@ -154,7 +154,7 @@ Severity=Warning Facility=System SymbolicName=MSG_SERVER_REPORTS_VIO Language=English -Server %1 reported volume %2 as temporarily unaccessible. +Server %1 reported volume %2 in cell %3 as temporarily unaccessible. . @@ -387,7 +387,7 @@ Severity=Informational Facility=System SymbolicName=MSG_SERVER_REPORTS_VBUSY Language=English -Server %1 reported busy when accessing volume %2. +Server %1 reported busy when accessing volume %2 in cell %3. . MessageId= @@ -395,7 +395,7 @@ Severity=Informational Facility=System SymbolicName=MSG_SERVER_REPORTS_VRESTARTING Language=English -Server %1 reported restarting when accessing volume %2. +Server %1 reported restarting when accessing volume %2 in cell %3. . MessageId= diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index c88ab95a7..a284cf276 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -458,11 +458,11 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, switch ( errorCode ) { case VBUSY: msgID = MSG_SERVER_REPORTS_VBUSY; - format = "Server %s reported busy when accessing volume %d."; + format = "Server %s reported busy when accessing volume %d in cell %s."; break; case VRESTARTING: msgID = MSG_SERVER_REPORTS_VRESTARTING; - format = "Server %s reported restarting when accessing volume %d."; + format = "Server %s reported restarting when accessing volume %d in cell %s."; break; } @@ -474,8 +474,8 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16), ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24)); - osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume); - LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume); + osi_Log3(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume, cellp->name); + LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume, cellp->name); } lock_ObtainWrite(&cm_serverLock); @@ -524,43 +524,43 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, switch ( errorCode ) { case VNOVOL: msgID = MSG_SERVER_REPORTS_VNOVOL; - format = "Server %s reported volume %d as not attached (does not exist)."; + format = "Server %s reported volume %d in cell %s as not attached (does not exist)."; break; case VMOVED: msgID = MSG_SERVER_REPORTS_VMOVED; - format = "Server %s reported volume %d as moved."; + format = "Server %s reported volume %d in cell %s as moved."; break; case VOFFLINE: msgID = MSG_SERVER_REPORTS_VOFFLINE; - format = "Server %s reported volume %d as offline."; + format = "Server %s reported volume %d in cell %s as offline."; break; case VSALVAGE: msgID = MSG_SERVER_REPORTS_VSALVAGE; - format = "Server %s reported volume %d as needs salvage."; + format = "Server %s reported volume %d in cell %s as needs salvage."; break; case VNOSERVICE: msgID = MSG_SERVER_REPORTS_VNOSERVICE; - format = "Server %s reported volume %d as not in service."; + format = "Server %s reported volume %d in cell %s as not in service."; break; case VIO: msgID = MSG_SERVER_REPORTS_VIO; - format = "Server %s reported volume %d as temporarily unaccessible."; + format = "Server %s reported volume %d in cell %s as temporarily unaccessible."; break; } - if (serverp && fidp) { - /* Log server being offline for this volume */ - sprintf(addr, "%d.%d.%d.%d", - ((serverp->addr.sin_addr.s_addr & 0xff)), - ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8), - ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16), - ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24)); - - osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume); - LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume); - } - if (fidp) { /* File Server query */ + if (serverp) { + /* Log server being offline for this volume */ + sprintf(addr, "%d.%d.%d.%d", + ((serverp->addr.sin_addr.s_addr & 0xff)), + ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8), + ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16), + ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24)); + + osi_Log3(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume, cellp->name); + LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume, cellp->name); + } + code = cm_FindVolumeByID(cellp, fidp->volume, userp, reqp, CM_GETVOL_FLAG_NO_LRU_UPDATE, &volp); @@ -972,7 +972,6 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, else if (retry && dead_session) retry = 0; - out: /* drop this on the way out */ if (connp) cm_PutConn(connp);