Hi Victor,

Thanks for the thorough bug report. I'll get this corrected and commit 
the fix today.

Much appreciated
Andy

Victor Balada Diaz wrote:
> Hello,
>
> we have an application that does a lot of cfexecutes. With OpenBD
> we're getting IOException: bad file descriptor from time to time. You
> can reproduce this issue reloading various times this simple page:
>
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
> <cfexecute name="ls" arguments="-l" variable="foo" timeout="20" />
>
> After researching a bit i've found that in
> src/com/naryx/tagfusion/cfm/tag/cfEXECUTECommandRunner.java
> you close stdout and stderr twice, first in the finally of
> StreamConsumer.run() and second in the finally of
> cfEXECUTECommandRunner.run().
>
> Theorically the worst thing that should happen is that one of them
> will just fail, but seems to be a bug in sun's JVM that in some
> operating systems if you double close a file descriptor, and the close
> operation fails, in the second close it will close a valid file
> descriptor. You can find more information about this bug here:
>
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6593729
>
> We fixed it commenting the closes of cfEXECUTECommandRunner.run().
>
> OS: FreeBSD 7.0
> OpenBD version: Release as of 2008/09/17
> JDK version:
> java version "1.6.0_07"
> Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
> Diablo Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
>
> Even if sun's bug report shouldn't affect this version,
> we're having problems with double close().
>
> This is also failing on our Linux test system.
>
> I hope with this information you can fix the bug.
>
> More info about JDK's bug:
> http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml
>
> Regards.
>
>
> >
>   


--~--~---------~--~----~------------~-------~--~----~
Open BlueDragon Public Mailing List
 http://groups.google.com/group/openbd?hl=en
 official blog @ http://blog.openbluedragon.org/
!! save a network - trim replies before posting !!
-~----------~----~----~----~------~----~------~--~---

Reply via email to