Bug #631

PROPFIND status code not propogated in proxy

Added by Anonymous over 8 years ago. Updated almost 4 years ago.

Status:ReopenedStart date:
Priority:HighDue date:
Assignee:-% Done:

0%

Category:mod_proxy
Target version:1.4.x
Missing in 1.5.x:

Description

I have lighttpd 1.4.11 proxying to Apache 2.0.51 for Subversion. I followed the directions here: https://trac.lighttpd.net/trac/wiki/ApacheSubversionRecipe

Browsing, checkouts, and commiting modifications all work. Adding files does not. It appears that when the PROPFIND request hits Apache it returns 404 (makes sense, the file isn't there yet), but lighttpd returns 200 to the client (I'm guessing that the client becomes confused, expecting a 404 for a file it has yet to add). All other WebDAV/DeltaV requests seem to return the correct httpd status code. Here are some transcripts from the logs. The problem is the last PROPFIND (second to last line).


lighttpd log


192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "OPTIONS /svn/tools HTTP/1.1" 200 183 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "MKACTIVITY /svn/!svn/act/92a71b49-c612-0410-8646-92b125d912e5 HTTP/1.1" 201 303 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools HTTP/1.1" 207 428 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "PROPFIND /svn/!svn/vcc/default HTTP/1.1" 207 389 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "CHECKOUT /svn/!svn/bln/71 HTTP/1.1" 201 318 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "PROPPATCH /svn/!svn/wbl/92a71b49-c612-0410-8646-92b125d912e5/71 HTTP/1.1" 207 349 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools HTTP/1.1" 207 385 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "CHECKOUT /svn/!svn/ver/25/tools HTTP/1.1" 201 321 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools/test.txt HTTP/1.1" 200 295 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
192.168.1.1 example.com - [01/May/2006:21:05:47 -0700] "DELETE /svn/!svn/act/92a71b49-c612-0410-8646-92b125d912e5 HTTP/1.1" 204 0 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 

Notice that the last PROPFIND has a status of 200.


apache log


127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "OPTIONS /svn/tools HTTP/1.0" 200 183 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "MKACTIVITY /svn/!svn/act/92a71b49-c612-0410-8646-92b125d912e5 HTTP/1.0" 201 303 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools HTTP/1.0" 207 428 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "PROPFIND /svn/!svn/vcc/default HTTP/1.0" 207 389 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "CHECKOUT /svn/!svn/bln/71 HTTP/1.0" 201 318 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "PROPPATCH /svn/!svn/wbl/92a71b49-c612-0410-8646-92b125d912e5/71 HTTP/1.0" 207 349 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools HTTP/1.0" 207 385 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "CHECKOUT /svn/!svn/ver/25/tools HTTP/1.0" 201 321 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:46 -0700] "PROPFIND /svn/tools/test.txt HTTP/1.0" 404 295 "-" "SVN/1.3.0 (r17949) neon/0.25.4" 
127.0.0.1 - tim [01/May/2006:21:05:47 -0700] "DELETE /svn/!svn/act/92a71b49-c612-0410-8646-92b125d912e5 HTTP/1.0" 204 - "-" "SVN/1.3.0 (r17949) neon/0.25.4" 

Notice that the last PROPFIND has a status of 404.

-- timpub

lighttpd.trace - strace of lighttpd while doing an "svn ci" after adding a file to the repository. -- Lukas <lukas (55.1 KB) Anonymous, 2007-04-10 22:50

History

#1 Updated by Anonymous about 8 years ago

I am also experiencing this issue. I have verified that the issue exists on lighttpd 1.4.11 through 1.4.13.

-- bmitchell

#2 Updated by Anonymous over 7 years ago

I have the same problem, any updates?

#3 Updated by Anonymous over 7 years ago

It works now with 1.4.13-r1 on Gentoo (I was running 1.4.11).

#4 Updated by Anonymous over 7 years ago

The same problem here - debian etch, lighttpd v 1.4.13-4, which is 1.4.13 with a few modifications to the init.d-file and default configs.
Any news on this? If gentoo has a working patch, where can I find it?

-- lukas

#5 Updated by jan over 7 years ago

  • Status changed from New to Assigned

Can someone please attach a strace which shows the issue in lighttpd ? See the wiki on how to report a bug.

#6 Updated by Anonymous over 7 years ago

See lines 296 and 302 in the trace. lighttpd reads "HTTP/1.1 404 ...", but sends "HTTP/1.1 200 OK...", and encapsulates the 404 html-document into that ...

Hope this helps.

-- Lukas <lukas

#7 Updated by Anonymous over 7 years ago

Any news on this front? Anything I can do about it? If it works now in Gentoo, I'd really like to see that patch, but I don't have gentoo here and can't seem to find 1.4.13-r1 ...

-- lukas

#8 Updated by darix over 7 years ago

there is no mod_proxy related patch in gentoo. so i would really wonder what is not working for you. and a friend of mine successfully proxies svn through lighttpd.

#9 Updated by Anonymous over 7 years ago

I do proxy svn, and it works. What's not working is adding new files to the repository. Please read the bugreport as it contains all information necessary to reproduce that bug ...

-- lukas

#10 Updated by Anonymous about 7 years ago

Just a note that this bug is still valid for lighttpd 1.4.17. If there's anything I can do about it, I'd be happy to help. Increased severity to major as this renders an 'svn add; svn ci' unfunctional.

-- lukas at einfachkaffee de

#11 Updated by Anonymous about 7 years ago

Still valid in 1.4.18

-- me

#12 Updated by Anonymous about 7 years ago

Just ran into this - what a pain! I guess I'll just have to open a port to apache instead. :(

-- dobesv

#13 Updated by stbuehler almost 7 years ago


2007-04-11 00:43:12: (connections.c.816) missing cleanup in scgi

This cleanup failure is triggered if the scgi module tried handling the request but another module handled it afterwards too. (So i bet you loaded mod_scgi before mod_proxy in your module list)

So i just think both mod_scgi and mod_proxy tried handling the request (which of course they should not, so it is a bug in lighty).

But you should be able to workaround it with disabling mod_scgi if you want mod_proxy.

#14 Updated by Anonymous almost 7 years ago

I hesitated using Lighty for proxying svn requests to Apache because of this ticket; now I tried it anyways, and strangely, it works just fine (even adding files). For your information, I am using stock binaries from Debian Etch:

Lighttpd 1.4.13
Apache 2.2.3
Svn 1.4.2

Lighttpd is hosting Trac via mod_fastcgi.

Hope this helps.

-- Alex

#15 Updated by georgexsh over 6 years ago

1.4.18 has the same problem.
I am using ssl with lighttpd.

#16 Updated by Anonymous over 6 years ago

I have the same problem here with
Debian Etch binary package revision: 1.4.13-4etch6

Updated to the following version (Etch Backports):
lighttpd-1.4.19 (ssl) - a light and fast webserver
Build-Date: Mar 19 2008 23:49:19

But the problem still exists.

Problem seems to be:


* HTTP-Requests with Method "PROPFIND" are rejected/not correctly forwarded by lighttpd to apache.
* apache itself never receives the HTTP-Request (not even tcpdump could detect network traffic)

The Bug is either in mod_proxy or lighttpd's HTTP-Parser. Maybe the parser is hardcoded to accept only "GET" and "POST" and rejects all the others.
But as I could find the requests log file of lighttpd, it seems to be a bug behind the HTTP-Parser inside the workflow...

Maybe it helps to know the active lighttpd modules:


 "mod_access" 
 "mod_alias" 
 "mod_accesslog" 
 "mod_rewrite" 
 "mod_auth" 
 "mod_fastcgi" 
 "mod_proxy" 

-- sdwarfs

#17 Updated by stbuehler over 6 years ago

  • Status changed from Assigned to Fixed
  • Resolution set to fixed

I tried fixing it in r2271 :)

So now it would be nice if you could test it, thx.

#18 Updated by mafo almost 4 years ago

  • Status changed from Fixed to Reopened
  • Target version changed from 1.4.20 to 1.4.x

It's still not workink on
Debian squeeze from distro

root@web:~# lighttpd -v
lighttpd/1.4.28 (ssl) - a light and fast webserver
Build-Date: Aug 30 2010 19:55:34

PROPFIND /git/admin24/ HTTP/1.1

User-Agent: git/1.7.1

Host: git.admin24.cz

Accept: */*

Depth: 0

Content-Type: text/xml

Content-Length: 164

Expect: 100-continue

HTTP/1.1 417 Expectation Failed

Content-Type: text/html

Content-Length: 363

Connection: close

Date: Sat, 05 Feb 2011 16:31:57 GMT

Server: lighttpd/1.4.28


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>417 - Expectation Failed</title>
</head>
<body>
<h1>417 - Expectation Failed</h1>
</body>
</html>

Also available in: Atom