Skip to contentSkip to conversation

package/fakeroot: fix highly parallel uses

PATCH New Yann E. MORIN 3 participants 5 messages Aug 13, 2017 – Sep 6, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/fakeroot: fix highly parallel uses

Although the issue can very well occur with low-paralle builds, or even with non-parallel builds, the conditions are so strict that the ocasion it breaks is extremely rare, to the point where a failure would go unnoticed.

Fixes #10141.

---
 ...communicate-check-return-status-of-msgrcv.patch | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 package/fakeroot/0002-communicate-check-return-status-of-msgrcv.patch
package/fakeroot/0002-communicate-check-return-status-of-msgrcv.patch new file +46 -0
new file mode 100644
index 0000000000..3bb4f9701f
@@ -0,0 +1,46 @@
+From a853f21633693f9eefc4949660253a5328d2d2f3 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <[email protected]>
+Date: Sun, 13 Aug 2017 23:21:54 +0200
+Subject: [PATCH 1/1] communicate: check return status of msgrcv()
+
+msgrcv can return with -1 to indicate an error condition.
+One such error is to have been interrupted by a signal.
+
+Being interrupted by a signal is very rare in this code, except in a
+very special condition: a highly-parallel (1000 jobs!) mksquashfs on
+a filesystem with extended attributes, where we see errors like (those
+are mksquashfs errors):
+    llistxattr for titi/603/883 failed in read_attrs, because Unknown
+    error 1716527536
+
+See: https://bugs.busybox.net/show_bug.cgi?id=10141
+
+In this case, we just have to retry the call to msgrcv().
+
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+---
+ communicate.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/communicate.c b/communicate.c
+index 293f404..787bb63 100644
+--- a/communicate.c
++++ b/communicate.c
+@@ -553,10 +553,13 @@ void send_get_fakem(struct fake_msg *buf)
+       l=msgrcv(msg_get,
+                (struct my_msgbuf*)buf,
+                sizeof(*buf)-sizeof(buf->mtype),0,0);
+-    while((buf->serial!=serial)||buf->pid!=pid);
++    while(((l==-1)&&(errno==EINTR))||(buf->serial!=serial)||buf->pid!=pid);
+ 
+     semaphore_down();
+ 
++    if(l==-1)
++      buf->xattr.flags_rc=errno;
++
+     /*
+     (nah, may be wrong, due to allignment)
+ 
+-- 
+2.11.0
+
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 package/fakeroot: fix highly parallel uses

Quoted 10 lines · Yann E. MORIN

Although the issue can very well occur with low-paralle builds, or even with non-parallel builds, the conditions are so strict that the ocasion it breaks is extremely rare, to the point where a failure would go unnoticed.

Fixes #10141.

As you noticed on IRC, applied to master, thanks.

Clayton, for testing you can just use master.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 package/fakeroot: fix highly parallel uses

Quoted 7 lines · Arnout Vandecappelle
Quoted 5 lines · Yann E. MORIN

Although the issue can very well occur with low-paralle builds, or even with non-parallel builds, the conditions are so strict that the ocasion it breaks is extremely rare, to the point where a failure would go unnoticed.

Quoted 7 lines
Quoted 5 lines

Fixes #10141.

As you noticed on IRC, applied to master, thanks.

By the way, did you send the patch upstream in the end? I looked in
bugs.debian.org but couldn't find anything...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#3 lore raw

PATCH 1/1 package/fakeroot: fix highly parallel uses

Arnout, All

On 2017-08-15 18:24 +0200, Arnout Vandecappelle spake thusly:

Quoted 10 lines · Arnout Vandecappelle
Quoted 9 lines · Yann E. MORIN
Quoted 7 lines

Although the issue can very well occur with low-paralle builds, or even with non-parallel builds, the conditions are so strict that the ocasion it breaks is extremely rare, to the point where a failure would go unnoticed.

Fixes #10141.

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

As you noticed on IRC, applied to master, thanks.

By the way, did you send the patch upstream in the end? I looked in
bugs.debian.org but couldn't find anything...

I did not open a bug on b.d.o: as I see it, patches there can linger for ages without action bein taken, so I don't really see the point... :-(

However, I did send the patch directly to the maintainer, yes, but have had no feedback so far. But it has only be a day. If he insists so, I'll open a bug on b.d.o, of course.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/1 package/fakeroot: fix highly parallel uses

In reply to Yann E. MORIN
Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

Although the issue can very well occur with low-paralle builds, or even with non-parallel builds, the conditions are so strict that the ocasion it breaks is extremely rare, to the point where a failure would go unnoticed.

Quoted 5 lines

Fixes #10141.

Committed to 2017.02.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard