TEST-13-NSPAWN.machined occasionally fails with a tar error, and it's hard
to say what the problem is at the exit code is lost. Try to capture it.
[ 34.054] systemd-importd[504]: (transfer18) Imported 92%.
[ 34.118] systemd-importd[504]: (transfer18) Failed to decode and write: Broken pipe
[ 34.119] systemd-importd[504]: (transfer18) Exiting.
[ 34.121] systemd-importd[504]: (transfer18) Failed to allocate transient user namespace: Operation not permitted
[ 34.121] systemd-importd[504]: Transfer process failed with exit code 1.
Follow-up for
b6e676ce41508e2aeea22202fc8f234126177f52
r = decompressor_push(i->compress, i->buffer, i->buffer_size, tar_import_write, i);
if (r < 0) {
log_error_errno(r, "Failed to decode and write: %m");
+
+ /* Try to check the actual exit code from the child process, to make debugging easier */
+ if (r == -EPIPE && pidref_is_set(&i->tar_pid)) {
+ int q = pidref_wait_for_terminate_and_check("tar", &i->tar_pid, WAIT_LOG);
+ pidref_done(&i->tar_pid);
+ if (q < 0)
+ r = q;
+ else if (q != EXIT_SUCCESS)
+ r = -EPROTO;
+ }
+
goto finish;
}