Title: [294626] trunk/Source/WebKit/Shared
- Revision
- 294626
- Author
- [email protected]
- Date
- 2022-05-22 23:31:12 -0700 (Sun, 22 May 2022)
Log Message
Ignore SIGPIPE in subprocesses
https://bugs.webkit.org/show_bug.cgi?id=240444
Reviewed by Adrian Perez de Castro.
One common case where ignoring SIGPIPE is desired is to avoid issues
when logging to journald and it crashes. As stated in
https://www.freedesktop.org/software/systemd/man/systemd-journald.service
"In order to react gracefully in this (journald stopped) case it is
recommended that programs logging to standard output/error ignore such
errors."
* Shared/AuxiliaryProcess.cpp: Avoid default platformInitialize on
Unix.
* Shared/unix/AuxiliaryProcessMain.cpp:
(WebKit::AuxiliaryProcess::platformInitialize): Added, ignore SIGPIPE.
Canonical link: https://commits.webkit.org/250852@main
Modified Paths
Diff
Modified: trunk/Source/WebKit/Shared/AuxiliaryProcess.cpp (294625 => 294626)
--- trunk/Source/WebKit/Shared/AuxiliaryProcess.cpp 2022-05-23 04:43:10 UTC (rev 294625)
+++ trunk/Source/WebKit/Shared/AuxiliaryProcess.cpp 2022-05-23 06:31:12 UTC (rev 294626)
@@ -219,9 +219,12 @@
}
#if !PLATFORM(COCOA)
+
+#if !OS(UNIX)
void AuxiliaryProcess::platformInitialize(const AuxiliaryProcessInitializationParameters&)
{
}
+#endif
void AuxiliaryProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&)
{
Modified: trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp (294625 => 294626)
--- trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2022-05-23 04:43:10 UTC (rev 294625)
+++ trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2022-05-23 06:31:12 UTC (rev 294626)
@@ -28,6 +28,7 @@
#include <_javascript_Core/Options.h>
#include <WebCore/ProcessIdentifier.h>
+#include <signal.h>
#include <stdlib.h>
#include <string.h>
@@ -48,4 +49,13 @@
return true;
}
+void AuxiliaryProcess::platformInitialize(const AuxiliaryProcessInitializationParameters&)
+{
+ struct sigaction signalAction;
+ memset(&signalAction, 0, sizeof(signalAction));
+ RELEASE_ASSERT(!sigemptyset(&signalAction.sa_mask));
+ signalAction.sa_handler = SIG_IGN;
+ RELEASE_ASSERT(!sigaction(SIGPIPE, &signalAction, nullptr));
+}
+
} // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes