Quota charges attached volumes twice since 4.22.1 (cumulative + per-VM usage_volume records from #11531)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 22/100
調査の方向性
The double charge comes from two usage_volume helper rows per attached volume, one with vm_id NULL and one with vm_id set, which each produce a usage_type = 6 record in cloud_usage. Start by reproducing the row counts in usage_volume, cloud_usage and quota_usage after a Usage run, then trace how #11531 introduced the per-VM row. Done means each attached volume is billed once per hour, and the choice of which record kind Quota bills is settled with the maintainers first.
索引モデルが issue の本文から書いたものです。
説明
problem
Since #11531 (4.22.1), Usage intentionally writes two kinds of usage_volume helper rows for an attached volume: a cumulative row (vm_id NULL) and a per-VM row (vm_id set). Both generate an hourly usage_type = 6 (VOLUME) record in cloud_usage, one with and one without vm_instance_id.
The Quota plugin treats both records as billable, so every attached volume is charged twice.
versions
- CloudStack 4.22.1.1 (management, usage)
- KVM, Ceph RBD primary storage
- Quota enabled with a volume tariff (
usage_type = 6)
steps to reproduce
- Enable Quota and configure a tariff for usage type 6.
- Create a data volume and attach it to a running VM (events
VOLUME.CREATE, thenVOLUME.ATTACH). - After the next Usage run, check
cloud_usage.usage_volume. There are two rows withdeleted IS NULL, one withvm_idNULL and one withvm_idset to the VM. - Check
cloud_usage.cloud_usagefor that volume and hour. There are twousage_type = 6records with the sameraw_usage: one withvm_instance_idNULL and one withvm_instance_idset. - Check
cloud_usage.quota_usage. There is one row percloud_usagerecord, both with the samequota_used, so the account balance is debited twice.
Example, one volume and one hour:
| cloud_usage.vm_instance_id | records | quota_used |
|---|---|---|
| NULL (cumulative) | 1 | 0.0081 |
| set (per-VM) | 1 | 0.0081 |
expected
A volume should be charged once per hour. Quota should bill only one of the two record kinds, for example the cumulative record (vm_instance_id NULL), since that is the one that is consistent with pre-#11531 behaviour.
notes
- Today, root volumes on new VMs don't show the double charge, because the second
usage_volumeinsert fails on the old(volume_id, created)unique key (#13909 / #13933). Once that key is widened in 4.22.2, root volumes will get both rows too, and will also be double-charged by Quota. - Our workaround: an hourly job sets
deleted = createdon per-VMusage_volumerows whenever an active cumulative row exists for the same volume. Per-VM records then stop being generated for that volume, and the cumulative row keeps billing it through detach and re-attach. Records written before we found this had to be removed by hand.
- 主要言語
- Java
- スター
- 3.1k
- フォーク
- 1.4k
- 平均マージ
- 9日 23時間
- マージ済み PR(30日)
- 19
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/cloudstack のほかの issue
-
Remote access VPN users are disconnected on every LB, ACL, port forward or firewall change (xl2tpd restarted on every iptables pass)対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/cloudstack#14545 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/cloudstack#14530 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug status:has-work-around
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/cloudstack#14465 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
4.23.0.0: restartVPC cleanup=true with public IPs on two VLANs fails with UnsupportedOperationException and leaves the VPC without a backup router対応中かも @bernardodemarco が 6 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/cloudstack#14430 · コメント 4 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
apache/cloudstack#14427 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
apache/cloudstack の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
a2aproject/a2a-java#1275 ·
メンテナーはふだん 1 日以内に返信
-
module/ftp Type/Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ballerina-platform/ballerina-library#9476 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
HMCL-dev/HMCL#7175 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
anwilli5/coin-collection-android-US#515 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
FasterXML/jackson-databind#6398 ·
メンテナーはふだん 1 日以内に返信