Re: What's not in 'master' but should be

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

 



Hi,

On Fri, 18 Jan 2008, Junio C Hamano wrote:

> Junio C Hamano <gitster@xxxxxxxxx> 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@xxxxxxxxxxxx>

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@xxxxxxxxxxxx>

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@xxxxxxxxx/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:2428

So it seems that there is more to fix.

>   $gmane/70405 <1200250979-19604-3-git-send-email-gb@xxxxxxxxxxxx>

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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux