Script/console is hanging, Observer issue...?

After weeks of working fine, yesterday script/console started hanging
upon startup, right after printing “Loading Development Environment.”
I waited several minutes and control-C’d, and got this:

^C/usr/local/lib/ruby/1.8/singleton.rb:150:in sleep': Interrupt from /usr/local/lib/ruby/1.8/singleton.rb:150:in_instantiate?’
from /usr/local/lib/ruby/1.8/singleton.rb:106:in instance' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:38:ininstantiate_observers’
from
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:36:in
each' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:36:ininstantiate_observers’
from
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:212:in
load_observers' from /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:108:inprocess’
from
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:43:in
send' ... 51 levels... from /usr/local/lib/ruby/1.8/irb/init.rb:250:inload_modules’
from /usr/local/lib/ruby/1.8/irb/init.rb:21:in setup' from /usr/local/lib/ruby/1.8/irb.rb:54:instart’
from /usr/local/bin/irb:13

I looked in environment.rb and there’s only one observer. I checked it
against SVN and it hasn’t changed in weeks.

I did some debugging and found that the hang is related to this line in
inflector#constantize:

Object.module_eval("::#{$1}", FILE, LINE)

     # File vendor/rails/activesupport/lib/active_support/inflector.rb,
line 245
245:   def constantize(camel_cased_word)
246:     unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~
camel_cased_word
247:       raise NameError, "#{camel_cased_word.inspect} is not a valid
constant name!"
248:     end
249:
250:     Object.module_eval("::#{$1}", __FILE__, __LINE__)
251:   end

What does this line do? The class name being observed is “User”

Update.

I deleted the source code and re-checked it from SVN. Magically,
script/console started behaving. I have no explanation.

However, now it seems mongrel and webrick are experiencing the same
issue. Mongrel won’t come up, it just stalls after “** Starting Rails
with development environment…” A Ctrl-C kills it.

Webrick, however, when Ctrl-C’d, produces the same stack trace as seen
below.

Tony Fromky wrote:

After weeks of working fine, yesterday script/console started hanging
upon startup, right after printing “Loading Development Environment.”
I waited several minutes and control-C’d, and got this:

^C/usr/local/lib/ruby/1.8/singleton.rb:150:in sleep': Interrupt from /usr/local/lib/ruby/1.8/singleton.rb:150:in_instantiate?’
from /usr/local/lib/ruby/1.8/singleton.rb:106:in instance' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:38:ininstantiate_observers’
from
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:36:in
each' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/observer.rb:36:ininstantiate_observers’
from
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:212:in
load_observers' from /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:108:inprocess’
from
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/initializer.rb:43:in
send' ... 51 levels... from /usr/local/lib/ruby/1.8/irb/init.rb:250:inload_modules’
from /usr/local/lib/ruby/1.8/irb/init.rb:21:in setup' from /usr/local/lib/ruby/1.8/irb.rb:54:instart’
from /usr/local/bin/irb:13

I looked in environment.rb and there’s only one observer. I checked it
against SVN and it hasn’t changed in weeks.

I did some debugging and found that the hang is related to this line in
inflector#constantize:

Object.module_eval("::#{$1}", FILE, LINE)

     # File vendor/rails/activesupport/lib/active_support/inflector.rb,
> line 245
> 245:   def constantize(camel_cased_word)
> 246:     unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~
> camel_cased_word
> 247:       raise NameError, "#{camel_cased_word.inspect} is not a valid
> constant name!"
> 248:     end
> 249:
> 250:     Object.module_eval("::#{$1}", __FILE__, __LINE__)
> 251:   end

What does this line do? The class name being observed is “User”

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs