Issue #13397 has been updated by Chris Price.

Here is the commit where this was introduced:

    commit e415daa44d80c15035bbe837f02134e8776b46bc
    Author: Matt Robinson <[email protected]>
    Date:   Wed Nov 16 15:57:55 2011 -0800

        (#2279) Handle providers with multiple installed versions - ruby gems
        
        Ruby gems can have multiple versions installed, and the current
        implementation of the gem provider only reads the very latest installed
        version when self.instances is called.  This leads to Puppet potentially
        reinstalling the gem on every run if the Puppet manifest specifies a gem
        that *is* installed, but is not the latest version installed.
        
        This does require a change to how the package type checks if ensure is
        insync? to handle multiple versions for the 'is' ensure value, but the
        change is backward compatible with the providers that specify single
        versions.

----------------------------------------
Bug #13397: Puppet 2.7.12 not handling multiple versions of installed gems 
properly
https://projects.puppetlabs.com/issues/13397#change-58867

Author: Wade Minter
Status: Investigating
Priority: Normal
Assignee: Chris Price
Category: 
Target version: 
Affected Puppet version: 2.7.12
Keywords: array, ruby, gems
Branch: 


I just upgraded from Puppet 2.7.9 to 2.7.12, and am seeing something odd with 
regards to gem management.

On our systems, we have multiple versions of gems installed:

    root@resque2:~# gem search -l libshadow
    *** LOCAL GEMS ***
    libshadow (1.0.0, 0.0.2)
    root@resque2:~# gem search -l god
    *** LOCAL GEMS ***
    god (0.12.1, 0.12.0, 0.11.0)
    
However, when puppet runs, it appears to be concatenating the array of all of 
those versions together to build a string when comparing the installed versions 
to the desired target version:

    root@resque2:~# puppet agent --test
    info: Caching catalog for resque2.teamsnap.com
    info: Applying configuration version '1332685435'
    notice: /Stage[main]//Package[libshadow]/ensure: ensure changed 
'1.0.00.0.2' to '1.0.0'
    notice: /Stage[main]/Teamsnap_resque_worker::Package/Package[god]/ensure: 
ensure changed '0.12.10.12.00.11.0' to '0.12.1'
    notice: Finished catalog run in 12.35 seconds
    
This seems to be incorrect behavior.



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to