-
Notifications
You must be signed in to change notification settings - Fork 189
Open
Labels
Type: BugDoes not work as expected.Does not work as expected.
Description
Cookbook version
1.7.8 - and 3.0.0
Chef-client version
12.5.1
Platform Details
Ubuntu 14.04, running on Softlayer VPS
Scenario:
During the chef run, the node will just start into an infinite loop when it hits one of my runit_service configurations. I had run into this problem a bit earlier and seemed to get around it with a different version of runit, but it has re-emerged.
Steps to Reproduce:
This is the entire contents of the recipe in question:
health_check_port = 2702
package 'ruby2.3'
package 'obsidian-account-service' do
action :upgrade
notifies :restart, 'runit_service[account-service]'
end
package 'libpq-dev'
file "/opt/obsidian/account-service/settings/account.json" do
content JSON.pretty_generate(
'externalMessaging' => {
'eventStore' => {
'host' => node[:event_store_message_bus][:host],
'port' => node[:event_store_message_bus][:http_port]
}
},
'eventPublishing' => {
'eventStore' => {
'host' => node[:event_store_message_bus][:host],
'port' => node[:event_store_message_bus][:http_port]
}
}
)
end
file "/opt/obsidian/account-service/settings/account_client.json" do
content JSON.pretty_generate(
'eventStore' => {
'host' => node[:event_store_message_bus][:host],
'port' => node[:event_store_message_bus][:http_port]
}
)
end
file "/opt/obsidian/account-service/settings/error_telemetry_component_client.json" do
content JSON.pretty_generate(
'eventStore' => {
'host' => node[:event_store_message_bus][:host],
'port' => node[:event_store_message_bus][:http_port]
}
)
end
file "/opt/obsidian/account-service/settings/event_store_client_http.json" do
content JSON.pretty_generate(
'host' => node[:event_store][:host],
'port' => node[:event_store][:http_port]
)
end
file "/opt/obsidian/account-service/settings/read_model.json" do
content JSON.pretty_generate(
'postgresConnection' => {
'database' => node[:read_model][:database],
'host' => node[:read_model][:host],
'password' => node[:read_model][:password],
'username' => node[:read_model][:username]
}
)
end
file "/opt/obsidian/account-service/settings/health.json" do
content JSON.pretty_generate(
'port' => health_check_port
)
end
runit_service "account-service" do
default_logger true
end
obsidian_component_health_check "account-service" do
port health_check_port
end
Expected Result:
Historically this has worked fine - we have used this strategy to deploy our services for over a year, but as the number of services has grown, we're starting to see this. This recipe should have just configured a runit_service to run.
Actual Result:
Logs are here: https://gist.github.com/litch/a4b1c7a7d4cbc57c58c0ee503811fa45
The resource just keeps invoking itself recursively it seems. =/
Metadata
Metadata
Assignees
Labels
Type: BugDoes not work as expected.Does not work as expected.