yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #26265
[Bug 1333145] Re: quota-usage error in soft-delete
** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => kilo-1
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1333145
Title:
quota-usage error in soft-delete
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
condition: reclaim_instance_interval > 0 in nova.conf
I am testing soft-delete , found that quota_usages table will lead to error
result. when an instance was soft-deleted , before it was deleted completely by period task i soft-delete it again, the quato_usages table will reduce double resource of this instance.
the reason is that every execution of soft-delete instance, the
reservation will commit.
how to fixed it: we should make reservations=None when
instance.vm_state='soft-deleted'.
how to reproduct it:
i am project_id='30528b0d602c4a9c9d8b4cd3d416d710', and I have an
instance:
ubuntu@xfolsom:/opt/stack/nova$ nova list
+--------------------------------------+------+--------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------+--------+------------+-------------+------------------+
| 6f6c1258-6eda-43f1-9531-7a4eb0b44724 | test | ACTIVE | - | Running | private=10.0.0.2 |
+--------------------------------------+------+--------+------------+-------------+------------------+
1.first select from quota_usage, the result is :
mysql> select * from quota_usages;
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| created_at | updated_at | deleted_at | id | project_id | resource | in_use | reserved | until_refresh | deleted | user_id |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| 2014-06-20 08:24:35 | 2014-06-23 08:35:03 | NULL | 1 | 30528b0d602c4a9c9d8b4cd3d416d710 | instances | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:35:03 | NULL | 2 | 30528b0d602c4a9c9d8b4cd3d416d710 | ram | 64 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:35:03 | NULL | 3 | 30528b0d602c4a9c9d8b4cd3d416d710 | cores | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-20 08:24:35 | NULL | 4 | 30528b0d602c4a9c9d8b4cd3d416d710 | security_groups | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:36 | 2014-06-23 03:56:03 | NULL | 5 | 30528b0d602c4a9c9d8b4cd3d416d710 | fixed_ips | 1 | 0 | NULL | 0 | NULL |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
5 rows in set (0.00 sec)
2.using nova-network, set reclaim_instance_interval=600 in nova.conf.
3.nova delete 6f6c1258-6eda-43f1-9531-7a4eb0b44724
4. select from quota_usages, result is :
mysql> select * from quota_usages;
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| created_at | updated_at | deleted_at | id | project_id | resource | in_use | reserved | until_refresh | deleted | user_id |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| 2014-06-20 08:24:35 | 2014-06-23 08:42:30 | NULL | 1 | 30528b0d602c4a9c9d8b4cd3d416d710 | instances | 0 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:42:30 | NULL | 2 | 30528b0d602c4a9c9d8b4cd3d416d710 | ram | 0 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:42:30 | NULL | 3 | 30528b0d602c4a9c9d8b4cd3d416d710 | cores | 0 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-20 08:24:35 | NULL | 4 | 30528b0d602c4a9c9d8b4cd3d416d710 | security_groups | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:36 | 2014-06-23 03:56:03 | NULL | 5 | 30528b0d602c4a9c9d8b4cd3d416d710 | fixed_ips | 1 | 0 | NULL | 0 | NULL |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
5 rows in set (0.00 sec)
5. nova delete 6f6c1258-6eda-43f1-9531-7a4eb0b44724 again
then select from quota_usages, result is :
mysql> select * from quota_usages;
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| created_at | updated_at | deleted_at | id | project_id | resource | in_use | reserved | until_refresh | deleted | user_id |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| 2014-06-20 08:24:35 | 2014-06-23 08:43:38 | NULL | 1 | 30528b0d602c4a9c9d8b4cd3d416d710 | instances | -1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:43:38 | NULL | 2 | 30528b0d602c4a9c9d8b4cd3d416d710 | ram | -64 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:43:38 | NULL | 3 | 30528b0d602c4a9c9d8b4cd3d416d710 | cores | -1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-20 08:24:35 | NULL | 4 | 30528b0d602c4a9c9d8b4cd3d416d710 | security_groups | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:36 | 2014-06-23 03:56:03 | NULL | 5 | 30528b0d602c4a9c9d8b4cd3d416d710 | fixed_ips | 1 | 0 | NULL | 0 | NULL |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
5 rows in set (0.00 sec)
oh my god!!! instance in_use is -1 and ram in_use is -64Mb, do you
think this is right?
6.nova restore 6f6c1258-6eda-43f1-9531-7a4eb0b44724
now the db result is:
mysql> select * from quota_usages;
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| created_at | updated_at | deleted_at | id | project_id | resource | in_use | reserved | until_refresh | deleted | user_id |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
| 2014-06-20 08:24:35 | 2014-06-23 08:44:41 | NULL | 1 | 30528b0d602c4a9c9d8b4cd3d416d710 | instances | 2 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:44:41 | NULL | 2 | 30528b0d602c4a9c9d8b4cd3d416d710 | ram | 128 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-23 08:44:41 | NULL | 3 | 30528b0d602c4a9c9d8b4cd3d416d710 | cores | 2 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:35 | 2014-06-20 08:24:35 | NULL | 4 | 30528b0d602c4a9c9d8b4cd3d416d710 | security_groups | 1 | 0 | NULL | 0 | e522bb6fecaa4a69b6d7df69211dab13 |
| 2014-06-20 08:24:36 | 2014-06-23 03:56:03 | NULL | 5 | 30528b0d602c4a9c9d8b4cd3d416d710 | fixed_ips | 1 | 0 | NULL | 0 | NULL |
+---------------------+---------------------+------------+----+----------------------------------+-----------------+--------+----------+---------------+---------+----------------------------------+
5 rows in set (0.00 sec)
obviously, the result in db is error.now I have only one instance, but
in db, i have used 2 instances, 2 cores , 128Mb ram and so on.
The correct way is that we should not allow deleting instance which
status in soft-delete.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1333145/+subscriptions
References