Failed data upgrade to 2.9.0beta for multisite

AI-generated summary

A user, hellekin, reports a failed data upgrade to Discourse 2.9.0beta on a multisite setup with two containers (web_only and data) on Ubuntu 20.04. The data container fails to bootstrap with a NoMethodError in the pups gem, specifically due to an undefined method 'each' for nil:NilClass error. Despite the failure, the user notes that the web_only container upgraded successfully, and running ./launcher start data allowed the existing container to start, showing the new version. JammyDodger confirms a similar upgrade on a test site succeeded, suggesting the issue might be resolved in newer builds. hellekin remains concerned about potential issues with future database migrations.

Although other hosts upgraded correctly, this multisite one with two containers (web_only and data) and no unofficial plugin has issues upgrading the data container:

./launcher rebuild data
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 data
data
/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2022-03-21T14:08:36.336829 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/config.rb:70:in `combine_template_and_process_env': undefined method `each' for nil:NilClass (NoMethodError)
        from /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/config.rb:17:in `initialize'
        from /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/cli.rb:55:in `new'
        from /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/cli.rb:55:in `run'
        from /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/bin/pups:9:in `<top (required)>'
        from /usr/local/bin/pups:25:in `load'
        from /usr/local/bin/pups:25:in `<main>'
5bf317d1a66a44ec1d100a9da77210dfd7c10dd25f4cb999bd7c2ab69cd330dc
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

I tried upgrading it several times, once after the ‘noop’ 2.9.0beta1 upgrade which was supposed to just work, and one today for beta2. Wondering…

The host is running Ubuntu 20.04.

FWIW, I’ve just rebuilt the data container on my test site, and that went through without a hitch. It is a new build from a few days ago though, so that may have helped.

(Digital Ocean, 1GB droplet, Ubunutu 20.04)

Since the web_only container upgraded successfully, and despite the data container failing to bootstrap, I ran ./launcher start data and the existing container started; reloading the admin page showed the new version instead.

I’m still curious about this bug since it may affect future upgrades that would require database migrations.