Quotas failed to start after upgrade OOD from 1.6.10 to 1.7.14

We wrote a passenger app called Quotas based on the tutorial from this link

https://osc.github.io/ood-documentation/master/app-development/tutorials-passenger-apps/ps-to-quota.html

It worked well in OOD 1.6.10. After we upgraded our OOD to 1.7.14, it failed to start. The error message shows:

Could not find backports-3.8.0 in any of the sources (Bundler::GemNotFound)

We copied backport-3.8.0, which originally exists in the gem tree under Quotas’ root directory, to the centralized location of all Gems (/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.7.14/gems), then development version of Quotas works, but the production Quotas still reports the same error.

Please help.

Ping

You should rebuild the gems for that application. We upgraded from Ruby 2.4 to 2.5 between those two versions, so the old app gems won’t work (which is why even copying it doesn’t work).

You say in the gem tree under Quotas’ root directory. Rebuild this gem tree with scl enable ondemand -- bundle install.

And if you’re able to, share it with the community!

Or scl enable ondemand -- bundle install --path vendor/bundle. It could also help to do a rm -rf vendor/bundle prior to the re-install of the gems. And then touch tmp/restart.txt to force restart that app for all users who might currently have that app open (or yourself for testing).

We switched from Ruby 2.4 to Ruby 2.5 in 1.7 so that could have caused a problem. Perhaps we should add to our upgrade directions updated build steps for any custom apps. Any recommendation you have in this regard would be helpful.

1 Like

Rebuilding the gem works works!

No problem to share it with the community. But it uses our site-specific quota command. So whoever takes it has to modify it a bit for their own site.

1 Like

Hi Eric,

I think put the command somewhere in the tutorial will be good enough.

I was aware of the upgrade of Ruby from 2.4 to 2.5 when we upgraded ood from 1.6 to 1.7, and I did rebuilt the bundle. However, what I did was to enable rh-ruby25 instead of ondemand. So the gems were rebuilt and stored in ./vendor/bundle/ruby, instead of ./vendor/bundle/ruby/2.5.0. That’s why they were not found. Should have thought about this if I have read the the OOD documentation more carefully.

There is still something not clear to me. As mentioned in my original post, I copied the gems (built with ruby 2.5) to the centralized location, and my development Quotas worked, while the production Quotas still reported the missing gem error.

I am wondering if you know why.

Thanks,

Ping