Package: fakeroot Version: 1.22-2 Severity: normal Tags: patch Dear Maintainer,
A number of Haskell packages[1][2][3] have been failing to build reproducible lately with the following error: debian/hlibrary.setup copy --builddir=dist-ghc --destdir=debian/tmp-inst-ghc libfakeroot, when sending message: Interrupted system call I have not been able to reproduce this, but looking at the code, it seems that send_fakem() fails to send a message, and then fakeroot hangs indefinetly waiting for an answer. Attached, is a patch which retries the msgsnd() system call in case it was interrupted by a signal. Thanks, [1] https://tests.reproducible-builds.org/debian/logs/buster/i386/haskell-abstract-par_0.3.3-7.build2.log.gz [2] https://tests.reproducible-builds.org/debian/rbuild/unstable/amd64/cpphs_1.20.8-1.rbuild.log [3] https://tests.reproducible-builds.org/debian/logs/buster/i386/haskell-abstract-par_0.3.3-7.build2.log.gz -- Ilias
diff --git a/communicate.c b/communicate.c index a9e3593..fd23027 100644 --- a/communicate.c +++ b/communicate.c @@ -505,8 +505,10 @@ void send_fakem(const struct fake_msg *buf) if(init_get_msg()!=-1){ ((struct fake_msg *)buf)->mtype=1; - r=msgsnd(msg_snd, (struct fake_msg *)buf, - sizeof(*buf)-sizeof(buf->mtype), 0); + do + r=msgsnd(msg_snd, (struct fake_msg *)buf, + sizeof(*buf)-sizeof(buf->mtype), 0); + while((r==-1) && (errno==EINTR)); if(r==-1) perror("libfakeroot, when sending message"); }