Cinder LVM iSCSI driver with LIO helper fails to handle multiple concurrent requests to attach/detach volumes

Solution Verified - Updated -

Issue

Previously, when a volume name or stdout from a command contained unicode characters, logging would throw an unexpected UnicodeError exception.
As a result, the requested action was subsequently aborted, for example: 'remove' or 'create' tasks.
This update addresses this issue by changing logging to use delayed string interpolation. In addition, force type translations of variables on iSCSI targets have been removed.
Consequently, logging should work properly and actions should execute as expected.
Prior to this update, when using 'LIO' in Block Storage (cinder), 'rtslib' did not correctly handle concurrent access, so simultaneous deletes/reads to the same configfs data from rtslib resulted in issues.
Consequently, this issue may present itself in logs as different errors:
- Exceptioins on *.dump()
- KeyError exceptions
- IOError exceptions
- RTSLibError on storage_object exceptions
- strict_strtoul() failed for port_str: -22
This update addresses this issue by synchronizing Block Storage's access to rtslib. As a result, the synchronized access errors no longer occur.

Environment

Red Hat Enterprise Linux OpenStack Platform 5.
Red Hat Enterprise Linux OpenStack Platform 6.

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content