← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1622545] [NEW] archive_deleted_rows isn't archiving instances

 

Public bug reported:

Running "nova-manage archive_deleted_rows ..." clears out little or none
of the deleted nova instances

for example running the command several times

$ nova-manage --debug db archive_deleted_rows --max_rows 100000
--verbose

I get
+--------------------------+-------------------------+
| Table                    | Number of Rows Archived |
+--------------------------+-------------------------+
| block_device_mapping     | 10108                   |
| instance_actions         | 31838                   |
| instance_actions_events  | 2                       |
| instance_extra           | 10108                   |
| instance_faults          | 459                     |
| instance_info_caches     | 10108                   |
| instance_metadata        | 6037                    |
| instance_system_metadata | 17883                   |
| reservations             | 9                       |
+--------------------------+-------------------------+

the only way I've been able to get an instances archived is to lower the
--max-rows parameter, but this only deletes a small number of the
instances and sometimes doesn't archive any at all

In my nova-mange.log I have the following error

2016-09-12 09:22:21.658 17603 WARNING nova.db.sqlalchemy.api [-]
IntegrityError detected when archiving table instances:
(pymysql.err.IntegrityError) (1451, u'Cannot delete or update a parent
row: a foreign key constraint fails (`nova`.`instance_extra`, CONSTRAINT
`instance_extra_instance_uuid_fkey` FOREIGN KEY (`instance_uuid`)
REFERENCES `instances` (`uuid`))') [SQL: u'DELETE FROM instances WHERE
instances.id in (SELECT T1.id FROM (SELECT instances.id \nFROM instances
\nWHERE instances.deleted != %s ORDER BY instances.id \n LIMIT %s) as
T1)'] [parameters: (0, 787)]


mysql -e 'select count(*) from instances where deleted_at is not NULL;' nova
+----------+
| count(*) |
+----------+
|    70829 |
+----------+

I'm running mitaka with this patch installed
https://review.openstack.org/#/c/326730/1

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1622545

Title:
  archive_deleted_rows isn't archiving instances

Status in OpenStack Compute (nova):
  New

Bug description:
  Running "nova-manage archive_deleted_rows ..." clears out little or
  none of the deleted nova instances

  for example running the command several times

  $ nova-manage --debug db archive_deleted_rows --max_rows 100000
  --verbose

  I get
  +--------------------------+-------------------------+
  | Table                    | Number of Rows Archived |
  +--------------------------+-------------------------+
  | block_device_mapping     | 10108                   |
  | instance_actions         | 31838                   |
  | instance_actions_events  | 2                       |
  | instance_extra           | 10108                   |
  | instance_faults          | 459                     |
  | instance_info_caches     | 10108                   |
  | instance_metadata        | 6037                    |
  | instance_system_metadata | 17883                   |
  | reservations             | 9                       |
  +--------------------------+-------------------------+

  the only way I've been able to get an instances archived is to lower
  the --max-rows parameter, but this only deletes a small number of the
  instances and sometimes doesn't archive any at all

  In my nova-mange.log I have the following error

  2016-09-12 09:22:21.658 17603 WARNING nova.db.sqlalchemy.api [-]
  IntegrityError detected when archiving table instances:
  (pymysql.err.IntegrityError) (1451, u'Cannot delete or update a parent
  row: a foreign key constraint fails (`nova`.`instance_extra`,
  CONSTRAINT `instance_extra_instance_uuid_fkey` FOREIGN KEY
  (`instance_uuid`) REFERENCES `instances` (`uuid`))') [SQL: u'DELETE
  FROM instances WHERE instances.id in (SELECT T1.id FROM (SELECT
  instances.id \nFROM instances \nWHERE instances.deleted != %s ORDER BY
  instances.id \n LIMIT %s) as T1)'] [parameters: (0, 787)]

  
  mysql -e 'select count(*) from instances where deleted_at is not NULL;' nova
  +----------+
  | count(*) |
  +----------+
  |    70829 |
  +----------+

  I'm running mitaka with this patch installed
  https://review.openstack.org/#/c/326730/1

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1622545/+subscriptions


Follow ups