Hi, I've inherited a puppet setup for automating php installation and 
extension management.  We're on Debian and we've encountered a strange 
issue that I've traced down back to puppet I think. I've stripped back the 
configuration and made the problem reproducible, logs and config pasted 
below. 

1. php5-common, php5-memcache, and php5-mysql are all installed. 
2. php5-common and php5-mysql receive an update, say from 5.3.3-7+squeeze14 
to 5.3.3-7+squeeze17
3. Puppet runs and php5-common upgrade conflicts. Apt's first solution 
removes php5-mysql and php5-memcache. 
4. Puppet continues run and re-installs/upgrades php5-mysql. It skips 
php5-memcache.
5. On a subsequent run php5-memcache is installed again as expected. 

This appears to only happen to packages that don't share the php5 version 
naming schema, but that may be just a clue, not a cause. e.g. php5-memcache 
is 3.0.4-4+squeeze1. 

I have: 

   package { "php5-common": ensure => latest }
   php_module { "mysql":
      ensure => $php5_mysql ? {
         '1' => 'enable',
         '0' => 'absent',
      },
   }
   php_module { "memcache":
      ensure => $php5_memcache ? {
         '1' => 'enable',
         '0' => 'absent',
      },
   }
   define php_module ( $ensure = 'enable' ) {
      if $ensure == "enable" {
         package {
           "php5-${name}": ensure => latest,
           require => [ Package[ 'php5-common'],  Package[ 'php5-cgi' ], 
Package[ 'php5' ], Package[ 'libapache2-mod-php5' ] ],
       }

      } else {
         package { "php5-${name}": ensure => absent }
      }
   }

In the debug of a run, I see (relevant lines only): 

231 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: 
requires Package[php5-common]^[[0m
232 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: 
requires Package[php5-cgi]^[[0m
233 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: 
requires Package[php5]^[[0m
234 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: 
requires Package[libapache2-mod-php5]^[[    0m

327 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: 
requires Package[php5-common]^[[0m
328 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: 
requires Package[php5-cgi]^[[0m
329 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: 
requires Package[php5]^[[0m
330 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: 
requires Package[libapache2-mod-php5]^[[0m

487 ^[[0;36mDebug: Executing '/usr/bin/apt-cache policy php5-common'^[[0m
488 ^[[0;36mDebug: /Stage[main]/Php/Package[php5-common]/ensure: 
php5-common "5.3.3-7+squeeze14" is installed, latest is "5.3.3-7+sque   
 eze17"^[[0m
489 ^[[0;36mDebug: Executing '/usr/bin/aptitude -y -o 
DPkg::Options::=--force-confold install php5-common'^[[0m
490 ^[[mNotice: /Stage[main]/Php/Package[php5-common]/ensure: ensure 
changed '5.3.3-7+squeeze14' to '5.3.3-7+squeeze17'^[[0m
491 ^[[0;36mDebug: /Stage[main]/Php/Package[php5-common]: The container 
Class[Php] will propagate my refresh event^[[0m

547 ^[[0;36mDebug: Executing '/usr/bin/apt-cache policy php5-memcache'^[[0m

615 ^[[0;36mDebug: Executing '/usr/bin/apt-cache policy php5-mysql'^[[0m
616 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/ensure: 
php5-mysql "5.3.3-7+squeeze14" is installed, la    test is 
"5.3.3-7+squeeze17"^[[0m
617 ^[[0;36mDebug: Executing '/usr/bin/aptitude -y -o 
DPkg::Options::=--force-confold install php5-mysql'^[[0m
618 ^[[mNotice: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/ensure: ensure 
changed '5.3.3-7+squeeze14' to '5.3.3-7+squ    eeze17'^[[0m
619 ^[[0;36mDebug: 
/Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]: The container 
Php::Php_module[mysql] will propagate my     refresh event^[[0m
620 ^[[0;36mDebug: Php::Php_module[mysql]: The container Class[Php] will 
propagate my refresh event^[[0m



So, why, on line 547, when memcache is definitely not installed does it not 
install it? I've been on this for 3 days and am officially stumped. Any 
help would be appreciated. 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to