Ticket #4967 (closed bug: worksforme)
internal error: stg_ap_v_ret on forkProcess + executeFile
|Reported by:||udoprog||Owned by:||simonmar|
|Operating System:||Linux||Architecture:||x86_64 (amd64)|
|Type of failure:||Runtime crash||Difficulty:|
|Test Case:||Blocked By:|
I've so far been unable to reproduce the bug, due to my inexperience in haskell as a Language, so I apoligize beforehand about the amount of code related. On request I will keep trying to isolate it and update this ticket, or If one of you point out some obvious ignorance on my part.
To reproduce this problem, build the project at: https://github.com/udoprog/gabriel/tree/unix-experimental
Create a new directory:
#> mkdir test #> cd test
Run a test application in gabriel:
#> gabriel -- cat gabriel[cat]: STARTING cat gabriel[cat]: EXITED Terminated 15 gabriel[cat]: WAITING 5 seconds gabriel[cat]: STARTING cat gabriel: internal error: stg_ap_v_ret (GHC version 6.12.1 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug gabriel[cat]: EXITED Terminated 6 gabriel[cat]: WAITING 5 seconds ^Cgabriel[cat]: Nu child process running gabriel[cat]: WAIT was Interrupted gabriel[cat]: Shutting Down
Gabriel will create a subprocess of 'cat' and wrap it, the 'EXITED Terminated 15' is reproduced by finding out the pid of the child process 'ps faux | grep cat' and killing it 'kill <pid>'. The point is that gabriel should restart the process, but unfortunately that is not what happens.
Other than that, I opted to implement my own fork/exec over the System.Process(createProcess) which can be found in Gabriel/SubProcess.hs since I wanted to be able to send custom signals to the process. I believe that the error can somehow be reproduced by focusing on this code.