From: Justin Tobler <jltobler@gmail.com>
To: git@vger.kernel.org
Cc: Justin Tobler <jltobler@gmail.com>
Subject: [PATCH 2/2] object-file: return error on index-pack abnormal exit
Date: Tue, 3 Nov 2026 15:24:10 -0600 [thread overview]
Message-ID: <20261103212410.1389988-3-jltobler@gmail.com> (raw)
In-Reply-To: <20261103212410.1389988-1-jltobler@gmail.com>
When git-index-pack(1) exits abnormally after reporting the packfile
name, `odb_transaction_files_write_pack()` records an error message in
`err_msg` but still returns success. Current callers ultimately discard
the return value, so this does not cause any issues at present, but the
return value should still reflect the failure.
Update `odb_transaction_files_write_pack()` to return an error value in
this case accordingly. While at it, simplify how the child process exit
statuses are checked.
Signed-off-by: Justin Tobler <jltobler@gmail.com>
---
object-file.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
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;
}
} 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;
}
- if (ret) {
+ if (report_err) {
strbuf_addstr(err_msg, "index-pack failed to report pack name");
+ ret = -1;
goto out;
}
--
2.56.0.173.gf57c9a7388
next prev parent reply other threads:[~2026-11-03 21:24 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 ` Justin Tobler [this message]
2026-11-04 23:06 ` [PATCH 2/2] object-file: return error on index-pack abnormal exit Junio C Hamano
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=20261103212410.1389988-3-jltobler@gmail.com \
--to=jltobler@gmail.com \
--cc=git@vger.kernel.org \
/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.