Jira (PUP-10431) Yum package provider tries to downgrade because of faulty comparison

39 views
Skip to first unread message

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 11:56:06 AM4/21/20
to puppe...@googlegroups.com
Luchian Nemes created an issue
 
Puppet / Bug PUP-10431
Yum package provider tries to downgrade because of faulty comparison
Issue Type: Bug Bug
Assignee: Unassigned
Created: 2020/04/21 8:55 AM
Environment:

RedHat 7 machine with puppet installed (tested on Puppet 6.14 but the issue seems to be way older).

Priority: Normal Normal
Reporter: Luchian Nemes

Description:

A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code area.

How to reproduce the issue:

1. Find a package that has a version higher than the other only because of epoch. Example:

> yum list python-docker-pycreds --show-duplicates

python-docker-pycreds.noarch                                                               1.10.6-4.el7 

python-docker-pycreds.noarch                                                               1:0.3.0-7.el7 

 

2. Simply install the two versions shown above in any order to get the issue:

> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'

Notice: /Package[python-docker-pycreds]/ensure: created

package
Unknown macro: { 'python-docker-pycreds'}
 

 

> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'

Error: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead

Error: /Package[python-docker-pycreds]/ensure: change from '1:0.3.0-7.el7' to '1.10.6-4.el7' failed: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead

package
Unknown macro: { 'python-docker-pycreds'}
 

 

OR

 

> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'

 Notice: /Package[python-docker-pycreds]/ensure: created

package
Unknown macro: { 'python-docker-pycreds'}
 

 

 

> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'

 

Error: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead

Error: /Package[python-docker-pycreds]/ensure: change from '1.10.6-4.el7' to '0.3.0-7.el7' failed: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead

package
Unknown macro: { 'python-docker-pycreds'}
 

 

 

Here are some debug logs which prove that the comparison happened with epoch missing:

Debug: Package[python-docker-pycreds](provider=yum): Downgrading package python-docker-pycreds from version 1.10.6-4.el7 to 0.3.0-7.el7

Debug: Executing: '/usr/bin/yum -d 0 -e 0 -y downgrade python-docker-pycreds-0.3.0-7.el7'

 

Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is removed.

 

> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'

 

Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do

Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum d 0 -e 0 -y install python-docker-pycreds1:0.3.0-7.el7' returned 1: Error: Nothing to do

 

 

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 11:57:04 AM4/21/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
Change By: Luchian Nemes
h3. *{{Description:}}*

A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code [area.|https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L274..L287]
h3. *{{How to reproduce the issue:}}*


1. Find a package that has a version higher than the other only because of epoch. Example:
{panel:title=> yum list python-docker-pycreds --show-duplicates}



python-docker-pycreds.noarch                                                               1.10.6-4.el7 

python-docker-pycreds.noarch                                                               1:0.3.0-7.el7 


{panel}

 

2. Simply install the two versions shown above in any order to get the issue:
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
{color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package

Unknown macro:
\{ 'python-docker-pycreds' } :
    ensure   => '1:0.3.0-7.el7',
  provider => 'yum',
\}
{panel}
 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
*{color:#de350b}Error: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*

*{color:#de350b}Error: /Package[python-docker-pycreds]/ensure: change from '1:0.3.0-7.el7' to '1.10.6-4.el7' failed: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*

package
Unknown macro: \{ 'python-docker-pycreds'}
 
{panel}
 

OR

 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
 {color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package
Unknown macro: \{ 'python-docker-pycreds'}
 
{panel}
 

 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
 

{color:#de350b}*Error: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}

{color:#de350b}*Error: /Package[python-docker-pycreds]/ensure: change from '1.10.6-4.el7' to '0.3.0-7.el7' failed: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}

package
Unknown macro: \{ 'python-docker-pycreds'}
 
{panel}

 

 

Here are some debug logs which prove that the comparison happened with epoch missing:

*{color:#403294}Debug:{color}* Package[python-docker-pycreds](provider=yum): Downgrading package python-docker-pycreds from version 1.10.6-4.el7 to *{color:#403294}0.3.0-7.el7{color}*

*{color:#403294}Debug:{color}* Executing: '/usr/bin/yum -d 0 -e 0 -y downgrade python-docker-pycreds-0.3.0-7.el7'

 

_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*.{color}_

 
{panel}
*> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'*
{panel}
 

*Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color:#de350b}1:{color}0.3.0-7.el7' returned 1: Error: Nothing to do*

 
{panel}
 
{panel}
 

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:01:09 PM4/21/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code [area.|https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L274..L287]
h3. *{{How to reproduce the issue:}}*

1. Find a package that has a version higher than the other only because of epoch. Example:
{panel:title=> yum list python-docker-pycreds --show-duplicates}


python-docker-pycreds.noarch                                                               1.10.6-4.el7 

python-docker-pycreds.noarch                                                               1:0.3.0-7.el7 


{panel}
 

2. Simply install the two versions shown above in any order to get the issue:
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
{color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package \{ 'python-docker-pycreds':

  ensure   => '1:0.3.0-7.el7',
  provider => 'yum',
\}
{panel}
 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
*{color:#de350b}Error: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*

*{color:#de350b}Error: /Package[python-docker-pycreds]/ensure: change from '1:0.3.0-7.el7' to '1.10.6-4.el7' failed: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*

package

Unknown macro:
\{ 'python-docker-pycreds' } :
  ensure => '1:0.3.0-7.el7',
provider => 'yum',
\}
{panel}
 

OR

 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
 {color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package

Unknown macro:
\{ 'python-docker-pycreds' :
  ensure   => '1.10.6-4.el7',
  provider => 'yum',
\
}
 
{panel}
 

 

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
 

{color:#de350b}*Error: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}

{color:#de350b}*Error: /Package[python-docker-pycreds]/ensure: change from '1.10.6-4.el7' to '0.3.0-7.el7' failed: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}

package

Unknown macro:
\{ 'python-docker-pycreds' } :
    ensure   => '1.10.6-4.el7',
  provider => 'yum',
\}
{panel}
 

 

Here are some debug logs which prove that the comparison happened with epoch missing:

*{color:#403294}Debug:{color}* Package[python-docker-pycreds](provider=yum): Downgrading package python-docker-pycreds from version 1.10.6-4.el7 to *{color:#403294}0.3.0-7.el7{color}*

*{color:#403294}Debug:{color}* Executing: '/usr/bin/yum -d 0 -e 0 -y downgrade python-docker-pycreds-0.3.0-7.el7'

 

_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*.{color}_

 
{panel}
*> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'*
{panel}
 

*Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color:#de350b}1:{color}0.3.0-7.el7' returned 1: Error: Nothing to do*

 
{panel}
 
{panel}
 

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:02:07 PM4/21/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code [area.|https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L274..L287]
h3. *{{How to reproduce the issue:}}*

1. Find a package that has a version higher than the other only because of epoch. Example:
{panel:title=> yum list python-docker-pycreds --show-duplicates}


python-docker-pycreds.noarch                                                               1.10.6-4.el7 

python-docker-pycreds.noarch                                                               1:0.3.0-7.el7 


{panel}
 

2. Simply install the two versions shown above in any order to get the issue:
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
{color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package
\ { 'python-docker-pycreds':
    ensure => '1:0.3.0-7.el7',
    provider => 'yum',
\
}

{panel}
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
*{color:#de350b}Error: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*
*{color:#de350b}Error: /Package[python-docker-pycreds]/ensure: change from '1:0.3.0-7.el7' to '1.10.6-4.el7' failed: Could not update: Failed to update to version 1.10.6-4.el7, got version 1:0.3.0-7.el7 instead{color}*

package \ { 'python-docker-pycreds':
    ensure => '1:0.3.0-7.el7',
    provider => 'yum',
\
}

{panel}
 

OR

 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1.10.6-4.el7' provider='yum'}
 {color:#00875a}Notice: /Package[python-docker-pycreds]/ensure: created{color}

package \ { 'python-docker-pycreds':
      ensure   => '1.10.6-4.el7',
      provider => 'yum',
\ }

{panel}
 

 
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='0.3.0-7.el7' provider='yum'}
 
{color:#de350b}*Error: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}
{color:#de350b}*Error: /Package[python-docker-pycreds]/ensure: change from '1.10.6-4.el7' to '0.3.0-7.el7' failed: Could not update: Failed to update to version 0.3.0-7.el7, got version 1.10.6-4.el7 instead*{color}

package \ { 'python-docker-pycreds':
      ensure   => '1.10.6-4.el7',
      provider => 'yum',
\ }
{panel}
 

 

Here are some debug logs which prove that the comparison happened with epoch missing:

*{color:#403294}Debug:{color}* Package[python-docker-pycreds](provider=yum): Downgrading package python-docker-pycreds from version 1.10.6-4.el7 to *{color:#403294}0.3.0-7.el7{color}*

*{color:#403294}Debug:{color}* Executing: '/usr/bin/yum -d 0 -e 0 -y downgrade python-docker-pycreds-0.3.0-7.el7'

 

_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*.{color}_

 
{panel}
*> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'*
{panel}
 

*Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color:#de350b}1:{color}0.3.0-7.el7' returned 1: Error: Nothing to do*

 
{panel}
 
{panel}
 

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:03:06 PM4/21/20
to puppe...@googlegroups.com

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:06:16 PM4/21/20
to puppe...@googlegroups.com
* {panel:title= > puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum' *
{panel
}

 

*Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color:#de350b}1:{color}0.3.0-7.el7' returned 1: Error: Nothing to do*

 
{panel}
 
{panel}
 

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:07:04 PM4/21/20
to puppe...@googlegroups.com
{panel}

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds- {color:#de350b} 1: {color} 0.3.0-7.el7' returned 1: Error: Nothing to do*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:08:03 PM4/21/20
to puppe...@googlegroups.com
:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:09:05 PM4/21/20
to puppe...@googlegroups.com
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*
{color:#FFBDAD} Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds- {color}{color:#DE350B} 1: {color}{color:#FFBDAD} 0.3.0-7.el7' returned 1: Error: Nothing to do {color} *

*Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '1:0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-1:0.3.0-7.el7' returned 1: Error: Nothing to do*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:12:08 PM4/21/20
to puppe...@googlegroups.com
_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*{color}. This has nothing to do with puppet's behaviour or the ticket but might save someone some headaches._

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#FFBDAD}Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0-7.el7' returned 1: Error: Nothing to do{color}*
*{color:#FFBDAD}Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python-docker-pycreds-{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:12:15 PM4/21/20
to puppe...@googlegroups.com
_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed* . {color} . This has nothing to do with puppet's behaviour or the ticket but might save someone some headaches. _

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#FFBDAD}Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds-{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0-7.el7' returned 1: Error: Nothing to do{color}*
* {color:#FFBDAD} Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to ' {color}{color:#DE350B} 1: {color}{color:#FFBDAD} 0.3.0-7.el7' failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install python-docker-pycreds- {color}{color:#DE350B} 1: {color}{color:#FFBDAD} 0.3.0-7.el7' returned 1: Error: Nothing to do {color} *
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:13:09 PM4/21/20
to puppe...@googlegroups.com
_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*{color}. This has nothing to do with puppet's behaviour or the ticket but might save someone some headaches._

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#FFBDAD}Error: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python \ -docker \ -pycreds \ -{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
*{color:#FFBDAD}Error: /Package[python
\ -docker \ -pycreds]/ensure: change from 'purged' to '{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0 \ -7.el7' failed: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python \ -docker \ -pycreds \ -{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:14:05 PM4/21/20
to puppe...@googlegroups.com

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:15:03 PM4/21/20
to puppe...@googlegroups.com
{panel}
*{color:#403294}Debug:{color}* Package[python-docker-pycreds](provider=yum): Downgrading package python-docker-pycreds from version 1.10.6-4.el7 to *{color:#403294}0.3.0-7.el7{color}*
*{color:#403294}Debug:{color}* Executing: '/usr/bin/yum -d 0 -e 0 -y downgrade python-docker-pycreds-0.3.0-7.el7'
{panel}



_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “epoch:” part is {color:#de350b}*removed*{color}. This has nothing to do with puppet's behaviour or the ticket but might save someone some headaches._
{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#FFBDAD}Error: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
*{color:#FFBDAD}Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0\-7.el7' failed: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#DE350B}1:{color}{color:#FFBDAD}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:15:09 PM4/21/20
to puppe...@googlegroups.com

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:16:03 PM4/21/20
to puppe...@googlegroups.com
*{color:# FFBDAD ffbdad }Error: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python \ -docker \ -pycreds \ -{color}{color:# DE350B de350b }1:{color}{color:# FFBDAD ffbdad }0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
*{color:#
FFBDAD ffbdad }Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:# DE350B de350b }1:{color}{color:# FFBDAD ffbdad }0.3.0 \ -7.el7' failed: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python \ -docker \ -pycreds \ -{color}{color:# DE350B de350b }1:{color}{color:# FFBDAD ffbdad }0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:17:04 PM4/21/20
to puppe...@googlegroups.com
*{color:#ffbdad}Error: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python \ -docker \ -pycreds \ -{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
*{color:#ffbdad}Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0
\ -7.el7' failed: Could not update: Execution of '/usr/bin/yum \ -d 0 \ -e 0 \ -y install python \ -docker \ -pycreds \ -{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0 \ -7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:18:03 PM4/21/20
to puppe...@googlegroups.com
_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “ {color:#DE350B} epoch: {color} ” part is {color:#de350b}*removed*{color}. This has nothing to do with puppet's behaviour or the ticket but might save someone some headaches._

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#ffbdad}Error: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
*{color:#ffbdad}Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' failed: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Luchian Nemes (Jira)

unread,
Apr 21, 2020, 12:19:03 PM4/21/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
h4. A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code [ * area . * |https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L274..L287] .

Luchian Nemes (Jira)

unread,
Apr 22, 2020, 1:48:03 AM4/22/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
h4. A (yum) package with versions containing epoch can cause unwanted behaviour when trying to install another version. It tries to downgrade when it should actually upgrade. This only happens when the version installed or the version we want to install is higher than the other only because of epoch (1:2.0 vs 5:1.0; if we strip down the epoch, all comparisons will have different results: 1.0 < 2.0). Root cause found to be in this code [*area*|https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L274..L287].
_Note: When installing versions that contain epoch, beware that certain yum versions won’t install the package unless the “{color:#DE350B}epoch:{color}” part is {color:#de350b}*removed*{color}. This has nothing to do with puppet's behaviour or the ticket issue at hand but might save someone some headaches when reproducing it ._

{panel:title=> puppet resource package 'python-docker-pycreds' ensure='1:0.3.0-7.el7' provider='yum'}
*{color:#ffbdad}Error: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
*{color:#ffbdad}Error: /Package[python-docker-pycreds]/ensure: change from 'purged' to '{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' failed: Could not update: Execution of '/usr/bin/yum \-d 0 \-e 0 \-y install python\-docker\-pycreds\-{color}{color:#de350b}1:{color}{color:#ffbdad}0.3.0\-7.el7' returned 1: Error: Nothing to do{color}*
{panel}

Bogdan Irimie (Jira)

unread,
Nov 5, 2020, 3:51:04 AM11/5/20
to puppe...@googlegroups.com

Bogdan Irimie (Jira)

unread,
Nov 5, 2020, 3:52:05 AM11/5/20
to puppe...@googlegroups.com

Ciprian Badescu (Jira)

unread,
Jun 22, 2021, 4:16:02 AM6/22/21
to puppe...@googlegroups.com
Ciprian Badescu updated an issue
Change By: Ciprian Badescu
Sprint: ready for triage
This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages