$&openvista.gtmserver() child processes should not inherit listener socket
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenVista/GT.M Integration |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Child processes spawned by $&openvista.
In the current implementation, both the connected and the listener socket are inherited by the child. This can be observed with "lsof -i". The parent process still has the socket and services new incoming requests, so the effects are not immediately obvious. However, if the parent is killed while a child is active, the listener socket will pass to the child, and the parent process cannot be restarted until the child has exited because Linux thinks the port is still in use. This causes operational problems when trying to restart the RPC broker -- connections must be halted before the RPC broker can be restarted.
We should ensure that the child closes the listener socket before servicing the connection.
Related branches
- Jon Tai: Approve
-
Diff: 60 lines (+9/-5)3 files modifiedmumps/ZISTCPS.m (+6/-3)
src/libopenvista/gtmserver.c (+2/-1)
src/libopenvista/openvista.xc.in (+1/-1)
- jeff.apple: Approve
-
Diff: 711 lines (+625/-18)6 files modifiedkids/XU_80_1508.KID (+496/-0)
mumps/XU1508E.m (+18/-0)
mumps/ZISTCPS.m (+7/-4)
src/libopenvista/GTMSRV.m (+6/-2)
src/libopenvista/gtmserver.c (+97/-12)
src/libopenvista/openvista.xc.in (+1/-0)
Changed in openvista-gtm-integration: | |
status: | New → Fix Committed |
Changed in openvista-gtm-integration: | |
milestone: | none → 0.8.11 |
Changed in openvista-gtm-integration: | |
status: | Fix Committed → Fix Released |