git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git fetch pack freezes

From
IKIvan Kanis <ivan.kanis@googlemail.com>
Date
Nov 28, 2012, 14:12 UTC
Message-ID
<87624pizoe.fsf@googlemail.com>
Hello,

We are using git with the smart HTTP protocol. We are seeing the client freeze with Jenkins poll. It stops the continuous build which is a bit of a pain. It happens with the latest release 1.8.0 on the client side. The server is using 1.7.0.4.

On the server we are seeing the following error message:
var/log/apache2/error.log.1:[Mon Nov 19 15:17:12 2012] [error] [client 192.168.50.15] fatal: git upload-pack: not our ref aa92ca2076c2421433f89ee0b0ae89cd36d27481 multi_ack_detailed side-band-64k thin-pack no-progress ofs-delta
The error is located in upload-pack.c:
                 * Hmph.  We may later want to allow "want" line that
                 * asks for something like "master~10" (symbolic)...
                 * would it make sense?  I don't know.
                 */
                o = lookup_object(sha1_buf);
                if (!o || !(o->flags & OUR_REF))
                        die("git upload-pack: not our ref %s", line+5);
It calls die with I believe is doing the right thing(TM).

On the client side I compiled git with debugging symbols. I then attached the debugger to the process that gets hosed. I get the following backtrace:

#0  0x00007fff85389af0 in read ()
#1  0x000000010f900913 in xread (fd=0, buf=0x7fff6f376e2c, len=4) at wrapper.c:142
#2  0x000000010f900a11 in read_in_full (fd=0, buf=0x7fff6f376e2c, count=4) at wrapper.c:171
#3  0x000000010f8a14e4 in safe_read (fd=0, buffer=0x7fff6f376e2c, size=4, return_line_fail=0) at pkt-line.c:140
#4  0x000000010f8a110e in packet_read_internal (fd=0, buffer=0x10f981eb0 "", size=1000, return_line_fail=0) at pkt-line.c:183
#5  0x000000010f8a1246 in packet_read_line (fd=0, buffer=0x10f981eb0 "", size=1000) at pkt-line.c:211
#6  0x000000010f7b5196 in get_ack (fd=0, result_sha1=0x7fff6f377450 "") at builtin/fetch-pack.c:227
#7  0x000000010f7b4074 in find_common (fd=0x7fff6f377668, result_sha1=0x7fff6f377450 "", refs=0x0) at builtin/fetch-pack.c:416
#8  0x000000010f7b32a5 in do_fetch_pack (fd=0x7fff6f377668, orig_ref=0x10fb007a0, sought=0x7fff6f377670, pack_lockfile=0x7fff6f377660)
    at builtin/fetch-pack.c:832
#9  0x000000010f7b2cbd in fetch_pack (my_args=0x10f973fe8, fd=0x7fff6f377668, conn=0x0, ref=0x10fb007a0, 
    dest=0x7fff6f377a78 "https://foo.visionobjects.com/git/a-project-name/", sought=0x7fff6f377670, pack_lockfile=0x7fff6f377660)
    at builtin/fetch-pack.c:1069
#10 0x000000010f7b2a25 in cmd_fetch_pack (argc=7, argv=0x7fff6f377890, prefix=0x0) at builtin/fetch-pack.c:1012
#11 0x000000010f77aa5b in run_builtin (p=0x10f971990, argc=7, argv=0x7fff6f377890) at git.c:306
#12 0x000000010f779ac7 in handle_internal_command (argc=7, argv=0x7fff6f377890) at git.c:467
#13 0x000000010f77a299 in run_argv (argcp=0x7fff6f377858, argv=0x7fff6f377850) at git.c:513
#14 0x000000010f7798fd in main (argc=7, argv=0x7fff6f377890) at git.c:588

The file descriptor being 0 in #6 seems a bit suspicious. I am not familiar with the git protocol. Could I get some guidance on how to troubleshoot some more so that I come up with a patch?

-- 
Ivan Kanis, Release Manager, Vision Objects,
Tel +33 2 28 01 49 50,  Fax +33 2 40 25 89 20
http://www.visionobjects.com

The essence of science: ask an impertinent question, and you are on
the way to a pertinent answer.
    -- Jacob Bronowski
Next: Shawn Pearce
Message 1 of 4 in “git fetch pack freezes”
  1. Ivan KanisNov 28, 2012
  2. Shawn PearceNov 28, 2012
  3. Ivan KanisNov 28, 2012
  4. Shawn PearceNov 28, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.