trap(:INT)doputs"SIGINT"exitendtrap(:TERM)doputs"SIGTERM"exitendr=Ractor.newdoloopdosleep1endendRactor.select(r)# stucked.# SIGINT/SIGTERM sent to Ruby process(confirmed by trap),# but process won't exit.
I think I have encountered the same issue. I was able to reproduce the problem using a simpler code that results in a process hang when a Ractor, which internally raises an exception, is passed to Ractor.select.
Here is the minimal code snippet that demonstrates the issue: