I have a Linux shell-script that calls

  poly-image < script

and which is being dying unexpectedly in a cronjob.  The end of the log looks 
like:

Poly/ML 5.3 Release
Killed
/home/michaeln/stdhol/bin/Holmake: Failed script build for 
arm_improved_gcScript - exited with code 89
Build failed in directory /home/michaeln/stdhol/examples/machine-code/lisp 
(exited with code 1)

Holmake is reporting the error returned by a call to OS.Process.system, using

  fun posix_diagnostic stat = let
    open Posix.Process
  in
    case fromStatus stat of
      W_EXITSTATUS w8 => "exited with code "^Word8.toString w8
    | W_EXITED => "exited normally"
    | W_SIGNALED sg => "with signal " ^
                       SysWord.toString (Posix.Signal.toWord sg)
    | W_STOPPED sg => "stopped with signal " ^
                      SysWord.toString (Posix.Signal.toWord sg)
  end

The presence of "Killed" makes me think that the script is being killed by an 
external signal, perhaps a SIGSEGV caused by hitting a limit on stack-size.  But is this 
plausible?  Would Poly/ML catch that signal and then exit with 89?

Annoyingly, the same script doesn't fail when not in a cronjob, so it's hard to 
test.

Michael
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to