internal neutron server error on tempest VolumesActionsTest
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Armando Migliaccio | ||
Havana |
Fix Released
|
High
|
Armando Migliaccio |
Bug Description
Logstash query:
@message:"DBError: (IntegrityError) null value in column \"network_id\" violates not-null constraint" AND @fields.
http://
http://
2013-10-14 10:16:28.034 | =======
2013-10-14 10:16:28.034 | FAIL: tearDownClass (tempest.
2013-10-14 10:16:28.035 | tearDownClass (tempest.
2013-10-14 10:16:28.035 | -------
2013-10-14 10:16:28.035 | _StringException: Traceback (most recent call last):
2013-10-14 10:16:28.035 | File "tempest/
2013-10-14 10:16:28.036 | super(VolumesAc
2013-10-14 10:16:28.036 | File "tempest/
2013-10-14 10:16:28.036 | cls.isolated_
2013-10-14 10:16:28.037 | File "tempest/
2013-10-14 10:16:28.037 | self._clear_
2013-10-14 10:16:28.037 | File "tempest/
2013-10-14 10:16:28.038 | self._clear_
2013-10-14 10:16:28.038 | File "tempest/
2013-10-14 10:16:28.038 | net_client.
2013-10-14 10:16:28.038 | File "tempest/
2013-10-14 10:16:28.039 | resp, body = self.delete(uri, self.headers)
2013-10-14 10:16:28.039 | File "tempest/
2013-10-14 10:16:28.039 | return self.request(
2013-10-14 10:16:28.040 | File "tempest/
2013-10-14 10:16:28.040 | resp, resp_body)
2013-10-14 10:16:28.040 | File "tempest/
2013-10-14 10:16:28.041 | raise exceptions.
2013-10-14 10:16:28.041 | ComputeFault: Got compute fault
2013-10-14 10:16:28.041 | Details: {"NeutronError": "Request Failed: internal server error while processing your request."}
Changed in neutron: | |
assignee: | nobody → Armando Migliaccio (armando-migliaccio) |
status: | New → Confirmed |
summary: |
- DBError: (IntegrityError) null value in column "network_id" violates - not-null constraint + internal neutron server error on tempest VolumesActionsTest |
Changed in neutron: | |
status: | Confirmed → In Progress |
Changed in neutron: | |
status: | In Progress → Fix Committed |
tags: | added: havana-backport-potential |
Changed in neutron: | |
milestone: | none → icehouse-1 |
importance: | Undecided → High |
Changed in neutron: | |
status: | Fix Committed → Fix Released |
Changed in neutron: | |
milestone: | icehouse-1 → 2014.1 |
This snippet of log is critical to understanding why we get an Integrity error on network delete:
2013-11-01 05:45:29.608 460 DEBUG neutron. plugins. ml2.plugin [-] Ports to auto-delete: [] delete_network /opt/stack/ new/neutron/ neutron/ plugins/ ml2/plugin. py:387 plugins. ml2.plugin [-] Subnets to auto-delete: [] delete_network /opt/stack/ new/neutron/ neutron/ plugins/ ml2/plugin. py:401 plugins. ml2.plugin [-] Deleting network record delete_network /opt/stack/ new/neutron/ neutron/ plugins/ ml2/plugin. py:411 db.db_base_ plugin_ v2 [-] Generated mac for network 3022a674- 2f18-4120- abde-86192d2398 79 is fa:16:3e:14:92:66 _generate_mac /opt/stack/ new/neutron/ neutron/ db/db_base_ plugin_ v2.py:302 plugins. ml2.plugin [-] Committing transaction delete_network /opt/stack/ new/neutron/ neutron/ plugins/ ml2/plugin. py:420
2013-11-01 05:45:29.610 460 DEBUG neutron.
2013-11-01 05:45:29.627 460 DEBUG neutron.
2013-11-01 05:45:29.629 460 DEBUG neutron.
2013-11-01 05:45:29.631 460 DEBUG neutron.
The trace about mac generation before committing the network delete is due to the dhcp port being created concurrently by the the dhcp agent. There are many ways in which this can be addressed, for instance, marking the network for deletion and ensuring that the dhcp does not create the port in the first place. However, since adding a new status to the network may be more convoluted and require a more thorough inspection of the code, it may be safer to just catch the integrity violation and try deleting the network again after the port gets re-read by the delete method.