From: Patrick Steinhardt Date: Fri, 24 Oct 2025 09:11:27 GMT Subject: Re: [PATCH] refs: add missing remove_on_disk implementation for debug backend Message-ID: In-Reply-To: On Fri, Oct 24, 2025 at 08:38:14AM +0000, RuanXinyu via GitGitGadget wrote: > From: RuanXinyu > > The debug ref backend (refs_be_debug) was missing the remove_on_disk > function pointer, which caused a segmentation fault when running > 'GIT_TRACE_REFS=1 git refs migrate --ref-format=reftable' commands. Heh, funny, just as I said nobody uses this infra you show up :) Good way to prove me wrong, thanks! > Signed-off-by: Xinyu Ruan Tiny nit: typically, the author and DCO should match. But the autor is "RuanXinyu" whereas the DCO says "Xinyu Ruan". I don't really think that this is something that warrants a new version, but I wanted to point this out anyway so that you can fix this going forward. > diff --git a/refs/debug.c b/refs/debug.c > index da300efaf3..dd49080836 100644 > --- a/refs/debug.c > +++ b/refs/debug.c > @@ -48,6 +48,14 @@ static int debug_create_on_disk(struct ref_store *refs, int flags, struct strbuf > return res; > } > > +static int debug_remove_on_disk(struct ref_store *refs, struct strbuf *err) > +{ > + struct debug_ref_store *drefs = (struct debug_ref_store *)refs; > + int res = drefs->refs->be->remove_on_disk(drefs->refs, err); > + trace_printf_key(&trace_refs, "remove_on_disk: %d\n", res); > + return res; > +} > + > static int debug_transaction_prepare(struct ref_store *refs, > struct ref_transaction *transaction, > struct strbuf *err) > @@ -432,6 +440,7 @@ struct ref_storage_be refs_be_debug = { > .init = NULL, > .release = debug_release, > .create_on_disk = debug_create_on_disk, > + .remove_on_disk = debug_remove_on_disk, > > /* > * None of these should be NULL. If the "files" backend (in Yup, the implementation looks obviously correct to me. Thanks for fixing this bug! Patrick