dependency cycles w/tomcat::source
Closed this issue · 3 comments
Pulled from github on 5/25, ran 'include tomcat::source' on Ubuntu 11.04. It appears to be a problem w/tomcat-juli -- as I can comment out that include and re-run without issues. I've run with --graph == true. But being a newb, I'm not seeing anything unusual with the graphic rendering of the .dot files. I can send those if request.
debug: Executing '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n''
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n''
debug: /Stage[main]/Tomcat::Source/Common::Archive[apache-tomcat-6.0.26]/Common::Archive::Extract[apache-tomcat-6.0.26]/require: requires Common::Archive::Download[apache-tomcat-6.0.26.tar.gz]
debug: /Stage[main]/Tomcat::Juli/File[/opt/apache-tomcat-6.0.26/bin/tomcat-juli.jar]/require: requires Common::Archive::Download[tomcat-juli.jar]
debug: /Stage[main]/Users::Virtual/User[customapps]/require: requires Group[customapps]
debug: /Stage[main]/Cron::Base/Service[crond]/require: requires Package[cron]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli.jar]/Exec[download digest of archive tomcat-juli.jar]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli.jar]/Exec[download digest of archive tomcat-juli.jar]/notify: subscribes to Exec[download archive tomcat-juli.jar and check sum]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli-adapters.jar]/Exec[download digest of archive tomcat-juli-adapters.jar]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli-adapters.jar]/Exec[download digest of archive tomcat-juli-adapters.jar]/notify: subscribes to Exec[download archive tomcat-juli-adapters.jar and check sum]
debug: /Stage[main]/Tomcat::Juli/File[/opt/apache-tomcat-6.0.26/extras/]/require: requires File[/opt/apache-tomcat-6.0.26]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli-adapters.jar]/Exec[download archive tomcat-juli-adapters.jar and check sum]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Juli/File[/opt/apache-tomcat-6.0.26/lib/tomcat-juli-adapters.jar]/require: requires Common::Archive::Download[tomcat-juli-adapters.jar]
debug: /Stage[main]/Tomcat::Source/Common::Archive[apache-tomcat-6.0.26]/Common::Archive::Download[apache-tomcat-6.0.26.tar.gz]/Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli-adapters.jar]/require: requires File[/opt/apache-tomcat-6.0.26/extras/]
debug: /Stage[main]/Tomcat::Source/File[/opt/apache-tomcat]/require: requires Common::Archive[apache-tomcat-6.0.26]
debug: /Stage[main]/Tomcat::Source/File[/opt/apache-tomcat]/before: requires File[commons-logging.jar]
debug: /Stage[main]/Tomcat::Source/File[/opt/apache-tomcat]/before: requires File[log4j.jar]
debug: /Stage[main]/Tomcat::Source/File[/opt/apache-tomcat]/before: requires File[log4j.properties]
debug: /Stage[main]/Tomcat::Source/Common::Archive[apache-tomcat-6.0.26]/Common::Archive::Download[apache-tomcat-6.0.26.tar.gz]/Exec[download digest of archive apache-tomcat-6.0.26.tar.gz]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Source/Common::Archive[apache-tomcat-6.0.26]/Common::Archive::Download[apache-tomcat-6.0.26.tar.gz]/Exec[download digest of archive apache-tomcat-6.0.26.tar.gz]/notify: subscribes to Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli.jar]/Exec[download archive tomcat-juli.jar and check sum]/require: requires Package[curl]
debug: /Stage[main]/Tomcat::Source/File[/opt/apache-tomcat-6.0.26]/require: requires Common::Archive[apache-tomcat-6.0.26]
debug: /Stage[main]/Tomcat::Juli/Common::Archive::Download[tomcat-juli.jar]/require: requires File[/opt/apache-tomcat-6.0.26/extras/]
debug: /Stage[main]/Timezone/Exec[set-timezone]/require: requires File[timezone]
debug: /Stage[main]/Timezone/Exec[set-timezone]/subscribe: subscribes to File[timezone]
debug: /Stage[main]/Tomcat::Base/File[/var/log/tomcat]: Autorequiring User[tomcat]
err: Could not apply complete catalog: Found dependency cycles in the following relationships: Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum] => Exec[apache-tomcat-6.0.26 unpack], Exec[download digest of archive apache-tomcat-6.0.26.tar.gz] => Exec[apache-tomcat-6.0.26 unpack], File[/opt/apache-tomcat] => File[log4j.jar], File[/opt/apache-tomcat] => File[commons-logging.jar], Exec[download digest of archive tomcat-juli.jar] => File[/opt/apache-tomcat-6.0.26/bin/tomcat-juli.jar], Package[curl] => File[/opt/apache-tomcat-6.0.26/bin/tomcat-juli.jar], Exec[download archive tomcat-juli.jar and check sum] => File[/opt/apache-tomcat-6.0.26/bin/tomcat-juli.jar], File[/opt/apache-tomcat-6.0.26/extras/] => Exec[download digest of archive tomcat-juli.jar], Package[curl] => Exec[download digest of archive tomcat-juli.jar], File[/opt/apache-tomcat-6.0.26/extras/] => Exec[download digest of archive tomcat-juli-adapters.jar], Package[curl] => Exec[download digest of archive tomcat-juli-adapters.jar], File[/opt/apache-tomcat-6.0.26] => File[/opt/apache-tomcat-6.0.26/extras/], File[/opt/apache-tomcat-6.0.26/extras/] => Exec[download archive tomcat-juli-adapters.jar and check sum], Exec[download digest of archive tomcat-juli-adapters.jar] => Exec[download archive tomcat-juli-adapters.jar and check sum], Package[curl] => Exec[download archive tomcat-juli-adapters.jar and check sum], Exec[download digest of archive tomcat-juli-adapters.jar] => File[/opt/apache-tomcat-6.0.26/lib/tomcat-juli-adapters.jar], Exec[download archive tomcat-juli-adapters.jar and check sum] => File[/opt/apache-tomcat-6.0.26/lib/tomcat-juli-adapters.jar], Exec[download digest of archive apache-tomcat-6.0.26.tar.gz] => Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum], Package[curl] => Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum], File[/opt/apache-tomcat-6.0.26/extras/] => Package[curl], Exec[apache-tomcat-6.0.26 unpack] => File[/opt/apache-tomcat], Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum] => File[/opt/apache-tomcat], Exec[download digest of archive apache-tomcat-6.0.26.tar.gz] => File[/opt/apache-tomcat], File[/opt/apache-tomcat] => File[log4j.properties], Package[curl] => Exec[download digest of archive apache-tomcat-6.0.26.tar.gz], Exec[download digest of archive tomcat-juli.jar] => Exec[download archive tomcat-juli.jar and check sum], File[/opt/apache-tomcat-6.0.26/extras/] => Exec[download archive tomcat-juli.jar and check sum], Package[curl] => Exec[download archive tomcat-juli.jar and check sum], Exec[apache-tomcat-6.0.26 unpack] => File[/opt/apache-tomcat-6.0.26], Exec[download archive apache-tomcat-6.0.26.tar.gz and check sum] => File[/opt/apache-tomcat-6.0.26], Exec[download digest of archive apache-tomcat-6.0.26.tar.gz] => File[/opt/apache-tomcat-6.0.26]; try using the '--graph' option and open the '.dot' files in OmniGraffle or GraphViz
debug: Storing state
debug: Stored state in 0.03 seconds
Same problem here. Not sure if this is the root, but I am using https://forge.puppetlabs.com/smarchive/archive for the archive module. The problem is in the tomcat::juli class, which requires the directory to be present before the download starts. This implicitely requires ${tomcat_home} to be present,
In my sources, (version 0.0.2 on puppetforge) I can either make changes to juli.pp or source.pp to fix this cyclic dependency.
juli.pp
archive::download { "tomcat-juli.jar":
url => "${baseurl}/extras/tomcat-juli.jar",
digest_url => "${baseurl}/extras/tomcat-juli.jar.md5",
digest_type => "md5",
src_target => "${tomcat_home}/extras/",
# require => File["${tomcat_home}/extras/"],
}
archive::download { "tomcat-juli-adapters.jar":
url => "${baseurl}/extras/tomcat-juli-adapters.jar",
digest_url => "${baseurl}/extras/tomcat-juli-adapters.jar.md5",
digest_type => "md5",
src_target => "${tomcat_home}/extras/",
# require => File["${tomcat_home}/extras/"],
}
archive{ "apache-tomcat-${tomcat::params::version}":
url => $tomcaturl,
digest_url => "${tomcaturl}.md5",
digest_type => "md5",
target => "/opt",
}
file {"/opt/apache-tomcat":
ensure => link,
target => $tomcat_home,
require => Archive["apache-tomcat-${tomcat::params::version}"],
before => [File["commons-logging.jar"], File["log4j.jar"], File["log4j.properties"]],
}
file { $tomcat_home:
ensure => directory,
# require => Archive["apache-tomcat-${tomcat::params::version}"],
}
@AndreasEK I just uploaded a new version on the forge, could you test with this one please ?
@pinterb @AndreasEK I close this issue as it refers to an old version of this module, feel free to reopen if it is still relevant.