An unmodified ruby script stopped working after I upgraded to the latest Ruby 1.8.2 stable snapshot (2004-10-25).
WHAT CHANGED:
a. upgraded few weeks old stable snapshot to Ruby 1.8.2 2004-10-25
b. upgraded mod_ruby to 1.2.4
(reverting to old version of mod_ruby did not fix problem)
WHAT DID NOT CHANGE:
a. httpd.conf and ruby.conf (timestamps are months old)
b. my *.rbx and *.rb (timestamps are months old)
ERROR MESSAGE:
error msg: /var/www/ruby/myip.rbx:14: undefined method `sign_msg' for main:Object (NoMethodError)
from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:53:in `load'
from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:53:in `handler'
DETAILS:
The script myip.rbx worked fine before upgrading Ruby to latest stable snapshot. The older version of Ruby was only a few weeks old.
myip.rbx uses a "require" command to load the .rb file containing the sign_msg() method. Both scripts have been unmodified for many months.
The .rb file is in a different directory from myip.rbx (same place it has been for months). The directory is in "RubyAddPath" setting in ruby.conf which is included by httpd.conf.
Again, not sure why upgrading to latest ruby broke this. It has been working fine for months. And the ruby version replaced was only a few weeks old.
SYSTEM:
i686-linux (RedHat AS3)
Apache 2.0.46
Ruby 1.8.2 (2004-10-25) [i686-linux]
mod_ruby 1.2.4
Ruby Noob wrote:
An unmodified ruby script stopped working after I upgraded to the latest Ruby 1.8.2 stable snapshot (2004-10-25).
WHAT CHANGED:
a. upgraded few weeks old stable snapshot to Ruby 1.8.2 2004-10-25
b. upgraded mod_ruby to 1.2.4
(reverting to old version of mod_ruby did not fix problem)
WHAT DID NOT CHANGE:
a. httpd.conf and ruby.conf (timestamps are months old)
b. my *.rbx and *.rb (timestamps are months old)
ERROR MESSAGE:
error msg: /var/www/ruby/myip.rbx:14: undefined method `sign_msg' for main:Object (NoMethodError)
from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:53:in `load'
from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:53:in `handler'
DETAILS:
The script myip.rbx worked fine before upgrading Ruby to latest stable snapshot. The older version of Ruby was only a few weeks old.
myip.rbx uses a "require" command to load the .rb file containing the sign_msg() method. Both scripts have been unmodified for many months.
The .rb file is in a different directory from myip.rbx (same place it has been for months). The directory is in "RubyAddPath" setting in ruby.conf which is included by httpd.conf.
Again, not sure why upgrading to latest ruby broke this. It has been working fine for months. And the ruby version replaced was only a few weeks old.
SYSTEM:
i686-linux (RedHat AS3)
Apache 2.0.46
Ruby 1.8.2 (2004-10-25) [i686-linux]
mod_ruby 1.2.4
I found yet another script that broke. This time, the script is a very simple .rhtml file and the following error occurs:
error msg: (eval): (eval): uninitialized constant Apache::ERubyRun (NameError)
from (eval):0:in `value'
I fixed it by modifying ruby.conf to add:
"RubyRequire apache/eruby-run"
But it worked fine without this fix in the past. Is this a bug with the latest ruby stable snapshot or is this a known compatibility change we need to live with?