From bcf823fddbe38e0503805a7ba6ded53c1bc1e19d Mon Sep 17 00:00:00 2001 From: ko1 Date: Sat, 29 Jul 2023 07:28:52 +0900 Subject: [PATCH] Revert "[rubygems/rubygems] Set thread configurations inside block" This reverts commit db80e947a382a6a9ef2295e81f5b97c6a8ecbce7. This patch uses `Thread.abort_on_exception = true` and it affects all of threads. This is why CI systems fails. How to modify: - use `thread.abort_on_exception = true` for specific threads - Run this code in a separated process --- lib/rubygems/gemcutter_utilities/webauthn_listener.rb | 4 ++-- lib/rubygems/gemcutter_utilities/webauthn_poller.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/rubygems/gemcutter_utilities/webauthn_listener.rb b/lib/rubygems/gemcutter_utilities/webauthn_listener.rb index f8158aa597..ee3fc7bcab 100644 --- a/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +++ b/lib/rubygems/gemcutter_utilities/webauthn_listener.rb @@ -34,14 +34,14 @@ module Gem::GemcutterUtilities def self.listener_thread(host, server) thread = Thread.new do - Thread.abort_on_exception = true - Thread.report_on_exception = false Thread.current[:otp] = new(host).wait_for_otp_code(server) rescue Gem::WebauthnVerificationError => e Thread.current[:error] = e ensure server.close end + thread.abort_on_exception = true + thread.report_on_exception = false thread end diff --git a/lib/rubygems/gemcutter_utilities/webauthn_poller.rb b/lib/rubygems/gemcutter_utilities/webauthn_poller.rb index 7ffd472ad3..766b38584e 100644 --- a/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +++ b/lib/rubygems/gemcutter_utilities/webauthn_poller.rb @@ -33,12 +33,12 @@ module Gem::GemcutterUtilities def self.poll_thread(options, host, webauthn_url, credentials) thread = Thread.new do - Thread.abort_on_exception = true - Thread.report_on_exception = false Thread.current[:otp] = new(options, host).poll_for_otp(webauthn_url, credentials) rescue Gem::WebauthnVerificationError, Timeout::Error => e Thread.current[:error] = e end + thread.abort_on_exception = true + thread.report_on_exception = false thread end