Comment 4 for bug 541291

Revision history for this message
Jeff Hill (johill-lanl) wrote :

I think that you have found another bug. Thanks for doing an excellent job of beating the vermin out of CA.

I see that this occurs when the lock was released in the middle of switching the channel from a search timer to a TCP circuit, but due to changes in the timer library some time back we no longer need to release the lock when calling epicsTimer::start if we also hold this same lock in the timer expire callback. This is necessary when calling epicsTimer::cancel(), but epicsTimer::start no longer calls epicsTimer::cancel().

The details, including a patch, are in Mantis 258. Please try the patch and let me know if it fixes the problems. The simple change in searchTimer.cpp alone should take care of your bug, but if you have time please try also the changes in tcpRecvWatchdog.cpp that are of a similar nature and should make the code more robust.