Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Incomplete
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Environment:# jruby --version
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-12-14 943d51c) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_16) [amd64-java]
-
Number of attachments :
Description
A long running rails metal over jruby application using glassfish "stopped" suddenly. Well, it did not quite stop, but it stopped doing output (and some parts of the app stopped to, but this is not diagnosable, as output stopped).
The observation is that filedescriptor #1 (stdout) does not point to the log file (as initially redirected), but to /dev/null. Note that this filedescriptor does not appear to be simply closed, but somehow closed-and-replaced.
It happens on a multi-threading app running on 2 cores which does about 100'000'000 "puts" statements and needs a week's running time on average until this issue appears, but then it is there. It has happened twice so far, on different machines.
This sounds very much like some library (possibly rails itself) reopening stdout to /dev/null to supress logging for a short time and then putting it back...except that something goes wrong when it tries to put it back. Can you grep your libraries for /dev/null and see if you get any hits? I will do the same here.