Julia (well libuv) expects that you don't modify the file descriptors while it is using them (esp. stdio, but also the file descriptor it uses to represent the libuv event loop, and all of the others). In fact, the only file descriptors you could safely close are 0,1,2. (the stdio file descriptors used by libuv are hidden somewhere else in the file descriptor tables to prevent exactly this sort of corruption)
On Tue, Aug 5, 2014 at 6:49 PM, Gerry Weaver <[email protected]> wrote: > Hi, > > I think I have located the problem. When creating a daemon process, it is > pretty common to close all file descriptors in the child process. This is > usually done (at least on Linux) by spinning through the descriptors > closing them based on the result of the getdtablesize() function. For some > reason Julia crashes when all of the file descriptors are closed. When the > closing of file descriptors is omitted, everything works as expected. Does > anyone have any insight into this situation? > > Thanks, > -G >
