murano-agent dead-lock on wrong execution-plan

Bug #1632556 reported by chenyujie on 2016-10-12
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

During loop on process execution plan, there is no try/catch to protect the code sequence. So if there is an exception raised from get_execution_plan(such as a wrong json format, and there is no try/catch either in get_execution_plan), the message would be processed for ever because next(msg_iterator) would never be executed, and the agent would dead-lock at the message.

    def _loop_func(self, msg_iterator):
        result, timestamp = self._queue.get_execution_plan_result()
        if result is not None:
            if self._send_result(result):

        plan = self._queue.get_execution_plan()
        if plan is not None:
            LOG.debug("Got an execution plan '{0}':".format(str(plan)))


chenyujie (gzyjchen) wrote :
tags: added: agent
tags: added: low-hanging-fruit
Changed in murano:
status: New → Confirmed
importance: Undecided → Medium
milestone: none → ocata-1
Jaewoo Park (aselius) on 2016-10-21
Changed in murano:
assignee: nobody → Jaewoo Park (aselius)
Stan Lagun (slagun) wrote :

Could you please provide more information on your use cases? In normal usage you cannot get json decoding exceptions for jsons that were produced by the very same application. And if the corrupted json was put there by someone else hanging until it fixed back by the user might be a reasonable behavior

chenyujie (gzyjchen) wrote :

The problem is rare. In our environment, we write wrong code in resource template, which produce not a valid yaml then the agent is dead after the wrong request.

Jaewoo Park (aselius) on 2016-11-07
Changed in murano:
assignee: Jaewoo Park (aselius) → nobody
Changed in murano:
milestone: 3.1.0 → pike-2
Changed in murano:
milestone: pike-2 → pike-rc1
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers