alarm "stop run" does not work

Issue #200 resolved
dd1 created an issue

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)

  1. dd1 reporter

    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.

  2. Log in to comment