[rt-users] [warning]: We opened /dev/null to protect FD #1, but descriptor #1 is already occupied

Gerard FENELON gerard at eve-team.com
Fri Jan 6 09:08:59 EST 2012


Hi

since we migrated from 3.8.8 to 3.8.11, I see the following warning in 
the logs:

[warning]: We opened /dev/null to protect FD #1, but descriptor #1 is 
already occupied at /opt/rt3/bin/webmux.pl line 79

It appeared 175 times since last Sunday.

It comes from

     if ( !$protect_fd && $ENV{'MOD_PERL'} && exists 
$ENV{'MOD_PERL_API_VERSION'}
&& $ENV{'MOD_PERL_API_VERSION'} >= 2 && fileno(STDOUT) != 1
     ) {
         # under mod_perl2, STDOUT gets closed and re-opened, however 
new STDOUT
         # is not on FD #1. In this case next IO operation will occupy 
this FD
         # and make all system() and open "|-" dangerouse, for example DBI
         # can get this FD for DB connection and system() call will close
         # by putting grabage into the socket
         open( $protect_fd, '>', '/dev/null' )
           or die "Couldn't open /dev/null: $!";
         unless ( fileno($protect_fd) == 1 ) {
             warn "We opened /dev/null to protect FD #1, but descriptor 
#1 is already occupied";
         }
     }

Should I worry about it ?
Can I do something to avoid getting this warning ?

Gerard



More information about the rt-users mailing list