public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] libgomp: fix hang on fatal error
@ 2022-10-14 17:04 Andrew Stubbs
  2022-10-19 13:27 ` Jakub Jelinek
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Stubbs @ 2022-10-14 17:04 UTC (permalink / raw)
  To: gcc-patches, Jakub Jelinek

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

This patch fixes a problem in which fatal errors inside mutex-locked 
regions (i.e. basically anything in the plugin) will cause it to hang up 
trying to take the lock to clean everything up.

Using abort() instead of exit(1) bypasses the atexit handlers and solves 
the problem.

OK for mainline?

Andrew

[-- Attachment #2: 221014-abort-libgomp.patch --]
[-- Type: text/plain, Size: 512 bytes --]

libgomp: fix hang on fatal error

Don't try to clean up if a fatal error occurs in libgomp.  Typically the
cleanup is not reentrant so we end up hung on a lock.

libgomp/ChangeLog:

	* error.c (gomp_vfatal): Use abort instead of exit.

diff --git a/libgomp/error.c b/libgomp/error.c
index 50ed85eedb1..25548c14a82 100644
--- a/libgomp/error.c
+++ b/libgomp/error.c
@@ -77,7 +77,7 @@ void
 gomp_vfatal (const char *fmt, va_list list)
 {
   gomp_verror (fmt, list);
-  exit (EXIT_FAILURE);
+  abort ();
 }
 
 void

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-10-19 16:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-14 17:04 [PATCH] libgomp: fix hang on fatal error Andrew Stubbs
2022-10-19 13:27 ` Jakub Jelinek
2022-10-19 16:08   ` Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).