[#84280] [Ruby trunk Bug#14181] hangs or deadlocks from waitpid, threads, and trapping SIGCHLD — nobu@...
Issue #14181 has been updated by nobu (Nobuyoshi Nakada).
3 messages
2017/12/15
[#84398] [Ruby trunk Bug#14220] WEBrick changes - failures on MSWIN, MinGW — Greg.mpls@...
Issue #14220 has been reported by MSP-Greg (Greg L).
3 messages
2017/12/22
[#84472] Re: [ruby-dev:50394] [Ruby trunk Bug#14240] warn four special variables: $; $, $/ $\ — Eric Wong <normalperson@...>
Shouldn't English posts be on ruby-core instead of ruby-dev?
3 messages
2017/12/26
[ruby-core:84138] [Ruby trunk Bug#4841] WEBrick threading leads to infinite loop
From:
mame@...
Date:
2017-12-08 21:54:41 UTC
List:
ruby-core #84138
Issue #4841 has been updated by mame (Yusuke Endoh).
Thank you for your quick response!
----------------------------------------
Bug #4841: WEBrick threading leads to infinite loop
https://bugs.ruby-lang.org/issues/4841#change-68244
* Author: peakxu (Peak Xu)
* Status: Closed
* Priority: Normal
* Assignee: normalperson (Eric Wong)
* Target version:
* ruby -v: run_this.rb
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
In a multi-threaded environment, the callback in WEBrick web server does not appear to work properly. If shutdown is called right after start, the server can entire an infinite loop and need to be killed using Ctrl-C.
Reproducible on 1.9.2 p180 on Windows and 1.8.7 on Cygwin.
ruby -v run_this.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
[2011-06-06 10:12:58] INFO WEBrick 1.3.1
[2011-06-06 10:12:58] INFO ruby 1.8.7 (2008-08-11) [i386-cygwin]
[2011-06-06 10:12:58] INFO WEBrick::HTTPServer#start: pid=4860 port=19000
run_this.rb:95:in `join': Interrupt
from run_this.rb:95:in `stop'
from run_this.rb:102
Note: killed manually to break out of infinite loop.
Recommended fix:
In webrick/server.rb around line 85-88, there's a callback as well as initialization of status to Running. If we move the callback below the initialization, this fixes the issue on 1.8.7 Cygwin but not in 1.9.2 Windows. Code should look like below:
<snip>
@logger.info \
"#{self.class}#start: pid=#{$$} port=#{@config[:Port]}"
thgroup = ThreadGroup.new
@status = :Running
call_callback(:StartCallback)
while @status == :Running
<snip>
ruby -v output now looks like:
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
[2011-06-06 10:05:45] INFO WEBrick 1.3.1
[2011-06-06 10:05:45] INFO ruby 1.8.7 (2008-08-11) [i386-cygwin]
[2011-06-06 10:05:45] INFO WEBrick::HTTPServer#start: pid=5228 port=19000
[2011-06-06 10:05:45] INFO going to shutdown ...
[2011-06-06 10:05:45] INFO WEBrick::HTTPServer#start done.
---Files--------------------------------
run_this.rb (2.53 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>