Issue #3155 has been updated by James Turnbull. Status changed from Ready for Checkin to Needs more information Assigned to changed from Brice Figureau to Jesse Wolfe
What branch should be applied? ---------------------------------------- Bug #3155: Strange if statement regex problem, matches fail with "Cannot reassign variable 0" http://projects.puppetlabs.com/issues/3155 Author: Josh Endries Status: Needs more information Priority: Normal Assigned to: Jesse Wolfe Category: language Target version: Affected version: 0.25.4 Keywords: Branch: I have been doing work on my puppet server itself. I recently changed this: <pre> if ($environment == 'testing') or ($fqdn =~ /repo[1256].nsdl.org/) { </pre> To this: <pre> if ($environment == 'testing') or ($fqdn =~ /repo[1256].nsdl.org/) or ($fqdn =~ /puppet.nsdl.org/) { </pre> And Puppet stopped functioning: <pre> puppetd[20829]: Could not retrieve catalog from remote server: Error 400 on SERVER: Cannot reassign variable 0 at /etc/puppet/manifests/classes/linux.pp:6 on node puppet.nsdl.org </pre> This was on 0.25.1, but I upgraded to .4 and it still happens. Anything I try that matches the $fqdn (or $hostname, which I tried) causes this error. Anything that doesn't match, works fine, e.g. these don't work: <pre> $fqdn =~ /pupp/ $fqdn =~ /puppet/ $fqdn =~ /^puppet\.nsdl\.org$/ $fqdn =~ /(repo[1256]|puppet).nsdl.org/ </pre> These work: <pre> $fqdn == 'puppet.nsdl.org' $hostname == 'puppet' </pre> Here is a trace: <pre> 14:49:22 [email protected]/etc/puppet puppetmasterd --debug --trace --verbose --no-daemonize debug: Failed to load library 'selinux' for feature 'selinux' debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderUser_role_add: file roledel does not exist debug: Failed to load library 'ldap' for feature 'ldap' debug: Puppet::Type::User::ProviderLdap: feature ldap is missing debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: /File[/etc/puppet/ssl/crl.pem]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/ssl/certs/puppet.nsdl.org.pem]: Autorequiring File[/etc/puppet/ssl/certs] debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet] debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/auth.conf]: Autorequiring File[/etc/puppet] debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet] debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/lib/puppet/rrd]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/bucket]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/ssl/public_keys/puppet.nsdl.org.pem]: Autorequiring File[/etc/puppet/ssl/public_keys] debug: /File[/var/lib/puppet/reports]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/fileserver.conf]: Autorequiring File[/etc/puppet] debug: /File[/etc/puppet/ssl/certs/ca.pem]: Autorequiring File[/etc/puppet/ssl/certs] debug: /File[/var/log/puppet/masterhttp.log]: Autorequiring File[/var/log/puppet] debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/manifests/site.pp]: Autorequiring File[/etc/puppet/manifests] debug: /File[/etc/puppet/ssl/private_keys/puppet.nsdl.org.pem]: Autorequiring File[/etc/puppet/ssl/private_keys] debug: /File[/etc/puppet/manifests]: Autorequiring File[/etc/puppet] debug: /File[/var/lib/puppet/yaml]: Autorequiring File[/var/lib/puppet] debug: Finishing transaction 23650725397220 with 0 changes debug: /File[/etc/puppet/ssl/ca/ca_crl.pem]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/ca_pub.pem]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/serial]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/requests]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/ca_crt.pem]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/signed]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/inventory.txt]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/ca_key.pem]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/private]: Autorequiring File[/etc/puppet/ssl/ca] debug: /File[/etc/puppet/ssl/ca/private/ca.pass]: Autorequiring File[/etc/puppet/ssl/ca/private] debug: Finishing transaction 23650724840360 with 0 changes debug: Using cached certificate for ca, good until Sun Jun 15 16:52:42 UTC 2014 debug: Using cached certificate for ca, good until Sun Jun 15 16:52:42 UTC 2014 debug: Using cached certificate for puppet.nsdl.org, good until Sun Jun 15 16:52:42 UTC 2014 notice: Starting Puppet server version 0.25.4 debug: Finishing transaction 23650723163440 with 0 changes debug: No modules mount given; autocreating with default permissions debug: No plugins mount given; autocreating with default permissions debug: Creating interpreter debug: Finishing transaction 23650723149960 with 0 changes info: access[^/catalog/([^/]+)$]: allowing 'method' find info: access[^/catalog/([^/]+)$]: allowing $1 access info: access[/certificate_revocation_list/ca]: allowing 'method' find info: access[/certificate_revocation_list/ca]: allowing * access info: access[/report]: allowing 'method' save info: access[/report]: allowing * access info: access[/file]: allowing * access info: access[/certificate/ca]: adding authentication no info: access[/certificate/ca]: allowing 'method' find info: access[/certificate/ca]: allowing * access info: access[/certificate/]: adding authentication no info: access[/certificate/]: allowing 'method' find info: access[/certificate/]: allowing * access info: access[/certificate_request]: adding authentication no info: access[/certificate_request]: allowing 'method' find info: access[/certificate_request]: allowing 'method' save info: access[/certificate_request]: allowing * access info: access[/]: adding authentication any info: Expiring the node cache of puppet.nsdl.org info: Not using expired node for puppet.nsdl.org from cache; expired at Fri Feb 05 14:49:30 -0500 2010 info: Caching node for puppet.nsdl.org debug: importing '/etc/puppet/manifests/classes/linux.pp' debug: importing '/etc/puppet/manifests/nodes/nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/puppet.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/expertvoices.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/ldap.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/content.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo2.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server3.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server14.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/wfi.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo3.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/fezdev.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/server4.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/dds1.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/ldap.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/onramp.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/server8.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server7.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo6.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/service.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo1.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/wfi.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/phpdev.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/server2.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo1.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo5.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/search1.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/search2.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server5.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server10.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/server9.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo4.nsdl.org.pp' debug: importing '/etc/puppet/manifests/nodes/repo2.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/onramp-test.nsdlib.org.pp' debug: importing '/etc/puppet/manifests/nodes/www1.nsdl.org.pp' debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderUrpmi: Executing '/bin/rpm -ql rpm' debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderAptrpm: Executing '/bin/rpm -ql rpm' /usr/lib/ruby/site_ruby/1.8/puppet/parser/scope.rb:311:in `setvar' /usr/lib/ruby/site_ruby/1.8/puppet/parser/scope.rb:423:in `ephemeral_from' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/leaf.rb:182:in `evaluate_match' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/match_operator.rb:19:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/ifstatement.rb:19:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/caseopt.rb:67:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:25:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/caseopt.rb:60:in `eachopt' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:24:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/branch.rb:16:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/branch.rb:15:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:23:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:35:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:34:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:34:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/caseopt.rb:67:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:25:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/caseopt.rb:60:in `eachopt' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:24:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/branch.rb:16:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/branch.rb:15:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/casestatement.rb:23:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/hostclass.rb:82:in `evaluate_code' /usr/lib/ruby/site_ruby/1.8/puppet/parser/resource.rb:73:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:147:in `evaluate_classes' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:138:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:138:in `evaluate_classes' /usr/lib/ruby/site_ruby/1.8/puppet/parser/functions/include.rb:6:in `function_include' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/function.rb:42:in `send' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/function.rb:42:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:35:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:34:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/astarray.rb:34:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:72:in `safeevaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/hostclass.rb:82:in `evaluate_code' /usr/lib/ruby/site_ruby/1.8/puppet/parser/resource.rb:73:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:235:in `evaluate_ast_node' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:94:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/parser/interpreter.rb:29:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:88:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:178:in `benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:177:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:86:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:35:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:195:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:51:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:101:in `do_find' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68:in `send' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68:in `process' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:23:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:45:in `listen' /usr/lib/ruby/1.8/webrick/server.rb:173:in `call' /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:42:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `initialize' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `new' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `listen' /usr/lib/ruby/1.8/thread.rb:135:in `synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:38:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:131:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:146:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:128:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/application/puppetmasterd.rb:122:in `main' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `send' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run' /usr/sbin/puppetmasterd:66 err: Cannot reassign variable 0 at /etc/puppet/manifests/classes/linux.pp:6 on node puppet.nsdl.org /usr/lib/ruby/site_ruby/1.8/puppet/parser/interpreter.rb:32:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:88:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:178:in `benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:177:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:86:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:35:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:195:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:51:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:101:in `do_find' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68:in `send' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68:in `process' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:23:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:45:in `listen' /usr/lib/ruby/1.8/webrick/server.rb:173:in `call' /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:42:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `initialize' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `new' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:41:in `listen' /usr/lib/ruby/1.8/thread.rb:135:in `synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:38:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:131:in `listen' /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:146:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:128:in `start' /usr/lib/ruby/site_ruby/1.8/puppet/application/puppetmasterd.rb:122:in `main' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `send' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run' /usr/sbin/puppetmasterd:66 err: Cannot reassign variable 0 at /etc/puppet/manifests/classes/linux.pp:6 on node puppet.nsdl.org</pre> This was working fine, before I added puppet, so it could be something else entirely...but I have no idea what. :( This is the bit of that file which is erroring out: <pre> class linux { case $operatingsystem { redhat: { case $operatingsystemrelease { /^5/: { if ($fqdn =~ /puppet.nsdl.org/) { iptables { "0000 RHEL5 INPUT chain redirect": chain => 'INPUT', jump => 'RH-Firewall-1-INPUT', } </pre> I have tried removing everything inside the if statement so it's just a {} and that doesn't affect it. -- 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://reductivelabs.com/redmine/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.
