B
Boop Boop
I wrote a little program that happens to use Tempfile. Whenever it got
to that point, it would crash with a "too many open files" error.
Investigation (via "puts" statements) revealed that Tempfile.new is
(indirectly) invoking Tempfile.new.
Specifically, at the line:
super(@tmpfile)
"puts" statements immediately before and after that, plus one at the
very top of Tempfile.new, show that it reaches that line, and then goes
back to the top of Tempfile.new, without ever getting past that line,
over and over, until the system eventually gets to "too many open
files".
I reduced my program to a very basic one, just doing Tempfile.new and
nothing else, and didn't get this problem. So it must be some
interaction with something else in my program. Unfortunately, I don't
currently have time to investigate further, and cannot post my code as
is. But I figured I should let somebody know that there is definitely
some sort of infinite loop, under some condition, associated with that
line.
Incidentally, this was originally in 1.8.4; I upgraded to 1.8.6, and had
the same problem.
to that point, it would crash with a "too many open files" error.
Investigation (via "puts" statements) revealed that Tempfile.new is
(indirectly) invoking Tempfile.new.
Specifically, at the line:
super(@tmpfile)
"puts" statements immediately before and after that, plus one at the
very top of Tempfile.new, show that it reaches that line, and then goes
back to the top of Tempfile.new, without ever getting past that line,
over and over, until the system eventually gets to "too many open
files".
I reduced my program to a very basic one, just doing Tempfile.new and
nothing else, and didn't get this problem. So it must be some
interaction with something else in my program. Unfortunately, I don't
currently have time to investigate further, and cannot post my code as
is. But I figured I should let somebody know that there is definitely
some sort of infinite loop, under some condition, associated with that
line.
Incidentally, this was originally in 1.8.4; I upgraded to 1.8.6, and had
the same problem.