cinder-volume: Stop masking IOError different than ENOSPC
When glanceclient raises an IOError with a different errno than ENOSPC,
cinder-volume silently masked it and continued its volume creation
process. The result was volumes with invalid content being successfuly
created.
With the patch, an ImageDownloadFailed exception is raised in this case,
which makes the volume creation process fail and gives enough
information to operators for troubleshooting.
As explained in detail below, this patch is a squash of four cherry
picks to fix Bug #1799221. The cherry-picks are being squashed
instead of done separately per normal cinder practice because they
are dependent; this will make sure that one of them isn't further
backported without the supporting patches.
Here's the relationship between the four cherry-picks:
(1) The purpose of this backport is to fix Bug #1799221, which was
introduced in Pike. It is fixed in Stein and Rocky by Ic011fe30b4840e5098db1a594ea276ec98768bff
(2) That change requires an exception introduced in Stein and backported
to Rocky by If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138 to fix Bug
#1798147 (which defect is also present in Queens and Pike)
(3) The change in (2) introduced Bug #1808443 which was fixed in Stein
and Rocky by I6d8dedfd056add3414f8f4bf7f7279eae4763286
(4) The change in (2) also introduced Bug #1811184, which is fixed by I6d8dedfd056add3414f8f4bf7f7279eae4763286 in Stein and Rocky, and
which adds a unit test for Bug #1798147.
In short, in order to backport the fix for (1), we need to backport (2),
but in order to backport (2) we need to follow up immediately with
backports of (3) and (4) to fix the defects (2) introduces.
The attentive reader will note that this patch smuggles in the fix for Bug #1798147. We could have left this out, but it's a very small
isolated change, the defect is present in Queens and Pike (remember that Bug #1799221, the subject of this patch, was introduced in Pike), and it
has a unit test (see (4), above). Finally, leaving out the fix for Bug #1798147 and backporting only the exception would still require
backporting the fixes for Bug #1808443 and Bug #1811184, so it really
would not simplify this patch.
To summarize what's being included here:
commit changeId fixed bug
805368e If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138 Bug #1798147
9c696ce I2aa56da73660794c6dedcbb8a66e84bcec511a9c Bug #1808443
844b627 I6d8dedfd056add3414f8f4bf7f7279eae4763286 Bug #1811184
bf89f76 Ic011fe30b4840e5098db1a594ea276ec98768bff Bug #1799221
Change-Id: Ic011fe30b4840e5098db1a594ea276ec98768bff
Closes-Bug: #1799221
(cherry picked from commit 864c074ff15db601c896dadc2842ae703861c0dd)
(cherry picked from commit bf89f76fb1b7a52299c17467106018eae01608e8)
Related-Bug: #1798147
(cherry picked from commit d3afc39467c6532344118e8e491409878da9c2dd)
(cherry picked from commit 805368e902ada4c63e2e6e4d6692cf8cc2531a1e)
Related-Bug: #1808443
(cherry picked from commit 80fdc0a71b55659d92efdda826807d60d8bd4ab9)
(cherry picked from commit 9c696ce29f63275ec229a943a9b9bcf63f688f0c)
Related-bug: #1811184
(cherry picked from commit 16b4346171d2027bb3c2630d5f28f6f002878870)
(cherry picked from commit 844b627c38bb810abd3ef0b464577191f193ad7d)
Reviewed: https:/ /review. openstack. org/629463 /git.openstack. org/cgit/ openstack/ cinder/ commit/ ?id=937af5be0e7 c17b34860e25cc4 34a219d7143387
Committed: https:/
Submitter: Zuul
Branch: stable/queens
commit 937af5be0e7c17b 34860e25cc434a2 19d7143387
Author: Francois Deppierraz <email address hidden>
Date: Mon Oct 22 15:33:25 2018 +0200
cinder-volume: Stop masking IOError different than ENOSPC
When glanceclient raises an IOError with a different errno than ENOSPC,
cinder-volume silently masked it and continued its volume creation
process. The result was volumes with invalid content being successfuly
created.
With the patch, an ImageDownloadFailed exception is raised in this case,
which makes the volume creation process fail and gives enough
information to operators for troubleshooting.
As explained in detail below, this patch is a squash of four cherry
picks to fix Bug #1799221. The cherry-picks are being squashed
instead of done separately per normal cinder practice because they
are dependent; this will make sure that one of them isn't further
backported without the supporting patches.
Here's the relationship between the four cherry-picks:
Ic011fe30b4840 e5098db1a594ea2 76ec98768bff 2a6ccd8bf6b6ed9 8409312b138 to fix Bug 3414f8f4bf7f727 9eae4763286
I6d8dedfd056ad d3414f8f4bf7f72 79eae4763286 in Stein and Rocky, and
(1) The purpose of this backport is to fix Bug #1799221, which was
introduced in Pike. It is fixed in Stein and Rocky by
(2) That change requires an exception introduced in Stein and backported
to Rocky by If7c22ac4516f8c
#1798147 (which defect is also present in Queens and Pike)
(3) The change in (2) introduced Bug #1808443 which was fixed in Stein
and Rocky by I6d8dedfd056add
(4) The change in (2) also introduced Bug #1811184, which is fixed by
which adds a unit test for Bug #1798147.
In short, in order to backport the fix for (1), we need to backport (2),
but in order to backport (2) we need to follow up immediately with
backports of (3) and (4) to fix the defects (2) introduces.
The attentive reader will note that this patch smuggles in the fix for
Bug #1798147. We could have left this out, but it's a very small
isolated change, the defect is present in Queens and Pike (remember that
Bug #1799221, the subject of this patch, was introduced in Pike), and it
has a unit test (see (4), above). Finally, leaving out the fix for
Bug #1798147 and backporting only the exception would still require
backporting the fixes for Bug #1808443 and Bug #1811184, so it really
would not simplify this patch.
To summarize what's being included here: 2a6ccd8bf6b6ed9 8409312b138 Bug #1798147 4c6dedcbb8a66e8 4bcec511a9c Bug #1808443 3414f8f4bf7f727 9eae4763286 Bug #1811184 5098db1a594ea27 6ec98768bff Bug #1799221
commit changeId fixed bug
805368e If7c22ac4516f8c
9c696ce I2aa56da7366079
844b627 I6d8dedfd056add
bf89f76 Ic011fe30b4840e
Change-Id: Ic011fe30b4840e 5098db1a594ea27 6ec98768bff 1c896dadc2842ae 703861c0dd) 299c17467106018 eae01608e8) 344118e8e491409 878da9c2dd) 63e2e6e4d6692cf 8cc2531a1e) d92efdda826807d 60d8bd4ab9) ec229a943a9b9bc f63f688f0c) bb3c2630d5f28f6 f002878870) abd3ef0b4645771 91f193ad7d)
Closes-Bug: #1799221
(cherry picked from commit 864c074ff15db60
(cherry picked from commit bf89f76fb1b7a52
Related-Bug: #1798147
(cherry picked from commit d3afc39467c6532
(cherry picked from commit 805368e902ada4c
Related-Bug: #1808443
(cherry picked from commit 80fdc0a71b55659
(cherry picked from commit 9c696ce29f63275
Related-bug: #1811184
(cherry picked from commit 16b4346171d2027
(cherry picked from commit 844b627c38bb810