[SRU] SwiftSignalHandle fails due to python2-3 decode error

Bug #2012073 reported by Rodrigo Barbieri
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu Cloud Archive
New
Undecided
Unassigned
Yoga
New
Undecided
Unassigned
Zed
New
Undecided
Unassigned
heat (Ubuntu)
New
Undecided
Unassigned
Jammy
New
Undecided
Unassigned
Kinetic
New
Undecided
Unassigned

Bug Description

Storyboard link: https://storyboard.openstack.org/#!/story/2010485

============
SRU TEMPLATE
============

[Impact]

The issue impact stack creation workflows where swift signals are used. There is no workaround for the issue other than not using swift signals. The fix is a conditional one-liner that performs a type-check before running the code change.

[TestCase]

1. Setting up env
1a. Deploy an environment with ceph-rgw and heat
1b. Make sure rgw-swift-versioning-enabled=true

2. Reproducing the bug

2a. Create a stack using the following template:

---
heat_template_version: 2021-04-16

resources:
  signal:
    type: OS::Heat::SwiftSignal
    properties:
      handle: {get_resource: signal_handle}
      timeout: 300

  signal_handle:
    type: OS::Heat::SwiftSignalHandle

  instance_port:
    type: OS::Neutron::Port
    properties:
      network: private
      fixed_ips:
        - subnet_id: private_subnet

  the_server:
    type: OS::Nova::Server
    properties:
      name: test
      image: cirros2
      flavor: m1.cirros
      networks:
        - port: { get_resource: instance_port }
      user_data_format: RAW
      user_data:
        str_replace:
          template: |
            #!/bin/sh

            # Simple success signal
            wc_notify --data-binary '{"status": "SUCCESS"}'
          params:
            wc_notify: { get_attr: [signal_handle, curl_cli] }

2b. Use command "openstack stack create test -t template.yaml

2c. Wait for stack creation to fail using command "openstack stack list"

2d. Once failed, display the details using command "openstack stack show test"

2e. Confirm error with the message:

| stack_status_reason | Resource CREATE failed: Error: resources.signal: Failed to parse JSON data: b'in progress'

3. Cleanup not really needed

4. Install package that contains the fixed code

5. Confirming fix: Repeat steps 2a-2e and confirm stack creation is either successful or fails with a different message for another reason

[Regression Potential]

Since there is a type-check included in the fix, the regression potential is minimal, as if the condition is not fulfilled, then the original code is run.

Related branches

description: updated
tags: added: sts sts-sru-needed
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.