[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