New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rpmbuild sometimes is killed by SIGPIPE with bad dependency generator sciptlets #2949
Comments
For reference: https://bugzilla.suse.com/show_bug.cgi?id=1220213 |
Oh, that sounds a whole lot like #2470 |
The flaky test-case is:
The common theme being a tiny generator that outputs little to nothing. |
You probably already know this, but rpmbuild is killed by the write() system that writes the filelist to the generator being done after the child has exited. |
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (rpm-software-management#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: rpm-software-management#2949
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (rpm-software-management#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: rpm-software-management#2949
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (rpm-software-management#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: rpm-software-management#2949
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (rpm-software-management#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: rpm-software-management#2949
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (rpm-software-management#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5, and restore SIG_DFL in the child. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: rpm-software-management#2949
If a dependency generator dies while we're still writing to its stdin, it causes us to die rather randomly. Typically happens with fake dependency generators that don't actually bother reading their input and/or write anything back. This is almost certainly the ghost failure we've occasionally seen in the test-suite too (#2470). Resurrect the explicit SIG_IGN that got removed apparently in commit 375a6b5, and restore SIG_DFL in the child. The matter was further confused by NSPR (which we once relied on) always setting SIGPIPE to SIG_IGN. Suggested-by: Michael Schroeder <mls@suse.de> Fixes: #2949
This is a bit of a corner case, but I just received a bug report that builds sometimes terminate for a specific package. It turned out the package contained this little gem:
Anyway, I don't think rpm should be killed by this. Once upon a time getOutputFrom() had code that made it ignore SIGPIPE, but it seems it was removed in commit 375a6b5
This is probably not urgent to fix, just filing so that you know about this race.
The text was updated successfully, but these errors were encountered: