>Number: 1391 >Category: mod_rewrite >Synopsis: mod_rewrite tries to perform file locking on a pipe >Confidential: no >Severity: serious >Priority: medium >Responsible: apache >State: open >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Mon Nov 10 17:00:00 PST 1997 >Last-Modified: >Originator: [EMAIL PROTECTED] >Organization: apache >Release: post 1.2b6 >Environment: SCO OpenServer 5.0.0 and 5.0.2 >Description: Under SCO OpenServer 5.0.0 and 5.0.2, using fcntl() to lock a pipe is illegal.
This results in an error 22 (EINVAL) when mod_rewrite tries to lock the pipe when fd_lock() is called from lookup_map_program() (which uses unnamed pipes to the lookup process). When this occurs, the lock isn't created, and the child process of Apache immediately terminates, which causes a host of client errors (conenction unexpectdly terminated, unknown response, etc.) This bug is documented at SCO's website: http://www5.sco.com/cgi-bin/waisgate?WAISdocID=0518327359+0+0+0&WAISaction=retrieve >How-To-Repeat: Get a SCO 5.0.0 or 5.0.2 box, create a simple shell script to perform some task of a rewrite operation, and watch it provide you with various client errors. (I've fixed my servers, but I can break one if you want a demonstration.) >Fix: If you're running SCO ODT 5.0.0 or 5.0.2, simply add this to mod_rewrite.h (I guess SCO is as braindead as Sun sometimes... <g>) #ifdef SCO5 #undef USE_PIPE_LOCKING #endif %0 >Audit-Trail: >Unformatted:
