resizeVolume of a running system VM's volume is accepted but the VM never sees the new size
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
調査の方向性
VolumeApiServiceImpl.orchestrateResizeVolume から始めて、VM をどのように特定し、既存のサイズ変更時の状態チェックを適用しているかを追ってください。サイズのみを変更するボリュームのサイズ変更とシステム VM の状態に関する関連テストを確認してください。システム VM のボリュームのサイズ変更が、VM が停止していない限り拒否され、停止中の VM のサイズ変更は引き続き動作すれば、変更は完了です。
索引モデルが issue の本文から書いたものです。
説明
problem
A size-only resizeVolume of a running system VM's volume, for example a virtual router's ROOT, is accepted and resizes the volume on the storage. The running system VM is never told, so the guest keeps seeing the old size until it next starts. The API, the database and the storage all report the new size while the VM still runs on the old one.
VolumeApiServiceImpl.orchestrateResizeVolume only looks the VM up as a user VM (_userVmDao.findById). For a system VM that returns null, so the resize is sent with the instance name none and no host. On KVM the image is grown, but virsh blockresize is never run for the running domain. The per-hypervisor checks in the same method (XenServer can only resize a stopped VM's disk; on KVM the VM's host must be Up and Enabled) are skipped for the same reason.
Other paths already treat system VM volumes differently:
- volume snapshots of system VM volumes are refused;
- attach and detach accept only user VMs;
- a ROOT resize through a new disk offering is refused unless the VM is Stopped.
The size-only path has no such check.
versions
4.22, and main.
The steps to reproduce the bug
Seen on KVM with Ceph RBD primary storage:
- Take a running virtual router whose ROOT disk offering is not size-strict.
- Call
resizeVolume id=<router ROOT volume> size=<larger size in GB>. - The call succeeds.
listVolumesandrbd infoshow the new size. - On the host,
virsh domblkinfo <router> vdastill shows the old size, and so doeslsblkin the router. The new size only appears after the router is restarted.
What to do about it?
Refuse to resize the volume of a system VM that is not Stopped, with an error telling the admin to stop it first. Resizing it while it is stopped keeps working as before, and the VM sees the new size when it starts.
Doing the resize live instead would mean running the system VM's resize through the VM work queue and notifying the hypervisor, as is done for user VMs, and checking that on each hypervisor. Refusing is the smaller, safer change.
- 主要言語
- Java
- スター
- 3.1k
- フォーク
- 1.4k
- 平均マージ
- 6日 20時間
- マージ済み PR(30日)
- 17
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/cloudstack のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/cloudstack#14633 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/cloudstack#14631 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
apache/cloudstack#14625 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
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 日以内に返信
-
[Hardening] F-21: Base64-Encoded User Data Containing Plain Text Passwords in DB.対応中かも @DaanHoogland が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/cloudstack#14530 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
apache/cloudstack の issue をすべて見る
似ている issue
-
type: dependency-upgrade
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
spring-projects/spring-graphql#1556 ·
-
hermes-queue
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
chrisalunlloyd2-sudo/mindpalace#373 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
bug priority: lowest
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
SkriptLang/Skript#8953 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
quality-assurance
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
Paul-Austin-Oswego-CSC480-HCI521/gift-app#228 ·
メンテナーはふだん 1 日以内に返信