Re: What's not in 'master' but should be
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 18, 2008, 18:28 UTC
- Message-ID
- <alpine.LSU.1.00.0801181638500.5731@racer.site>
- In-Reply-To
- <7v63xrh3mw.fsf_-_@gitster.siamese.dyndns.org>
Hi,
On Fri, 18 Jan 2008, Junio C Hamano wrote:
Show 17 quoted lines
> Junio C Hamano <gitster@pobox.com> writes: > > > Currently the ones I looked at and consider possible 1.5.4 material > > are http-push fixes from Grégoire Barbier and parse_commit_buffer() > > tightening from Martin Koegler. > > It seems that for the past few days, people were having too much fun > bashing how broken MacOS X is, and the real work has stalled in the > meantime. Well, not really stalled but they certainly made the patches > and discussions harder to find in the list archive. > > [...] > > But there are still unapplied patches that deserve attention. The one > that I am most worried about is Grégoire Barbier's http-push changes: > > $gmane/70406 <1200250979-19604-1-git-send-email-gb@gbarbier.org>
This patch makes http-push Warn if URL does not end if "/", but it would be even better to just handle it... we know exactly that HTTP URLs _must_ end in a slash.
It gives a better warning if the URL cannot be accessed, alright. But I hate the fact that it introduces yet another function which does a bunch of curl_easy_setopt()s only to start an active slot and check for errors.
Currently, I am not familiar enough with http-push.c to suggest a proper alternative, but I suspect that the return values of the _existing_ calls to curl should know precisely why the requests failed, and _this_ should be reported.
> $gmane/70407 <1200250979-19604-2-git-send-email-gb@gbarbier.org>
I first could not reproduce the breakage described in the commit message (bad or no ref given on command line).
After playing around for a while, all of a sudden, I got a segmentation fault:
Waiting for http://dscho@127.0.0.1/test.git/objects/56/5e84516c1c6dca168be1715b45aeae70b24d13_36e8d912-4841-455a-bbd9-69e54d00db99 Segmentation fault (core dumped)
Unfortunately, this is with _and_ without this patch.
In gdb, it looks like this:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1213430096 (LWP 31418)]
check_locks () at http-push.c:637
637 if (!lock->refreshing && time_remaining <
LOCK_REFRESH) {
(gdb) p lock
$1 = (struct remote_lock *) 0x20
(gdb) bt
#0 check_locks () at http-push.c:637
#1 0x08053f8a in process_response (callback_data=0x80c4550)
at http-push.c:683
#2 0x0804dbf4 in process_curl_messages () at http.c:539
#3 0x0804dc46 in step_active_slots () at http.c:453
#4 0x0804dccb in run_active_slot (slot=0x80c2388) at http.c:474
#5 0x0804deaa in http_cleanup () at http.c:291
#6 0x0805268f in main (argc=3, argv=Cannot access memory at address 0x4
) at http-push.c:2428So it seems that there is more to fix.
> $gmane/70405 <1200250979-19604-3-git-send-email-gb@gbarbier.org>
This makes sense. I only tried to compile http-push once without CURL_MULTI, and gave up (I think I even sent out a patch disabling CURL_MULTI for curl versions lacking a certain symbol).
Ciao, Dscho