mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 16:21:18 +08:00
FIX: properly reset all contexts after forking
Fixes hang on backup
This commit is contained in:
28
script/check_forking.rb
Normal file
28
script/check_forking.rb
Normal file
@ -0,0 +1,28 @@
|
||||
require File.expand_path("../../config/environment", __FILE__)
|
||||
|
||||
def pretty
|
||||
puts "<before>"
|
||||
puts PrettyText.cook("My pid is #{Process.pid}")
|
||||
end
|
||||
|
||||
Discourse.after_fork
|
||||
pretty
|
||||
|
||||
child = fork do
|
||||
Discourse.after_fork
|
||||
pretty
|
||||
grand_child = fork do
|
||||
Discourse.after_fork
|
||||
pretty
|
||||
puts "try to exit"
|
||||
Process.kill "KILL", Process.pid
|
||||
end
|
||||
puts "before wait 2"
|
||||
Process.wait grand_child
|
||||
puts "after wait 2"
|
||||
Process.kill "KILL", Process.pid
|
||||
end
|
||||
|
||||
puts "before wait 1"
|
||||
Process.wait child
|
||||
puts "after wait 1"
|
Reference in New Issue
Block a user