Re: [PATCH] http-push: fix webdav lock leak.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Johannes Schindelin <Johannes.Schindelin@...>
Cc: Junio C Hamano <gitster@...>, <git@...>
Date: Saturday, January 19, 2008 - 11:21 am

Johannes Schindelin a écrit :

It's rather easy anyway:

First, you need a test git repository availlable over http+webdav, let's 
say at http://myhost/myrepo.git/
Then, you do this:
$ git clone http://myhost/myrepo.git/
$ cd myrepo
$ git push http
Fetching remote heads...
  refs/
  refs/heads/
  refs/tags/
No refs in common and none specified; doing nothing.
$ git push http
Fetching remote heads...
  refs/
  refs/heads/
  refs/tags/
No refs in common and none specified; doing nothing.
$

Finally, you look at the web server logs, and will find one LOCK query 
and no UNLOCK query, of course the second one will be in 423 return code 
instead of 200:
1.2.3.4 - gb [19/Jan/2008:14:24:56 +0100] "LOCK /myrepo.git/info/refs 
HTTP/1.1" 200 465
(...)
1.2.3.4 - gb [19/Jan/2008:14:25:10 +0100] "LOCK /myrepo.git/info/refs 
HTTP/1.1" 423 363

With my patch, there would have be two UNLOCKs in addition of the LOCKs

 From the user point of view:
- If you realize that you should have typed e.g. "git push http master" 
instead of "git push http", you will have to wait for 10 minutes for the 
lock to expire by its own.
- Furthermore, if somebody else is dumb enough to type "git push http" 
while you need to push "master" branch, then you'll need too to wait for 
10 minutes too.

http://dscho@127.0.0.1/test.git/objects/56/5e84516c1c6dca168be1715b45aeae70b24d13_36e8...
(...)

I don't know what's wrong but I can't manage to reproduce the segfault, 
I'm using the master branch on git.git plus my patches, and with CFLAGS 
containing -DUSE_CURL_MULTI, nothing more nothing less.
Is the test case I described above is enough for you to make another test?
What kind of additional information would you need ?

I will resubmit this patch today with a more detailled commit message 
including the way to reproduce the issue.
BTW you'll be interested to look at one of the "patches" I will repost 
today, since it's related to this one (the patch subject is "http-push: 
fail when info/refs exists and is already locked").

-- 
Grégoire Barbier - gb à gbarbier.org - +33 6 21 35 73 49

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH] Teach remote machinery about remotes.default con..., Johannes Schindelin, (Sun Jan 13, 5:27 pm)
What's not in 'master' but should be, Junio C Hamano, (Fri Jan 18, 5:41 am)
Re: What's not in 'master' but should be, Johannes Schindelin, (Fri Jan 18, 2:28 pm)
Re: [PATCH] http-push: fix webdav lock leak., Grégoire Barbier, (Sat Jan 19, 11:21 am)
Re: [PATCH] http-push: fix webdav lock leak., Johannes Schindelin, (Sat Jan 19, 7:38 pm)
Re: What's not in 'master' but should be, Mike Hommey, (Sat Jan 19, 2:14 am)
Re: What's not in 'master' but should be, Johannes Schindelin, (Fri Jan 18, 2:36 pm)
Re: What's not in 'master' but should be, Johannes Schindelin, (Mon Feb 18, 3:57 pm)
What's not in 'master', and likely not to be until 1.5.4, Junio C Hamano, (Fri Jan 18, 6:40 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Steffen Prohaska, (Fri Jan 18, 8:53 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Fri Jan 18, 9:09 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Steffen Prohaska, (Fri Jan 18, 9:23 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Steffen Prohaska, (Mon Jan 21, 2:42 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Fri Jan 18, 4:36 pm)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Fri Jan 18, 4:58 pm)
Re: What's not in 'master', and likely not to be until 1.5.4, Shawn O. Pearce, (Mon Jan 21, 12:46 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Mon Jan 21, 6:37 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Shawn O. Pearce, (Wed Jan 23, 12:44 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Wed Jan 23, 7:12 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Steffen Prohaska, (Fri Jan 18, 9:04 am)
Re: What's not in 'master', and likely not to be until 1.5.4, Johannes Schindelin, (Fri Jan 18, 9:11 am)
Re: What's not in 'master' but should be, Lars Hjemli, (Fri Jan 18, 6:15 am)
Re: What's not in 'master' but should be, Junio C Hamano, (Fri Jan 18, 6:24 am)
Re: What's not in 'master' but should be, Lars Hjemli, (Fri Jan 18, 6:53 am)
Re: What's not in 'master' but should be, Junio C Hamano, (Fri Jan 18, 7:09 am)
Re: What's not in 'master' but should be, Lars Hjemli, (Fri Jan 18, 7:54 am)
Re: What's not in 'master' but should be, Johannes Schindelin, (Fri Jan 18, 8:34 am)
Re: What's not in 'master' but should be, Lars Hjemli, (Fri Jan 18, 10:19 am)
Re: [PATCH] Teach remote machinery about remotes.default con..., Johannes Schindelin, (Mon Jan 14, 7:18 am)
Re: safecrlf not in 1.5.4, Junio C Hamano, (Mon Jan 14, 3:30 am)
Re: safecrlf not in 1.5.4, Dmitry Potapov, (Mon Jan 14, 5:04 am)
Re: safecrlf not in 1.5.4, Pierre Habouzit, (Mon Jan 14, 1:35 pm)
Re: [msysGit] Re: safecrlf not in 1.5.4, Steffen Prohaska, (Mon Jan 14, 4:29 am)
Re: [msysGit] Re: safecrlf not in 1.5.4, Junio C Hamano, (Mon Jan 14, 3:41 pm)
[PATCH] git-clone - Set remotes.origin config variable, Mark Levedahl, (Sun Jan 13, 12:27 pm)