[Backgroundrb-devel] Intermittent "can't convert Float into Hash" and results.rb

Robert Bjarnason robert.bjarnason at gmail.com
Tue Jan 9 22:21:08 EST 2007


Hi Mason,

I'm still seeing the same problem with Float but in my case the 
backgroundrb server keeps on running fine and as people can retry on the 
client side this is not a blocker problem for us at the moment.

Compiler bugs are now less likely as you are using a different version 
of Ruby, GCC and a different Linux distribution.

Maybe the lead here is the fact that in both our cases more than one 
backgroundrb process is running when the crash happens, this should make 
it easy to create a test case to be able to replicate the problem to 
this - unfortunately I've only had the pleasure of working with Ruby for 
a couple of months so don't think I have the expertise needed to debug 
this problem.

As I understand backgroundrb then there would be two completely isolated 
Ruby VMs running our code so maybe this is a backgroundrb problem after all?

Warm regards,
Robert Bjarnason

Mason Hale wrote:
> I'm getting a similar error, here a partial stack trace:
>
> 20070108-20:17:45 (27597) can't convert Symbol into Hash - (TypeError)
> 20070108-20:17:45 (27597) 
> /opt/lss/demo/0.4-06/vendor/plugins/backgroundrb/server/lib/backgroundrb/results.rb:40:in 
> `merge!'
> 20070108-20:17:45 (27597) 
> /opt/lss/demo/0.4-06/vendor/plugins/backgroundrb/server/lib/backgroundrb/results.rb:40:in 
> `[]='
>
> The process will run fine for hours or days, but then will stop with 
> this error. When it happens it takes now the entire BackgrounDRb 
> server. (I'm addding some begin/rescue blocks to hopefully prevent that.)
>
> I've got Ruby 1.8.5p12 compiled with gcc 3.4.6 on RedHat Linux.
>
> This also seems to occur with more than one process (running the same 
> worker class) at the same tim
>
> Any ideas?
>
> Mason
>
> On 1/7/07, *Robert Bjarnason* <robert.bjarnason at gmail.com 
> <mailto:robert.bjarnason at gmail.com>> wrote:
>
>     Hi Bob,
>
>     Thanks for the pointer, I agree this is probably not a directly
>     backgroundrb related problem.  I built Ruby 1.8.4 on a Debian
>     Linux box
>     using gcc version 3.3.5.
>
>     Warm regards,
>     Robert Bjarnason
>
>     Bob Hutchison wrote:
>     > Hi,
>     >
>     > This sounds a bit like the trouble in OS X where you'd get a
>     Fixednum
>     > to String error. This was caused by a bug in the gcc 4.0
>     compiler. The
>     > solution on OS X is to re-compile Ruby with -O1 optimisation
>     level or
>     > switch to the gcc 3.x compiler). As I understand it, with linux you
>     > have the additional option of installing a newer version of gcc 4.x
>     > and recompiling (I'm using 4.0.2 on one of my linux boxes and have
>     > never seen the problem).
>     >
>     > Cheers,
>     > Bob
>     >
>     > On 4-Jan-07, at 11:44 AM, Robert Bjarnason wrote:
>     >
>     >> Hi,
>     >>
>     >> I'm using backgroundrb 0.2.1 in a production environment and
>     for most
>     >> parts I'm very happy.  We are using it to do some heavy video
>     editing on
>     >> the server side and it works great except that under, what
>     seems heavy
>     >> load the below problem happens intermittently.
>     >>
>     >> The problem has only happened 5 times out of over 500 runs by our
>     >> backgroundrb worker.
>     >>
>     >> This is the code in our worker:
>     >>               logger.debug("info : progress: #{progress}")
>     >>               progress_percent = progress * 100
>     >>               if progress_percent >= 100
>     >>                 results[:progress] = 99.99
>     >>               else
>     >>                 results[:progress] = progress_percent <-- Line
>     of the
>     >> crash
>     >>               end
>     >>
>     >> Here is the error:
>     >> can't convert Float into Hash
>     >>
>     >> And the beginning of the stack trace:
>     >>
>     /.../ContentStore/vendor/plugins/backgroundrb/server/lib/backgroundrb/results.rb:40
>
>     >>
>     >> :in
>     >>
>     `merge!'/.../ContentStore/vendor/plugins/backgroundrb/server/lib/backgroundrb/results.rb:40
>     >>
>     >> :in `[]='/.../ContentStore/lib/workers/content_worker.rb:40
>     >> :in
>     `execute_mp4box'/.../ContentStore/lib/workers/content_worker.rb:22:
>     >> in
>     `execute_mp4box'/.../ContentStore/lib/workers/content_worker.rb:21
>     >> :in
>     `execute_mp4box'/.../ContentStore/lib/workers/content_worker.rb:181
>     >> :in
>     >>
>     `do_work'/.../ContentStore/vendor/plugins/backgroundrb/server/lib/backgroundrb/worker.rb:55:
>     >>
>     >> ...
>     >>
>     >> The problem seems to happen only under heavy load where more
>     than 1
>     >> worker process is active at the same time.
>     >>
>     >> Any ideas or leads?
>     >>
>     >> Thanks,
>     >> Robert Bjarnason
>     >>
>     >> _______________________________________________
>     >> Backgroundrb-devel mailing list
>     >> Backgroundrb-devel at rubyforge.org
>     <mailto:Backgroundrb-devel at rubyforge.org>
>     >> http://rubyforge.org/mailman/listinfo/backgroundrb-devel
>     >
>     > ----
>     > Bob Hutchison                  -- blogs at
>     > <http://www.recursive.ca/hutch/>
>     > Recursive Design Inc.          -- <http://www.recursive.ca/>
>     > Raconteur                      -- <http://www.raconteur.info/
>     <http://www.raconteur.info/>>
>     > xampl for Ruby                 --
>     <http://rubyforge.org/projects/xampl/>
>     >
>     >
>     >
>     >
>
>     _______________________________________________
>     Backgroundrb-devel mailing list
>     Backgroundrb-devel at rubyforge.org
>     <mailto:Backgroundrb-devel at rubyforge.org>
>     http://rubyforge.org/mailman/listinfo/backgroundrb-devel
>     <http://rubyforge.org/mailman/listinfo/backgroundrb-devel>
>
>



More information about the Backgroundrb-devel mailing list