Repository navigation
Fix the deletion of S3 buckets - #14678
bernardodemarco wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.22 #14678 +/- ##
=========================================
Coverage 18.32% 18.32%
- Complexity 16644 16647 +3
=========================================
Files 5939 5939
Lines 537787 537787
Branches 65932 65932
=========================================
+ Hits 98544 98553 +9
+ Misses 428033 428023 -10
- Partials 11210 11211 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@blueorangutan package |
|
@vladimirpetrov a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 20019 |
vladimirpetrov
left a comment
There was a problem hiding this comment.
LGTM based on manual testing. Tested with upgrades from 4.20 -> 4.22.1 -> PR and 4.20 -> PR.
dheeraj12347
left a comment
There was a problem hiding this comment.
@bernardodemarco
I reviewed the migration and tested the SQL locally with multiple active buckets. The allocated size was recalculated correctly in bytes, and the migration is picked up by the existing upgrade mechanism.
I also checked the failing Simulator CI job. The failure is in test_secondary_storage.py::test_01_sys_vm_start, which checks SSVM startup. I couldn't find a connection between that failure and the S3 bucket allocation change, although the underlying CI failure is still unresolved.
No issues found with the SQL change from my testing.
Description
PR #10140 introduced the
allocated_sizecolumn to thecloud.object_storetable, which is expected to hold the sum of all bucket quota, in bytes. To initialize the new column, the following query was introduced:cloudstack/engine/schema/src/main/resources/META-INF/db/schema-42040to42100.sql
Lines 742 to 749 in f8f3848
However, bucket quotas are stored in GiB, not bytes, and the query does not convert them. As a result, Object Storage providers in environments upgraded from versions prior to 4.21 have an
allocated_sizethat is smaller than expected. When a bucket is deleted, its quota (converted to bytes) is subtracted from this value, which becomes negative. Since the column is unsigned, the update fails and the bucket cannot be deleted:Impossibility of deleting buckets
Therefore, this PR recalculates the allocated size in bytes for each Object Storage provider. It targets the 4.22.2.0 version. A follow-up PR targeting
mainwill apply the same fix to environments already running 4.23.0.0.Types of changes
Feature/Enhancement Scale or Bug Severity
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?