[Mongrel] Segmentation fault in Mongrel when run with --debug

Scott Derrick lists at ruby-forum.com
Wed Dec 19 17:51:55 EST 2007


I am having a problem with mongrel just stopping inside a
periodically_call_remote function so I ran mongrel with debug enabled
Mongrel seg faults after a few minutes

The mongrel filelog shows 5 files open when this happens. Same log files
that are open all the time.

Wed Dec 19 15:10:21 -0700 2007 FILES OPEN BEFORE REQUEST
/calibration/ackAdjustDistance
---
log/mongrel_debug/objects.log: 2
/home/scott/NetBeansProjects/webmonitor/config/../log/development.log: 1
log/mongrel_debug/rails.log: 1
log/mongrel_debug/files.log: 1
log/mongrel_debug/threads.log: 1
log/mongrel_debug/access.log: 1


There are 2 threads running
Wed Dec 19 15:10:21 -0700 2007 REQUEST /calibration/ackAdjustDistance
0.0.0.0:3000 -- THREADS: 2 -----
  KEYS:
    -- #<Thread:0xb6e10738>: [:started_on]
    -- #<Thread:0xb75194bc>: [:started_on, :__inspect_key__]

Mongrel stops with this output to stdout.

127.0.0.1 - [Wed, 19 Dec 2007 22:10:17 GMT] "POST
/calibration/ackAdjustDistance HTTP/1.1"
127.0.0.1 - [Wed, 19 Dec 2007 22:10:19 GMT] "POST
/calibration/ackAdjustDistance HTTP/1.1"
127.0.0.1 - [Wed, 19 Dec 2007 22:10:21 GMT] "POST
/calibration/ackAdjustDistance HTTP/1.1"
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.2/bin/../lib/mongrel/debug.rb:128:
[BUG] Segmentation fault
ruby 1.8.6 (2007-09-24) [i686-linux]

the last part of the development log is

Processing CalibrationController#ackAdjustDistance (for 127.0.0.1 at
2007-12-19 15:10:23) [POST]
  Session ID: 5f0b23a7ae94ac5648268113cd3b4560
  Parameters: {"action"=>"ackAdjustDistance",
"controller"=>"calibration"}
  Calibration Load (0.000802)   SELECT * FROM
configurations WHERE (Name = 'CalibrationMessage') LIMIT 1
DEPRECATION WARNING: @session is deprecated! Call session.respond_to?
instead of @session.respond_to?. Args: [:length]  See
http://www.rubyonrails.org/deprecation for details. (called from process
at
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.2/bin/../lib/mongrel/debug.rb:128)
Completed in 0.03658 (27 reqs/sec) | Rendering: 0.00144 (3%) | 200 OK
[http://localhost/calibration/ackAdjustDistance]
DEPRECATION WARNING: @session is deprecated! Call session.class instead
of @session.class. Args: []  See http://www.rubyonrails.org/deprecation
for details. (called from process at
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.2/bin/../lib/mongrel/debug.rb:136)
DEPRECATION WARNING: @response is deprecated! Call response.respond_to?
instead of @response.respond_to?. Args: [:length]  See
http://www.rubyonrails.org/deprecation for details. (called from process
at
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.2/bin/../lib/mongrel/debug.rb:128)

both outputs refer to debug.rb line 128 which is

# stolen from Robert Klemme
  class Objects < GemPlugin::Plugin "/handlers"
    include Mongrel::HttpHandlerPlugin

 121   def process(request,response)
 122    begin
 123       stats = Hash.new(0)
 124       lengths = {}
 125       begin
 126         ObjectSpace.each_object do |o|
 127          begin
 128             if o.respond_to? :length
 129               len = o.length
 130               lengths[o.class] ||= Mongrel::Stats.new(o.class)
 131               lengths[o.class].sample(len)
 132             end
 133           rescue Object
 134           end

anybody else seen this?

thanks,

Scott
-- 
Posted via http://www.ruby-forum.com/.


More information about the Mongrel-users mailing list