From: Stefan Sperling Subject: Re: got send failure To: Christian Weisgerber Cc: gameoftrees@openbsd.org Date: Sat, 28 Aug 2021 18:03:27 +0200 On Sat, Aug 28, 2021 at 05:20:24PM +0200, Christian Weisgerber wrote: > $ got send > Connecting to "origin" stsp_gitolite@git.gameoftrees.org > packing 1 reference; 10 objects; deltify: 100%; uploading pack: 23.6K 100%fatal: missing blob object '7de2767444a19ea67be04143f1677a1e6e9a08d7' > fatal: missing blob object '7de2767444a19ea67be04143f1677a1e6e9a08d7' > got-send-pack: unexpected message from server > > got: bad packet received > > > The blob in question does exist... > > $ got tree -i regress/cmdline > [...] > 7de2767444a19ea67be04143f1677a1e6e9a08d7 histedit.sh* > [...] > > ... and should be part of the commit I'm trying to send. > > What do I do now? This will require some debugging. Can you repeat this with the following patch applied? Does it print anything regarding the missing blob or tree objects that this blob depends on being included? Any object to be included in the pack should pass through add_meta() with a non-NULL v pointer. diff 27b75514d9b1c8e9f188ef9c483760647a8c1b72 /home/stsp/src/got blob - 1455b6df378eb19d397ce2e3d3588af5a0256490 file + lib/pack_create.c --- lib/pack_create.c +++ lib/pack_create.c @@ -318,6 +318,14 @@ add_meta(struct got_pack_metavec *v, struct got_object if (err) return err; + { + char *id_str; + got_object_id_str(&id_str, id); + fprintf(stderr, "%s: v=%p id=%s type=%d path=%s\n", __func__, + v, id_str, obj_type, path); + free(id_str); + } + if (v == NULL) return NULL;