Thread (16 messages) flat view 16 messages, 6 authors, 2016-06-15

Re: clong an empty repo over ssh causes (harmless) fatal

From: Daniel Barkalow <hidden>
Date: 2016-06-15 22:47:20

Possibly related (same subject, not in this thread)

On Mon, 31 Aug 2009, Jeff King wrote:
On Tue, Sep 01, 2009 at 12:50:25AM +0200, Sverre Rabbelier wrote:
quoted
2009/9/1 Jeff King [off-list ref]:
quoted
AFAICT, this problem goes back to v1.6.2, the first version which
handled empty clones. So I blame Sverre. ;)
Eep :(. Any idea what is going on?
Yeah. We call upload-pack on the remote side, realize there are no refs,
and then we just stop talking. Meanwhile upload-pack is waiting for a
packet to say "these are the refs that I want". So the client really
needs to send an extra packet saying "list of refs is finished".

The patch below seems to work for me, but I'm a little concerned how it
might impact other transports.
Does putting a "transport_disconnect(transport);" after the 
"transport_unlock_pack(transport);" in builtin-clone.c also work for you? 
I think that's a cleaner solution, and should future-proof it in case we 
have a future transport that both doesn't disconnect itself after a fetch 
and gives an error message if the connection is dropped suddenly.

It's kind of just an accident that the only transport that cares about 
disconnect very much doesn't care if you've fetched after getting the 
refs.

	-Daniel
*This .sig left intentionally blank*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help