Cinder setup fails with "The conditional check 'cinder_backend_lvm_inuse | bool' failed"

Bug #1632393 reported by Chris Martin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack-Ansible
Fix Released
High
Jesse Pretorius

Bug Description

Encountered while running setup-infrastructure.yml, OSA stable/Newton commit 94a3b966b2f5603f2117b473f89477953e9328da from 7 October.

"TASK [Set default bind mounts] *************************************************
fatal: [r14r730-01]: FAILED! => {"failed": true, "msg": "The conditional check 'cinder_backend_lvm_inuse | bool' failed."

A very similar issue was reported by lovea in #openstack-ansible here, and he kept better notes than I did:
http://eavesdrop.openstack.org/irclogs/%23openstack-ansible/%23openstack-ansible.2016-08-19.log.html#t2016-08-19T15:44:27

Note that lovea was re-deploying, I was setting up a fresh environment, and we both experienced this.

Relevant part of my openstack_user_config.yml:

```
storage_hosts:
  r14r730-01:
    ip: 172.29.236.117

    container_vars:
      cinder_storage_availability_zone: cinder_jetstream_test
      cinder_default_availability_zone: cinder_jetstream_test
      cinder_backends:
        lvm:
          volume_backend_name: LVM_iSCSI
          volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver
          volume_group: cinder-volumes
          iscsi_ip_address: "{{ storage_address }}"
        limit_container_types: cinder_volume
```

When I commented out the line `iscsi_ip_address: "{{ storage_address }}"`, the playbook completed successfully.

It appears that some of the docs show a default of `iscsi_ip_address: "{{ cinder_storage_address }}"` instead of just `{{ storage_address }}`. I did not try this but perhaps that's what is expected?

http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-user-config-examples.html - "storage_address"
http://docs.openstack.org/developer/openstack-ansible/install-guide/app-config-prod.html - "cinder_storage_address"

tags: added: newton-rc-potential
Changed in openstack-ansible:
importance: Undecided → High
Revision history for this message
Jean-Philippe Evrard (jean-philippe-evrard) wrote :

When you commented out the line iscsi_ip_address: "{{ storage_address }}}" , is your cinder.conf properly configured with the proper IP?

It should.

If that's the case, we should just change the doc and tell it's automatically discovered.

We maybe have to test if the precedence of playbooks facts/inventory vars is still fine in the latest version of ansible.

Did you check the resulting cinder.conf file by forcing
iscsi_ip_address: <an ip of your choice, different than the auto-discovered one> ?

Revision history for this message
Chris Martin (6-chris-z) wrote :

When I commented out that line, I see something like "iscsi_ip_address = 172.29.236.36" in /etc/cinder/cinder.conf in each cinder container. The IP address corresponds to the container's interface on the container management subnet. Haven't tried using cinder yet but will report back if I have trouble.

Revision history for this message
Alexandra Settle (alexandra-settle) wrote :

Requires confirmation that this is an issue. Happy to take on board after confirmation.

Changed in openstack-ansible:
assignee: nobody → Alexandra Settle (alexandra-settle)
Revision history for this message
Chris Martin (6-chris-z) wrote :

I've switched to using Ceph as my cinder back-end, so unfortunately I won't be helpful troubleshooting this going forward. Feel free to close if nobody else is having trouble with this..

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (master)

Fix proposed to branch: master
Review: https://review.openstack.org/392969

Changed in openstack-ansible:
assignee: Alexandra Settle (alexandra-settle) → Kevin Carter (kevin-carter)
status: New → In Progress
Changed in openstack-ansible:
assignee: Kevin Carter (kevin-carter) → Michael Carden (mike-carden)
Changed in openstack-ansible:
assignee: Michael Carden (mike-carden) → nobody
Changed in openstack-ansible:
assignee: nobody → Kevin Carter (kevin-carter)
Changed in openstack-ansible:
assignee: Kevin Carter (kevin-carter) → Jesse Pretorius (jesse-pretorius)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (master)

Reviewed: https://review.openstack.org/392969
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=f5d857864625cd9040d97bd73af1aebfc14d396c
Submitter: Jenkins
Branch: master

commit f5d857864625cd9040d97bd73af1aebfc14d396c
Author: Kevin Carter <email address hidden>
Date: Wed Nov 2 16:07:28 2016 -0500

    Move storage_address discovery into a single task

    The storage address variable needs to be defined before running other
    common tasks. The `storage_address` variable, when defined in a cinder
    storage backend, causes an exception at runtime as the host_var will be
    undefined. This patch moves the `storage_address` discovery set of tasks
    into its one task and allows the option to be known before running
    anything else.

    Closes-Bug: #1632393
    Change-Id: I547c72943396af92df2a298470e3f89b4d1e3a2d
    Signed-off-by: Kevin Carter <email address hidden>

Changed in openstack-ansible:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/393814

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (stable/newton)

Reviewed: https://review.openstack.org/393814
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=9de8c2377264a4582139397b0f0fe16221d192f3
Submitter: Jenkins
Branch: stable/newton

commit 9de8c2377264a4582139397b0f0fe16221d192f3
Author: Kevin Carter <email address hidden>
Date: Wed Nov 2 16:07:28 2016 -0500

    Move storage_address discovery into a single task

    The storage address variable needs to be defined before running other
    common tasks. The `storage_address` variable, when defined in a cinder
    storage backend, causes an exception at runtime as the host_var will be
    undefined. This patch moves the `storage_address` discovery set of tasks
    into its one task and allows the option to be known before running
    anything else.

    Closes-Bug: #1632393
    Change-Id: I547c72943396af92df2a298470e3f89b4d1e3a2d
    Signed-off-by: Kevin Carter <email address hidden>
    (cherry picked from commit f5d857864625cd9040d97bd73af1aebfc14d396c)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/openstack-ansible 15.0.0.0b1

This issue was fixed in the openstack/openstack-ansible 15.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/openstack-ansible 14.0.2

This issue was fixed in the openstack/openstack-ansible 14.0.2 release.

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.