iocLogClient does not unregister its errlog listener
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
High
|
Ralph Lange |
Bug Description
Line numbers as of 3.15.0.2:
iocLog registers a listener with the errlog facility (line 94 of iocLog.c), but never unregisters. Called as an exit hook, logClientDestroy() destroys the client mutex (line 157 of logClient.c), while the client is still registered as a listener with errlog.
This can lead to situations where the errlog thread, trying to send a message to a client, finds the client mutex being gone.
A call to 'assert(status == epicsMutexLockOK)'
by thread 'errlog' failed in ../../.
Dumping a stack trace of thread 'errlog':
[ 0x7f14388c8363]: /opt/codac-
[ 0x7f14388c24ed]: /opt/codac-
[ 0x7f14388b6a1a]: /opt/codac-
[ 0x7f14388ae3da]: /opt/codac-
[ 0x7f14388c3b24]: /opt/codac-
[ 0x38186079d1]: /lib64/
[ 0x3817ee8b5d]: /lib64/
EPICS Release EPICS R3.15.0.2 $$Date$$.
Local time is 2014-11-12 09:55:17.723897076 UTC
Please E-mail this message to the author or to <email address hidden>
Calling epicsThreadSusp
Related branches
Changed in epics-base: | |
status: | New → Fix Committed |
importance: | Undecided → High |
milestone: | none → 3.15.1 |
tags: |
added: ioclog libcom removed: errlog |
Changed in epics-base: | |
status: | Fix Committed → Fix Released |