"git push" hangs against "bzr serve --git"

Bug #381190 reported by Evan
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Bazaar Git Plugin
Fix Released
Medium
Jelmer Vernooij

Bug Description

Git push hangs indefinitely:

$ git push
localhost[0: ::1]: errno=Connection refused
localhost[0: fe80::1]: errno=Connection refused
Counting objects: 22, done.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (15/15), 1.86 KiB, done.
Total 15 (delta 12), reused 0 (delta 0)
^C

Traceback after control-C:

----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 55911)
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/SocketServer.py", line 222, in handle_request
    self.process_request(request, client_address)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/SocketServer.py", line 241, in process_request
    self.finish_request(request, client_address)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/SocketServer.py", line 254, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/SocketServer.py", line 522, in __init__
    self.handle()
  File "/opt/local/lib/python2.5/site-packages/dulwich/server.py", line 235, in handle
    h.handle()
  File "/opt/local/lib/python2.5/site-packages/dulwich/server.py", line 213, in handle
    self.backend.apply_pack(client_refs, self.proto.read)
  File "/opt/local/lib/python2.5/site-packages/bzrlib/plugins/git/server.py", line 86, in apply_pack
    entries = p.sorted_entries()
  File "/opt/local/lib/python2.5/site-packages/dulwich/pack.py", line 633, in sorted_entries
    ret = list(self.iterentries(resolve_ext_ref, progress=progress))
  File "/opt/local/lib/python2.5/site-packages/dulwich/pack.py", line 622, in iterentries
    raise KeyError([sha_to_hex(h) for h in postponed.keys()])
KeyError: ['7fff6cdb4fdb96aa146bb8e7f6d32a6f9c9b2882', '8ecf2ecf90e02445cabd746de4fea549a4ab4b00', '1d68f24e614fb3b0b0393471bf7a2a2ca0147731', 'f953ffd983aa7a470a43e8b413459d4c06c23dea', 'a9dd9d7e03fa462888f97b0161c78a7cef0e7c70', '32321c23471b0189fa25fbf6ea37128927cb5259', '0948725e553261553bb3d21af9dfd94c1e4833e2', 'e5dffe5b1567a206853a5335ef4fa04628b7bd4d', '7c090b4d47a17338865079b16d97d829bc4e290e', '864c042bca306f7551c72c87bfee83b70e9bfdc4']
----------------------------------------

Inspection of the origin git log shows that the change was never propagated upstream.

Tags: serve git
Evan (fauna)
tags: added: git serve
description: updated
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

This is a bit odd, it seems like git is sending a pack that contains deltas against texts that the server doesn't know about.

Changed in bzr-git:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Roland fixed this.

Changed in bzr-git:
status: Triaged → Fix Released
Revision history for this message
Matt Giuca (mgiuca) wrote :

I seem to have this bug, in 0.5.2 of bzr-git. Wasn't this marked fix released in 0.4.2?

It's exactly the same as described, except I don't see a Python traceback when I Ctrl+C git (not sure why I would) or bzr. It just hangs forever.

Note that I am using $ bzr serve --git --allow-writes on the server (localhost), and $ git push git://localhost/ on the client (same machine).

Revision history for this message
Matt Giuca (mgiuca) wrote :

I have just updated to the trunk versions of bzr-git (trunk r1056) and dulwich (trunk r705), and I am still getting this problem. I am still unable to see a traceback also. I think it should be marked not fixed, unless I am getting a different bug with the same symptoms?

Which commit was Roland's fix? I am guessing (from the date stamps) maybe 598.2.2.

Here is a full log of what I'm doing.

1. Create a new bzr branch with a commit.
2. Use bzr serve --git, and then pull it to git with git://localhost/, which works well.
3. Commit a change using git.

Then, in one window:

bzrbranch$ bzr serve --git

In the other:

gitrepo$ git push git://localhost/
localhost[0: ::1]: errno=Connection refused
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 298 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
^C

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

This seems to've regressed.

Changed in bzr-git:
status: Fix Released → Triaged
Jelmer Vernooij (jelmer)
Changed in bzr-git:
status: Triaged → Fix Released
status: Fix Released → Fix Committed
assignee: nobody → Jelmer Vernooij (jelmer)
Jelmer Vernooij (jelmer)
Changed in bzr-git:
status: Fix Committed → Fix Released
milestone: none → 0.6.4
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.