Implicit dependency between two SoftwareDeployment resources causes double run (rdo-icehouse-release)

Bug #1376008 reported by Jacques Uber
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Heat Templates
Fix Committed
High
Jan Provaznik
OpenStack Heat
Invalid
Medium
Jan Provaznik

Bug Description

Running the first attached template causes the file '/tmp/dupe' to have the contents:
here!
here!

(Thus, the app_config SoftwareConfig has been ran twice)

When you remove the implicit dependency the double run goes away (see second attached template).

Note that the only difference between the two templates is the very last line.

I am using an image built with dib that contains the following elements (not sure if relevant):
vm
heat-cfntools
heat-config-cfn-init
heat-config
heat-config-script
os-collect-config
os-refresh-config
os-apply-config
(a few other custom elements)

Tags: first
Revision history for this message
Jacques Uber (uberj) wrote :
Revision history for this message
Jacques Uber (uberj) wrote :
Jacques Uber (uberj)
summary: - Implicit dependancy between two SoftwareDeployment resources causes
- double run
+ Implicit dependency between two SoftwareDeployment resources causes
+ double run (rdo-icehouse-release)
Angus Salkeld (asalkeld)
Changed in heat:
importance: Undecided → Medium
status: New → Confirmed
milestone: none → next
Changed in heat:
assignee: nobody → Jan Provaznik (jan-provaznik)
Revision history for this message
Steve Baker (steve-stevebaker) wrote :

Moving to heat-templates. I think 55-heat-config will need to persist and check a list of which config UUIDs have been executed so they are only executed once.

Changed in heat:
status: Confirmed → Invalid
Changed in heat-templates:
importance: Undecided → High
status: New → Triaged
assignee: nobody → Jan Provaznik (jan-provaznik)
Changed in heat-templates:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to heat-templates (master)

Reviewed: https://review.openstack.org/140886
Committed: https://git.openstack.org/cgit/openstack/heat-templates/commit/?id=2b33ca539f2bade702c07e18d86220a8148fa29f
Submitter: Jenkins
Branch: master

commit 2b33ca539f2bade702c07e18d86220a8148fa29f
Author: Steve Baker <email address hidden>
Date: Thu Dec 11 11:02:15 2014 +1300

    Write each deployed config json to file

    Previously 55-heat-config assumed that executing a hook with some
    config is an idempotent operation, so it made no effort to prevent
    a hook being invoked with the same config multiple times. This means
    that whenever *any* deployment metadata changes *all* configs are
    run against their hooks again. This would be undesirable for
    non-idempotent configs, or configs which are expensive to execute.

    This change writes out the config json to files in
    /var/run/heat-config/deployed and uses the presence of this file to
    determine whether that config has been deployed already. This also
    improves the debugging experience as a single hook execution can be
    triggered manually by running:
      /var/lib/heat-config/hooks/<hook> < /var/run/heat-config/deployed/<cid>.json

    Closes-Bug: #1376008
    Closes-Bug: #1365302

    Change-Id: Id2d2f623508be3049a7db8a39f5444ccac9257d6

Changed in heat-templates:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.