Wojciech Knapik
2008-Jun-18  13:04 UTC
[Backgroundrb-devel] A fix for bdrb crash when running in background
Hi everyone
  I just spent way too much time trying to figure out why the fsck bdrb 
wouldn''t run in background (while it worked perfecly in foreground), so
I figured I''ll share my unimpressive solution to save others the
trouble.
  So the problem was that bdrb, when started with `script/backgroundrb 
start`, would exit, with this error msg:
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:150:in
`log'': PGError: server closed the connection unexpectedly 
(ActiveRecord::StatementInvalid)
         This probably means the server terminated abnormally
         before or while processing the request.
:           SELECT tablename
             FROM pg_tables
            WHERE schemaname IN
(E''"$user"'',E''public'')
         from 
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:395:in
`query''
         from 
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:441:in
`tables''
  Starting it with `script/backgroundrb` didn''t cause that problem, 
everything worked fine.
  This happened exactly the same way on a G5/OSX/Postgres 8.2.4/Rails 
2.0.2 workstation and a Xeon/Gentoo/Postgres 8.3.1/Rails 2.0.2 server. 
Considering the different setups and the complete lack of complaints 
from Postgres, even with highest logging verbosity AND the smoothly 
working rails app, I figured it must be a problem with backgroundrb, but 
whatever changes I tried, nothing worked. So fast forward (to spare you 
the story of the cursing and the hopeless googling) - here''s the 
solution - line 32 of script/backgroubdrb:
  29 case ARGV[0]
  30 when ''start''
  31   if fork
  32     sleep(5)
  33     exit
  34   else
  Apparently leaving the child on it''s own too early is not a good
thing :-o
  So there. Here''s my good deed for the day.
cheers,
Wojtek
PS. Thanks guys for bdrb!
hemant
2008-Jun-18  17:32 UTC
[Backgroundrb-devel] A fix for bdrb crash when running in background
On Wed, Jun 18, 2008 at 6:34 PM, Wojciech Knapik <webmaster at wolniartysci.pl> wrote:> > Hi everyone > > I just spent way too much time trying to figure out why the fsck bdrb > wouldn''t run in background (while it worked perfecly in foreground), so I > figured I''ll share my unimpressive solution to save others the trouble. > So the problem was that bdrb, when started with `script/backgroundrb > start`, would exit, with this error msg: > > /usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:150:in > `log'': PGError: server closed the connection unexpectedly > (ActiveRecord::StatementInvalid) > This probably means the server terminated abnormally > before or while processing the request. > : SELECT tablename > FROM pg_tables > WHERE schemaname IN (E''"$user"'',E''public'') > from > /usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:395:in > `query'' > from > /usr/lib64/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:441:in > `tables'' > > Starting it with `script/backgroundrb` didn''t cause that problem, > everything worked fine. > This happened exactly the same way on a G5/OSX/Postgres 8.2.4/Rails 2.0.2 > workstation and a Xeon/Gentoo/Postgres 8.3.1/Rails 2.0.2 server. Considering > the different setups and the complete lack of complaints from Postgres, even > with highest logging verbosity AND the smoothly working rails app, I figured > it must be a problem with backgroundrb, but whatever changes I tried, > nothing worked. So fast forward (to spare you the story of the cursing and > the hopeless googling) - here''s the solution - line 32 of > script/backgroubdrb: > > 29 case ARGV[0] > 30 when ''start'' > 31 if fork > 32 sleep(5) > 33 exit > 34 else > > Apparently leaving the child on it''s own too early is not a good thing :-o > So there. Here''s my good deed for the day. >Damn right! Thanks man. -- Let them talk of their oriental summer climes of everlasting conservatories; give me the privilege of making my own summer with my own coals. http://gnufied.org