Package: squid
Version: 2.5.12-1
Severity: important
Tags: upstream

Hi,

My image gallery supports WebDAV upload, and since the rest of the
gallery goes via Squid (as a web accelerator), so does the DAV. However,
directory listings give me an odd problem. Note the following packet
dump (captured using Ethereal -- . denotes data coming in via a different
TCP packet):

==> PROPFIND /webdav/upload/revy05 HTTP/1.1
==> Host: bilder.knatten.com
==> User-Agent: gnome-vfs/2.8.4 neon/0.24.6
==> Keep-Alive: 
==> Connection: TE, Keep-Alive
==> TE: trailers
==> Depth: 1
==> Content-Length: 275
==> Content-Type: application/xml
==> Authorization: Basic (password removed from dump :-) )
==> 
<== HTTP/1.0 207 Unknown
<== Date: Thu, 29 Dec 2005 22:01:38 GMT
<== Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 mod_ssl/2.0.54 
OpenSSL/0.9.7g mod_apreq2-20050712/2.1.3-dev mod_perl/2.0.1 Perl/v5.8.7
<== DAV: 1,2
<== Content-Location: /webdav/upload/revy05/
<== Content-Type: text/xml; charset="utf-8"
<== X-Cache: MISS from localhost.localdomain
<== X-Cache-Lookup: MISS from localhost.localdomain:80
<== Connection: close
<==
<== <?xml version="1.0" encoding="utf-8"?>
<== <multistatus xmlns="DAV:">
<==   <response>
<==     <href>/webdav/upload/revy05/</href>
<==     <propstat>
<==        <prop>
<==.  <resourcetype><collection/></resourcetype>
<==.  <getcontenttype>text/xml</getcontenttype>
<==.</prop>
<==        <status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0074.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2671563</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 21:59:30 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0073.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2310820</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:00:37 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0072.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2856679</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:01:53 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0071.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2209039</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:02:51 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0070.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2168032</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:03:49 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0069.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2687902</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:05:00 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0068.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2786471</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:06:14 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0067.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2115570</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:07:10 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0066.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2657461</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:08:21 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
<==  <response>
<==     <href>/webdav/upload/revy05/dsc_0065.jpg</href>
<==     <propstat>
<==.<prop>
<==.  <resourcetype/>
<==.  <getcontenttype>image/jpeg</getcontenttype>
<==.  <getcontentlength>2203290</getcontentlength>
<==.  <getlastmodified>Wed, 28 Dec 2005 22:09:20 GMT</getlastmodified>
<==.</prop>
<==.<status>HTTP/1.1 200 OK</status>
<==     </propstat>
<==  </response>
==><?xml version="1.0" encoding="utf-8"?>
==><propfind xmlns="DAV:"><prop>
==><getlastmodified xmlns="DAV:"/>
==><creationdate xmlns="DAV:"/>
==><resourcetype xmlns="DAV:"/>
==><getcontenttype xmlns="DAV:"/>
==><getcontentlength xmlns="DAV:"/>
==><getetag xmlns="DAV:"/>
==></prop></propfind>

Note that Squid seems to start sending its reply before actually receiving the
body -- or else, Ethereal is confused (but I'd doubt it).

However, the real problem here is that Squid truncated the returned
body; this happens about every other time, and totally ruins the
request. There's supposed to be lots more <response> tags (representing
one file each), and then finally the </multistatus> terminating the
response.

If I contact the web server directly (using a different port, either
8008 or using SSL on 443) it works just fine. Debugging shows that the
Perl script at the other end indeed does send out the other data, but I
haven't dumped and seen if it actually reaches the cache (the traffic is
on lo). I've tried two different DAV clients, with exactly the same
results. There's nothing about the error in the Squid log, just a
successful (short) response.

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-rc5
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to