...
The automated response can be defined withstatically using python and text interface or dynamically (add/remove) via alter.:
python interface( See ecflow.ZombieAttr)
text interface ( See Definition file Grammar)
zombie ::= "zombie" >> `zombie_type` >> ":" >> !(`client_side_action` | `server_side_action`) >> ":" >> *`child` >> ":" >> !`zombie_life_time` zombie_type ::= "user" | "ecf" | "path" child ::= "init" | "event" | "meter" | "label" | "wait" | "abort" | "complete" client_side_action ::= "fob" | "fail" | "block" server_side_action ::= "adopt" | "delete" zombie_life_time ::= unsigned integer ( default: user(300), ecf(3600), path(900) )
- Dynamically via --alter command
ecflow_client --alter add zombie <zombie-attribute> <path>
ecflow_client --later delete zombie < ecf | path | user> <path>
The zombie attribute is inherited in the same manner as Variable inheritance.
...
Sometimes zombies can arise for more obscure reasons. i.e The job sends a --init message to the server, meanwhile the server is busy(i.e processing jobs), when finally the server makes the task active, and sends a message back to the client/job the ecflow_client has timed out. This causes the ecflow_client to send the same message again. However this time the server treats the child command as a zombie, since the task is already active. hence Hence we get these false zombies.
...