From: Junio C Hamano <gitster@pobox.com>
To: Justin Tobler <jltobler@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/2] object-file: return error on index-pack abnormal exit
Date: Wed, 04 Nov 2026 15:06:49 -0800 [thread overview]
Message-ID: <xmqq8q38yz5i.fsf@gitster.g> (raw)
In-Reply-To: <20261103212410.1389988-3-jltobler@gmail.com> (Justin Tobler's message of "Tue, 3 Nov 2026 15:24:10 -0600")
Justin Tobler <jltobler@gmail.com> writes:
> diff --git a/object-file.c b/object-file.c
> index a9800143bd..e04ce0bc11 100644
> --- a/object-file.c
> +++ b/object-file.c
> @@ -1429,8 +1429,7 @@ static int odb_transaction_files_write_pack(struct odb_transaction *base,
> struct pack_header hdr;
> const char *hdr_err;
> int err_fd = opts->err_fd;
> - int ret = -1;
> - int status;
> + int ret;
>
> hdr_err = parse_pack_header(&hdr, pack_fd);
> if (hdr_err) {
> @@ -1462,12 +1461,13 @@ static int odb_transaction_files_write_pack(struct odb_transaction *base,
> child.in = pack_fd;
> child.err = err_fd;
> child.git_cmd = 1;
> - status = run_command(&child);
> - if (status) {
> + if (run_command(&child)) {
> strbuf_addstr(err_msg, "unpack-objects abnormal exit");
> return -1;
> }
OK. A slight simplication that does not change any behaviour.
> } else {
> + int report_err;
> +
> strvec_pushl(&child.args, "index-pack", "--stdin", NULL);
> push_header_arg(&child.args, &hdr);
>
> @@ -1487,24 +1487,24 @@ static int odb_transaction_files_write_pack(struct odb_transaction *base,
> child.in = pack_fd;
> child.err = err_fd;
> child.git_cmd = 1;
> - status = start_command(&child);
> - if (status) {
> + if (start_command(&child)) {
> strbuf_addstr(err_msg, "index-pack fork failed");
> return -1;
> }
>
> - ret = read_index_pack_report(repo, child.out, &pack_name, NULL);
> + report_err = read_index_pack_report(repo, child.out, &pack_name, NULL);
>
> close(child.out);
>
> - status = finish_command(&child);
> - if (status) {
> + if (finish_command(&child)) {
> strbuf_addstr(err_msg, "index-pack abnormal exit");
> + ret = -1;
> goto out;
> }
OK. A slight simplication that does not change any behaviour again.
> - if (ret) {
> + if (report_err) {
> strbuf_addstr(err_msg, "index-pack failed to report pack name");
> + ret = -1;
> goto out;
> }
I guess this also does not change a behaviour? We used to relay the
error status returned by read_index_pack_report(), but now we force
the error code to an explicit -1.
Personally, I somehow find that the original "unless we positively
declare success, default to 'ret = -1', and if we may have detected
more specific error, return it back, and reset ret to 0 when we see
a success" easier to follow, but that may be subjective preference.
Will queue. Thanks.
next prev parent reply other threads:[~2026-11-04 23:06 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 21:24 [PATCH 0/2] object-file: small error handling follow-ups Justin Tobler
2026-11-03 21:24 ` [PATCH 1/2] object-file: warn on failed unlink Justin Tobler
2026-11-04 23:00 ` Junio C Hamano
2026-11-03 21:24 ` [PATCH 2/2] object-file: return error on index-pack abnormal exit Justin Tobler
2026-11-04 23:06 ` Junio C Hamano [this message]
2026-11-05 18:09 ` Justin Tobler
2026-11-10 9:04 ` Kaartic Sivaraam
2026-11-10 16:43 ` Junio C Hamano
2026-11-10 17:57 ` Kaartic Sivaraam
2026-11-10 19:25 ` Justin Tobler
2026-11-05 15:30 ` Patrick Steinhardt
2026-11-05 18:06 ` Justin Tobler
2026-11-04 13:37 ` [PATCH 0/2] object-file: small error handling follow-ups Karthik Nayak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq8q38yz5i.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jltobler@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.