Re: json gem conflict

What’s interesting here is that the dependency is not for some 3rd
party package, but for chef itself. chef-client is using the
route53 recipe, which is using the fog gem, which is using the json
gem. A new json gem does get installed during the chef run. But at
the time chef-client started, it wasn’t yet there. Perhaps the
chef-client’s ruby process won’t re-read and use new gems during that
single chef run. It simply must run a second time. not sure if
that’s the case.

I think this scenario is the exact type of situation the omnibus installs
are trying to prevent.

On Wednesday, May 8, 2013, Sam Darwin wrote:

What's interesting here is that the dependency is not for some 3rd
party package, but for chef itself. chef-client is using the
route53 recipe, which is using the fog gem, which is using the json
gem. A new json gem does get installed during the chef run. But at
the time chef-client started, it wasn't yet there. Perhaps the
chef-client's ruby process won't re-read and use new gems during that
single chef run. It simply must run a second time. not sure if
that's the case.

--

~~ StormeRider ~~

"Every world needs its heroes [...] They inspire us to be better than we
are. And they protect from the darkness that's just around the corner."

(from Smallville Season 6x1: "Zod")

On why I hate the phrase "that's so lame"... http://bit.ly/Ps3uSS

I just ran into this very same problem starting this week, using the route53
recipe. Does anyone know of a solution yet? My route53 recipe does this:

fog = chef_gem "fog" do
  action :nothing
end
fog.run_action( :install )

require 'rubygems'
Gem.clear_paths

I see no where else in my recipes where a json gem gets installed by any chef
resource, in case that might be affecting this.

To be clear, this is the error my clients are failing with upon birth. A
second chef-client run succeeds :\

[2013-05-07T19:14:34+00:00] DEBUG: Gem::LoadError: route53_record[chef-ci-webapp01c.dev.pickameme.com] (resolver::default line 130) had an error: Gem::LoadError: Unable to activate fog-1.11.1, because json-1.5.4 conflicts with json (~> 1.7)

On Wed, 08 May 2013, Morgan Blackthorne wrote:

I think this scenario is the exact type of situation the omnibus installs
are trying to prevent.

On Wednesday, May 8, 2013, Sam Darwin wrote:

What's interesting here is that the dependency is not for some 3rd
party package, but for chef itself. chef-client is using the
route53 recipe, which is using the fog gem, which is using the json
gem. A new json gem does get installed during the chef run. But at
the time chef-client started, it wasn't yet there. Perhaps the
chef-client's ruby process won't re-read and use new gems during that
single chef run. It simply must run a second time. not sure if
that's the case.

--

~~ StormeRider ~~

"Every world needs its heroes [...] They inspire us to be better than we
are. And they protect from the darkness that's just around the corner."

(from Smallville Season 6x1: "Zod")

On why I hate the phrase "that's so lame"... http://bit.ly/Ps3uSS

On Wed, 08 May 2013, kallen@groknaut.net wrote:

I just ran into this very same problem starting this week, using the route53
recipe. Does anyone know of a solution yet? My route53 recipe does this:

fog = chef_gem "fog" do
  action :nothing
end
fog.run_action( :install )

require 'rubygems'
Gem.clear_paths

I see no where else in my recipes where a json gem gets installed by any chef
resource, in case that might be affecting this.

To be clear, this is the error my clients are failing with upon birth. A
second chef-client run succeeds :\

[2013-05-07T19:14:34+00:00] DEBUG: Gem::LoadError: route53_record[chef-ci-webapp01c.dev.pickameme.com] (resolver::default line 130) had an error: Gem::LoadError: Unable to activate fog-1.11.1, because json-1.5.4 conflicts with json (~> 1.7)

Forgot to mention, my clients are chef-10.24.0-1.el6, omnibus.

kallen

ok, looks like next release of fog will fix this.

On Wed, May 8, 2013 at 9:33 PM, kallen@groknaut.net wrote:

On Wed, 08 May 2013, kallen@groknaut.net wrote:

I just ran into this very same problem starting this week, using the route53
recipe. Does anyone know of a solution yet? My route53 recipe does this:

fog = chef_gem "fog" do
  action :nothing
end
fog.run_action( :install )

require 'rubygems'
Gem.clear_paths

I see no where else in my recipes where a json gem gets installed by any chef
resource, in case that might be affecting this.

To be clear, this is the error my clients are failing with upon birth. A
second chef-client run succeeds :\

[2013-05-07T19:14:34+00:00] DEBUG: Gem::LoadError: route53_record[chef-ci-webapp01c.dev.pickameme.com] (resolver::default line 130) had an error: Gem::LoadError: Unable to activate fog-1.11.1, because json-1.5.4 conflicts with json (~> 1.7)

Forgot to mention, my clients are chef-10.24.0-1.el6, omnibus.

kallen