Closed kakwok closed 6 years ago
Emptyness check was already in place. Need more investigation. The offending line is this one: https://github.com/HCALRunControl/levelOneHCALFM/blob/18.1.1/src/rcms/fm/app/level1/HCALEventHandler.java#L1831 Seems like XDAQ query problem.
I've tried reproducing this in every way I could think of, and I can't reproduce it. Without knowing exactly the steps that led to this situation, it will be tough to diagnose. Since this is unlikely to occur again and is by no means a "show-stopper," I will change the label to low priority.
Adding more information about the bug,
1) the runinfo server executive was the executive that crashed
2) the chain of events that led to it was:
configured->Reset->InitXDAQ() -> failed[port conflict] -> Reset-> null pointer
The root cause is that QR containers are reset at the end of initXDAQ
, which is never reached in case qg.init()
failed.
Therefore, in the 2nd reset, the runinfo container is not null (left over from configured state) but points to a dead xdaq.
When one of the xdaq failed to init and user tries to use resetAction, the failed xDAQ will gives a null pointer:
A simple
isEmpty()
check should be able to protect agains this