create_disk_from_image hangs compute process

Bug #1679720 reported by Eric Berglund
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nova-powervm
Fix Released
Critical
Eric Fried
pypowervm
Fix Released
Critical
Eric Fried

Bug Description

The disk driver code that creates a new disk from a glance image will hang the compute process. This is due to a problem with threading. Python contains a Global Interpreter Lock which will run only one thread, causing all of the others to stop. This is normally fine because threads can yield and allow other threads to run. The problem is that the thread is blocking on the open() syscall in nova.image.glance.download which doesn't yield, causing all of the other threads to be frozen.

The solution will come in two parts. First a new version of pypowervm will be created that will avoid threading altogether. Second, FUNC needs to be disabled in nova-powervm.

Eric Fried (efried)
Changed in nova-powervm:
importance: Undecided → Critical
assignee: nobody → Eric Fried (efried)
summary: - Openstack image upload failure
+ create_disk_from_image hangs
Eric Fried (efried)
summary: - create_disk_from_image hangs
+ create_disk_from_image hangs compute process
description: updated
Eric Fried (efried)
Changed in pypowervm:
importance: Undecided → Critical
assignee: nobody → Eric Fried (efried)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-powervm (master)

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

Changed in nova-powervm:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-powervm (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/453905

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-powervm (stable/newton)

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-powervm (master)

Reviewed: https://review.openstack.org/453233
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=6c8658088e5d6a86d6f57bd005a326e63aef4353
Submitter: Jenkins
Branch: master

commit 6c8658088e5d6a86d6f57bd005a326e63aef4353
Author: Eric Fried <email address hidden>
Date: Tue Apr 4 10:41:48 2017 -0500

    create_disk_from_image: IO_STREAM instead of FUNC

    Due to incompatibilities between threads and greenlets, uploads with
    UploadType.FUNC can hang the compute process (see bug).

    This change set replaces use of FUNC with IO_STREAM, and requires a new
    release of pypowervm which gets rid of coordinated upload (which also
    suffers from the threading incompatibility problems).

    Change-Id: If819f31f753ae37cabd8dc5cd91fbffacbfbe955
    Partial-Bug: #1679720
    Depends-On: If3ae23ac55acd56d758bc10e4c825882e2b11f01

tags: added: in-stable-ocata
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-powervm (stable/ocata)

Reviewed: https://review.openstack.org/453905
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=55c0edab38bf128dc8cf4a601f9779be3ac87e24
Submitter: Jenkins
Branch: stable/ocata

commit 55c0edab38bf128dc8cf4a601f9779be3ac87e24
Author: Eric Fried <email address hidden>
Date: Wed Apr 5 16:36:09 2017 -0500

    create_disk_from_image: IO_STREAM instead of FUNC

    Due to incompatibilities between threads and greenlets, uploads with
    UploadType.FUNC can hang the compute process (see bug).

    This change set replaces use of FUNC with IO_STREAM, and requires a new
    release of pypowervm which gets rid of coordinated upload (which also
    suffers from the threading incompatibility problems).

    Change-Id: If819f31f753ae37cabd8dc5cd91fbffacbfbe955
    Closes-Bug: #1679720

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-powervm (stable/newton)

Reviewed: https://review.openstack.org/453907
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=eedc5959cc93efb2af5b5f32448f1f38860cea20
Submitter: Jenkins
Branch: stable/newton

commit eedc5959cc93efb2af5b5f32448f1f38860cea20
Author: Eric Fried <email address hidden>
Date: Wed Apr 5 16:36:09 2017 -0500

    create_disk_from_image: IO_STREAM instead of FUNC

    Due to incompatibilities between threads and greenlets, uploads with
    UploadType.FUNC can hang the compute process (see bug).

    This change set replaces use of FUNC with IO_STREAM, and requires a new
    release of pypowervm which gets rid of coordinated upload (which also
    suffers from the threading incompatibility problems).

    Change-Id: If819f31f753ae37cabd8dc5cd91fbffacbfbe955
    Closes-Bug: #1679720

Eric Fried (efried)
Changed in nova-powervm:
status: In Progress → Fix Released
Revision history for this message
Eric Fried (efried) wrote :
Changed in pypowervm:
status: New → Fix Released
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.