destroying a subordinate service after destroying its primary services results in a traceback...
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pyjuju |
In Progress
|
Low
|
Benjamin Saller |
Bug Description
Steps to reproduce:
(assuming bootstrapped precise)
export JUJU_REPOSITORY
juju deploy local:mysql
juju deploy cs:~clint-
juju deploy munin
juju add-relation mysql munin-node
juju add-relation munin-node:munin munin
juju destroy-service mysql
juju destroy-service munin-node
Debug log will show the traceback and the old unit agent will be left running on the machine. Given the lack of cleanup I understand that the best way is to terminate the machine, but I'd like to see these agents at least get gracefully removed from the machine in case I just want to re-deploy the same thing to it.
juju:
Installed: 0.5+bzr529-
Candidate: 0.5+bzr529-
Version table:
*** 0.5+bzr529-
500 http://
100 /var/lib/
0.
500 http://
=== Traceback ===
2012-04-15 07:25:03,717 unit:munin-node/3: twisted ERROR: Unhandled error in Deferred:
2012-04-15 07:25:03,719 unit:munin-node/3: twisted ERROR: Unhandled Error
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
current.result = callback(
File "/usr/lib/
_inlineCall
--- <exception caught here> ---
File "/usr/lib/
result = g.send(result)
File "/usr/lib/
yield watch_topology_
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
"Service not found: %s" % service_id)
juju.state.
2012-04-15 07:25:03,952 unit:munin-node/3: juju.agents.unit DEBUG: Configuration Changed
2012-04-15 07:25:03,960 unit:munin-node/3: twisted ERROR: Unhandled error in Deferred:
2012-04-15 07:25:03,962 unit:munin-node/3: twisted ERROR: Unhandled Error
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
current.result = callback(
File "/usr/lib/
_inlineCall
--- <exception caught here> ---
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
yield callback(
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
yield self.workflow.
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
yield self.set_
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
yield self._store(state)
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
yield retry_change(
File "/usr/lib/
result = result.
File "/usr/lib/
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/
new_content = yield change_
File "/usr/lib/
unit_data = yaml.load(content)
File "/usr/lib/
loader = Loader(stream)
File "/usr/lib/
Reader.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
data = self.stream.
exceptions.
Related branches
- Juju Engineering: Pending requested
-
Diff: 550 lines (+264/-43)11 files modifiedjuju/control/destroy_service.py (+2/-2)
juju/control/remove_relation.py (+5/-3)
juju/control/tests/test_destroy_service.py (+18/-4)
juju/control/tests/test_remove_relation.py (+2/-2)
juju/hooks/tests/test_invoker.py (+2/-0)
juju/lib/testing.py (+3/-3)
juju/state/hook.py (+9/-3)
juju/state/tests/test_service.py (+78/-22)
juju/unit/lifecycle.py (+64/-0)
juju/unit/tests/test_lifecycle.py (+76/-2)
juju/unit/workflow.py (+5/-2)
description: | updated |
Changed in juju: | |
assignee: | nobody → Benjamin Saller (bcsaller) |
Changed in juju: | |
milestone: | none → honolulu |
status: | New → In Progress |
Changed in juju: | |
importance: | Undecided → High |
Changed in juju: | |
milestone: | 0.6 → none |
Changed in juju: | |
importance: | High → Low |