Re: (36)File name too long

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 17, 2014 at 12:52 PM, Rich Bowen <rbowen@xxxxxxxxxxx> wrote:

On 09/16/2014 02:50 PM, mmccarthy@xxxxxxxxxxxx wrote:
I am using RewriteRule and the proxy flag to proxy through Apache. When a long URL is passed through (longer than 255 characters), I get the error below (redacted). I understand that this is related to the maximum file name on the OS, in this case Ubuntu 14.04. My question is why is this happening when the URL is not related to a file on the file system? The URL is rewritten, then proxied to another server that works fine with long URLs.

[Mon Sep 15 11:42:04.211290 2014] [core:error] [pid 18302:tid 140171735451392] (36)File name too long: [client xxx.xx.x.xxx:53717] AH00036: access to /<long file path>/_aliases failed (filesystem path '/<long file path>), referer: http://xx.xx.xx.xxx/index.html

Thanks,

That error message doesn't appear to be from the httpd server itself (ie, that message doesn't appear anywhere in the source code for trunk, 2.4, 2.2, or 2.0),

When you see "ANnnnnn", it is httpd >= 2.4, and you should just grep for the nnnnn part:

./server/request.c:                ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(00036)
./server/request.c-                              "access to %s failed (filesystem path '%s')", 
./server/request.c-                              r->uri, r->filename);


 
which leads me to believe that 1) it's in fact from your filesystem, and 2) there's no direct way to fix that in httpd configuration.

As thy why it matters when the file isn't on the filesystem, that's hard to tell without more context, but I presume that at some point in the process it is *looking* for the file in the filesystem.

For example, if this RewriteRule is in a .htaccess file, rather than in the main server config, it did in fact have to navigate to a filesystem directory before consulting that .htaccess file.


The decision to proxy via rewrite is being made too late in request processing for mod_proxy to prevent httpd looking for a file on disk to match the request, resulting in this issue.

If there is a way to configure mod_proxy to handle the request (i.e., using mod_proxy directives), the filesystem check will be bypassed.

--
Born in Roswell... married an alien...
http://emptyhammock.com/


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux