Modify the XMLRPC server code inside the DAQ applications to release their sockets more quickly after an abrupt shutdown
Bill Badgett (working on LArIAT) has noticed that the TCP sockets used by artdaq don't go away quickly when there is an abrupt shutdown of the system. This prevents users from quickly restarting the (artdaq-based) DAQ system.
We believe that explicitly creating sockets in xmlrpc_commander, setting the SO_REUSEADDR option on the sockets, and passing them to the xmlrpc_c::serverAbyss constructor will help reduce or eliminate this problem.
#1 Updated by Kurt Biery almost 6 years ago
I see that John has already committed a fix to a branch in the artdaq repo. Thanks to John.
- it would be cool to somehow demonstrate that this change has a positive effect by seeing that sockets go away more quickly when a system is killed with the change (maybe this has already been done)
- since this is a somewhat fundamental change, it might be nice to have a micro-code-review to ensure that the code change is reasonable (it looks great to me, but I think that this is a good time to exercise due diligence).
In regards to the second point... John, Ron, and Eric, I'd like to ask you to get together sometime for 15 minutes to discuss the change and confirm that the code looks good.
#2 Updated by John Freeman over 5 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
The changes to the socket functionality were merged into the artdaq v1_12_11 branch; Bill Badgett confirms that on the Lariat experiment, upgrading to artdaq v1_12_11 has solved the issue of "stuck ports".