errors out with Gnus repository that uses http

Bug #886168 reported by Eli Zaretskii
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Dulwich
Triaged
High
Unassigned

Bug Description

This is with today's trunk of bzr-git (revno 1449) and bzr 2.4.2 on Windows XP. "bzr pull http://git.gnus.org/gnus.git/" errors out thusly:

Using saved parent location: http://git.gnus.org/gnus.git/
bzr: ERROR: Invalid http response for http://git.gnus.org/gnus.git/git-upload-pack: Unable to handle http code 500: Internal Server Error

This "bzr pull" command behaved weirdly to begin with: it started by churning my disk for about half a minute, then the progress indicator froze for a few mi9nutes, and finally I saw the above error message.

Here's the backtrace:

0.453 opening working tree 'D:/gnu/bzr/gnus.git'
390.906 Transferred: 1259kB (3.2kB/s r:44kB w:1215kB)
390.906 Traceback (most recent call last):
  File "bzrlib\commands.pyo", line 946, in exception_to_return_code
  File "bzrlib\commands.pyo", line 1150, in run_bzr
  File "bzrlib\commands.pyo", line 699, in run_argv_aliases
  File "bzrlib\commands.pyo", line 721, in run
  File "bzrlib\cleanup.pyo", line 135, in run_simple
  File "bzrlib\cleanup.pyo", line 165, in _do_with_cleanups
  File "bzrlib\builtins.pyo", line 1076, in run
  File "bzrlib\decorators.pyo", line 217, in write_locked
  File "bzrlib\workingtree.pyo", line 1017, in pull
  File "bzrlib\branch.pyo", line 1109, in pull
  File "D:/usr/Bazaar/plugins\git\branch.py", line 827, in pull
  File "D:/usr/Bazaar/plugins\git\branch.py", line 763, in _basic_pull
  File "D:/usr/Bazaar/plugins\git\branch.py", line 737, in _update_revisions
  File "D:/usr/Bazaar/plugins\git\branch.py", line 730, in fetch_objects
  File "D:/usr/Bazaar/plugins\git\fetch.py", line 699, in fetch_objects
  File "D:/usr/Bazaar/plugins\git\remote.py", line 407, in fetch_objects
  File "D:/usr/Bazaar/plugins\git\remote.py", line 397, in fetch_pack
  File "D:/usr/Bazaar/plugins\git\remote.py", line 217, in fetch_pack
  File "D:\usr\Bazaar\site-packages\dulwich\client.py", line 698, in fetch_pack
  File "D:\usr\Bazaar\site-packages\dulwich\client.py", line 625, in _smart_request
  File "D:/usr/Bazaar/plugins\git\remote.py", line 331, in _perform
  File "bzrlib\transport\http\_urllib.pyo", line 79, in _perform
  File "urllib2.pyo", line 397, in open
  File "bzrlib\transport\http\_urllib2_wrappers.pyo", line 1623, in http_response
  File "urllib2.pyo", line 435, in error
  File "urllib2.pyo", line 369, in _call_chain
  File "bzrlib\transport\http\_urllib2_wrappers.pyo", line 1640, in http_error_default
InvalidHttpResponse: Invalid http response for http://git.gnus.org/gnus.git/git-upload-pack: Unable to handle http code 500: Internal Server Error

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

I can't reproduce this here (though I obviously don't have the same branch you do). Is it reproducible for you?

Are you working in a repository that has had changes to it made by something other than bzr-git ? In that case it might have been churning to update the git sha map. Perhaps the server timed out in the mean time.

Revision history for this message
Eli Zaretskii (eliz) wrote :

Yes, it's reproducible. The last revno I have is 10926. This branch has no changes at all, not even changes made with bzr. It's a pristine mirror of the upstream. All I ever did in it is "bzr pull" and commands like "bzr log" that are read-only.

I copied the branch aside, downgraded to bzr-git 0.6.2, and then "bzr pull" worked without any problems (and without churning the disk). (However, it is slow and inefficient: it fetches 30+MB of data just to import a small number revisions.) So it sounds like some change in later bzr-git, perhaps related to the HTTP-related improvements made lately.

Let me know if I can provide more details. Perhaps some debugging switch will help?

Revision history for this message
Jelmer Vernooij (jelmer) wrote : Re: [Bug 886168] Re: bzr-git errors out with Gnus repository that uses http

On 11/04/2011 05:44 PM, Eli Zaretskii wrote:
> Yes, it's reproducible. The last revno I have is 10926. This branch
> has no changes at all, not even changes made with bzr. It's a pristine
> mirror of the upstream. All I ever did in it is "bzr pull" and commands
> like "bzr log" that are read-only.
>
> I copied the branch aside, downgraded to bzr-git 0.6.2, and then "bzr
> pull" worked without any problems (and without churning the disk).
> (However, it is slow and inefficient: it fetches 30+MB of data just to
> import a small number revisions.) So it sounds like some change in
> later bzr-git, perhaps related to the HTTP-related improvements made
> lately.
>
> Let me know if I can provide more details. Perhaps some debugging
> switch will help?
Can you reproduce this issue with 0.6.3?

It sounds like this might be related to the smart server protocol
support that was introduced in 0.6.3. That would also explain why it's
so inefficient for your with 0.6.2.

Cheers,

Jelmer

Revision history for this message
Eli Zaretskii (eliz) wrote : Re: bzr-git errors out with Gnus repository that uses http

0.6.3 crashes for me (bug #885566), remember? Would 0.6.4 be good enough?

Jelmer Vernooij (jelmer)
affects: bzr-git → dulwich
Changed in dulwich:
status: New → Incomplete
status: Incomplete → In Progress
importance: Undecided → High
assignee: nobody → Jelmer Vernooij (jelmer)
Revision history for this message
Jeroen T. Vermeulen (jtv) wrote :

I'm triaging the Launchpad aspect of this bug. ISTM that Jelmer is doing the hard work here, and hopefully the Launchpad fix will consist of a straightforward bzr upgrade.

Changed in launchpad:
status: New → Triaged
importance: Undecided → Critical
Jelmer Vernooij (jelmer)
summary: - bzr-git errors out with Gnus repository that uses http
+ errors out with Gnus repository that uses http
Changed in dulwich:
status: In Progress → Triaged
assignee: Jelmer Vernooij (jelmer) → nobody
William Grant (wgrant)
no longer affects: launchpad
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.