alarm "stop run" does not work
Issue #200
resolved
Stopping the run on alarm does not work. I get this in an infinite loop. Also notice the unusual messages about pid mismatch.
[ODBEdit,ERROR] [midas.cxx:5353:bm_validate_client_index,ERROR] My client index 2 in buffer 'SYSMSG' is invalid: client name 'ODBEdit', pid 18127 should be my pid 18164
[ODBEdit,ERROR] [midas.cxx:5356:bm_validate_client_index,ERROR] Maybe this client was removed by a timeout. See midas.log. Cannot continue, aborting...
09:11:03 [ODBEdit,TALK] Alarm: Program Logger is not running
09:11:03 [ODBEdit,INFO] Stopping the run from alarm class 'Alarm', message 'Program Logger is not running'
Comments (2)
-
reporter -
reporter - changed status to resolved
Fixed. Commit 324d012.
- Log in to comment
See many problems. alarm tries to stop the run using cm_transition(TR_DETACH) (ok), but TR_DETACH is broken, tries to run $MIDASSYS/darwin/bin/mtranstion instead of $MIDASSYS/bin/mtransition. mtransition is started by ss_spawnv(), but error handling is broken, after fork(), if exec() failed (“file not found”), it returns (in the forked process) and now we have 2 duplicate midas programs running (one original and one forked). The wrong one complains about the pid mismatch. On macos it eventually dies, but on linux, it looks like we have a fork bomb. (I will not be testing that). K.O.