DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=31126>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=31126 Apache tries to access files as folders if Reiser4 FS is used ------- Additional Comments From [EMAIL PROTECTED] 2004-09-09 04:21 ------- While the behaviour of ReiserFS is questionable, it does not seem that Apache is doing the right thing either. Specifically, ap_parse_htaccess is being called under some circumstances even when the uri identifies a specific file, rather than a directory. I believe the offending code is at line 923 of server/request.c, following the comment: /* First optimization; * If...we knew r->filename was a file, and * if...we have strict (case-sensitive) filenames, or * we know the canonical_filename matches to _this_ name, and * if...we have allowed symlinks * skip the lstat and dummy up an APR_DIR value for thisinfo. */ The problem is that the dummy APR_DIR value will be inserted even if the last segment is a regular file; in the following iteration of the do loop, ap_parse_htaccess will attempt to append "/.htaccess" (or whatever) onto the filename confident that it will be able to correctly identify the resulting error. Unfortunately, Reiser4 appears to return EACCES instead of ENOENT or ENOTDIR in this particular case. I don't actually have Reiser to play with, but I checked the behaviour by placing the following logging statement in ap_parse_htaccess, at the point where it has failed to open the .htaccess file: ap_log_rerror(APLOG_MARK, APLOG_WARNING, status, r, "pcfg_openfile tried %s and failed", filename); With -FollowSymLinks (thereby disabling the optimization), I got the following log trace: httpd 2.0.50 docroot: /usr/local/www/perltest request: //freeb/perlest/foo/test.html (Note that the file exists and there are no .htaccess files) [Wed Sep 08 22:01:08 2004] [warn] [client 192.168.1.65] (2)No such file or directory: pcfg_openfile tried /usr/local/www/perltest/.htaccess and failed [Wed Sep 08 22:01:08 2004] [warn] [client 192.168.1.65] (2)No such file or directory: pcfg_openfile tried /usr/local/www/perltest/foo/.htaccess and failed Enabling FollowSymLinks and using exactly the same request reveals that the loop runs once too often: (and that the Ext3 filesystem return ENOTDIR for this error) [Wed Sep 08 22:03:08 2004] [warn] [client 192.168.1.65] (2)No such file or directory: pcfg_openfile tried /usr/local/www/perltest/.htaccess and failed [Wed Sep 08 22:03:08 2004] [warn] [client 192.168.1.65] (2)No such file or directory: pcfg_openfile tried /usr/local/www/perltest/foo/.htaccess and failed [Wed Sep 08 22:03:08 2004] [warn] [client 192.168.1.65] (20)Not a directory: pcfg_openfile tried /usr/local/www/perltest/foo/test.html/.htaccess and failed --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
