From 404edb99b4ac8da9b6554b4cc573a59a3eee83c7 Mon Sep 17 00:00:00 2001 From: Ranen Ghosh Date: Tue, 17 Sep 2024 08:04:09 -0400 Subject: [PATCH 1/2] Fix emrun sporadic exit hang on Windows --- emrun.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/emrun.py b/emrun.py index f7bc13df34044..24c1a518ac87d 100644 --- a/emrun.py +++ b/emrun.py @@ -704,6 +704,8 @@ def do_POST(self): if not emrun_options.serve_after_exit: page_exit_code = int(data[6:]) logv('Web page has quit with a call to exit() with return code ' + str(page_exit_code) + '. Shutting down web server. Pass --serve-after-exit to keep serving even after the page terminates with exit().') + if emrun_options.force_exit: + self.server.socket.setblocking(False) self.server.shutdown() return else: @@ -1563,6 +1565,9 @@ def parse_args(args): parser.add_argument('--dump-out-directory', default='dump_out', type=str, help='If specified, overrides the directory for dump files using emrun_file_dump method.') + parser.add_argument('--force-exit', action='store_true', + help='If true, sets server socket to nonblocking on shutdown to avoid sporadic deadlocks.') + parser.add_argument('serve', nargs='?', default='') parser.add_argument('cmdlineparams', nargs='*') From 0a2edb5cd837da3c78cb69c9163182495eb02769 Mon Sep 17 00:00:00 2001 From: Ranen Ghosh Date: Tue, 24 Sep 2024 14:24:03 -0400 Subject: [PATCH 2/2] Fix emrun sporadic exit hang on Windows ; remove option --- emrun.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/emrun.py b/emrun.py index 24c1a518ac87d..90812813b4d48 100644 --- a/emrun.py +++ b/emrun.py @@ -704,8 +704,8 @@ def do_POST(self): if not emrun_options.serve_after_exit: page_exit_code = int(data[6:]) logv('Web page has quit with a call to exit() with return code ' + str(page_exit_code) + '. Shutting down web server. Pass --serve-after-exit to keep serving even after the page terminates with exit().') - if emrun_options.force_exit: - self.server.socket.setblocking(False) + # Set server socket to nonblocking on shutdown to avoid sporadic deadlocks + self.server.socket.setblocking(False) self.server.shutdown() return else: @@ -1565,9 +1565,6 @@ def parse_args(args): parser.add_argument('--dump-out-directory', default='dump_out', type=str, help='If specified, overrides the directory for dump files using emrun_file_dump method.') - parser.add_argument('--force-exit', action='store_true', - help='If true, sets server socket to nonblocking on shutdown to avoid sporadic deadlocks.') - parser.add_argument('serve', nargs='?', default='') parser.add_argument('cmdlineparams', nargs='*')