Sorry, forgot the patch adding some debug stuff, fixed :)
regards,
-ap
diff -Purp rsyslog-5.8.6.org/runtime/modules.c rsyslog-5.8.6/runtime/modules.c
--- rsyslog-5.8.6.org/runtime/modules.c 2011-10-21 11:53:02.000000000 +0200
+++ rsyslog-5.8.6/runtime/modules.c 2011-11-02 20:32:10.000000000 +0100
@@ -667,7 +667,9 @@ modUnlinkAndDestroy(modInfo_t **ppThis)
pThis = *ppThis;
assert(pThis != NULL);
+ dbgprintf("locking mutLoadUnload ...\n");
pthread_mutex_lock(&mutLoadUnload);
+ dbgprintf("mutLoadUnload locked\n");
/* first check if we are permitted to unload */
if(pThis->eType == eMOD_LIB) {
@@ -704,6 +706,7 @@ modUnlinkAndDestroy(modInfo_t **ppThis)
finalize_it:
pthread_mutex_unlock(&mutLoadUnload);
+ dbgprintf("mutLoadUnload released\n");
RETiRet;
}
@@ -779,7 +782,9 @@ Load(uchar *pModName)
assert(pModName != NULL);
dbgprintf("Requested to load module '%s'\n", pModName);
+ dbgprintf("locking mutLoadUnload ...\n");
pthread_mutex_lock(&mutLoadUnload);
+ dbgprintf("mutLoadUnload locked\n");
iModNameLen = strlen((char *) pModName);
if(iModNameLen > 3 && !strcmp((char *) pModName + iModNameLen - 3,
".so")) {
@@ -904,6 +909,7 @@ Load(uchar *pModName)
finalize_it:
pthread_mutex_unlock(&mutLoadUnload);
+ dbgprintf("mutLoadUnload released\n");
RETiRet;
}
diff -Purp rsyslog-5.8.6.org/runtime/obj.c rsyslog-5.8.6/runtime/obj.c
--- rsyslog-5.8.6.org/runtime/obj.c 2011-10-21 11:53:02.000000000 +0200
+++ rsyslog-5.8.6/runtime/obj.c 2011-11-02 20:35:09.000000000 +0100
@@ -1130,7 +1130,9 @@ UseObj(char *srcFile, uchar *pObjName, u
/* DEV debug only: dbgprintf("source file %s requests object '%s',
ifIsLoaded %d\n", srcFile, pObjName, pIf->ifIsLoaded); */
+ dbgprintf("locking mutObjGlobalOp ...\n");
pthread_mutex_lock(&mutObjGlobalOp);
+ dbgprintf("mutObjGlobalOp locked\n");
if(pIf->ifIsLoaded == 1) {
ABORT_FINALIZE(RS_RET_OK); /* we are already set */
@@ -1172,7 +1174,8 @@ UseObj(char *srcFile, uchar *pObjName, u
finalize_it:
pthread_mutex_unlock(&mutObjGlobalOp);
-
+ dbgprintf("mutObjGlobalOp released\n");
+
if(pStr != NULL)
rsCStrDestruct(&pStr);
@@ -1194,7 +1197,9 @@ ReleaseObj(char *srcFile, uchar *pObjNam
/* dev debug only dbgprintf("source file %s releasing object '%s',
ifIsLoaded %d\n", srcFile, pObjName, pIf->ifIsLoaded); */
+ dbgprintf("locking mutObjGlobalOp ...\n");
pthread_mutex_lock(&mutObjGlobalOp);
+ dbgprintf("mutObjGlobalOp locked\n");
if(pObjFile == NULL)
FINALIZE; /* if it is not a lodable module, we do not need to
do anything... */
@@ -1216,6 +1221,7 @@ ReleaseObj(char *srcFile, uchar *pObjNam
finalize_it:
pthread_mutex_unlock(&mutObjGlobalOp);
+ dbgprintf("mutObjGlobalOp released\n");
if(pStr != NULL)
rsCStrDestruct(&pStr);
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com