Hi Eric,

At the top of my pastie http://pastie.org/1043347.txt you can see that when I request of list of gems it mentions only unicorn v1.1.2

I also added the suggested logging to the before_fork block and I also logged the unicorn version. Interesting output. First it runs the master with Unicorn v1.1.2. But when I send a USR2 it exec'ed with a Unicorn v1.1.1 for the new master. So yes, I still had a version lying around, namely in the $APP_ROOT/vendor/bundler_gems dir.

See also: http://pastie.org/1043487.txt

It does do this though after a USR2:

executing ["/usr/local/rvm/gems/ree-1.8.7-2010.02/bin/unicorn_rails", "-D", "-E", "staging", "-c", "/var/www/staging/current/config/unicorn/staging.rb"]

I.e., it tries to exec exactly how I start unicorn. That unicorn_rails binary in that path is definitely v1.1.2. So I don't quite understand why the reexeced one is picking the version from the vendor/bundler_gems dir.


I need to play a bit more with this.. I'll probably have to change my /etc/init.d/unicorn script so that it starts with the vendor/bundler_gems version instead of a system-wide version :o I'll get back to you..



Cheers,
Lawrence

Lawrence Pit <lawrence....@gmail.com> wrote:
Hi Eric,

Thanks mate. Unfortunately this still doesn't seem to work for me.

I went through the process manually, you can see a transcript at http://pastie.org/1043347.txt
The indented text is what I see appearing in the unicorn stderr.log.

Thanks Lawrence, the following line looks suspicious to me:

    reaped #<Process::Status: pid=4382,exited(0)> exec()-ed

Which makes it seem like
http://git.bogomips.org/cgit/unicorn.git/commit/?id=3f0f9d6 didn't get
applied (and I just checked the 1.1.2 gem and it looks good to me)

Can you dump out the ENV hash in your before_exec hook of your
unicorn.conf.rb?  I'm wondering if GEM_HOME or GEM_PATH is set
and doing anything funky, causing you to load an old version
of Unicorn:

  before_exec do |server|
    ENV.each do |key,value|
      server.logger.info "#{key}=#{value}"
    end
  end

As you can see it reports two errors during the process, saying unicorn.pid is stale.

I wonder whether this is because in my unicorn config file I mention:

pid "/var/www/staging/current/tmp/pids/unicorn.pid"

whereas in your back_out_of_upgrade test you don't have such a line?

It does, I create a similar line in the unicorn_setup() function of
test-lib.sh


_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

Reply via email to