This was seen by a few people in diablo. There is an odd workaround which we could put in to diablo that was discovered by HP:
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index b5f30a1..034e0b4 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -669,7 +669,7 @@ class FixedIp(BASE, NovaBase): id = Column(Integer, primary_key=True) address = Column(String(255)) network_id = Column(Integer, ForeignKey('networks.id'), nullable=True) - network = relationship(Network, backref=backref('fixed_ips')) + network = relationship(Network, backref=backref('fixed_ips'), lazy='joined') virtual_interface_id = Column(Integer, ForeignKey('virtual_interfaces.id'), nullable=True) virtual_interface = relationship(VirtualInterface,
Unfortunately, we could never figure out exactly why this fixes it, as it is very hard to reproduce consistently except under load. The offending relationship has been removed in essex so it no longer applies.
This was seen by a few people in diablo. There is an odd workaround which we could put in to diablo that was discovered by HP:
diff --git a/nova/ db/sqlalchemy/ models. py b/nova/ db/sqlalchemy/ models. py db/sqlalchemy/ models. py db/sqlalchemy/ models. py 'networks. id'), nullable=True) Network, backref= backref( 'fixed_ ips')) Network, backref= backref( 'fixed_ ips'), lazy='joined') interface_ id = Column(Integer, ForeignKey( 'virtual_ interfaces. id'),
nullable= True) interface = relationship( VirtualInterfac e,
index b5f30a1..034e0b4 100644
--- a/nova/
+++ b/nova/
@@ -669,7 +669,7 @@ class FixedIp(BASE, NovaBase):
id = Column(Integer, primary_key=True)
address = Column(String(255))
network_id = Column(Integer, ForeignKey(
- network = relationship(
+ network = relationship(
virtual_
virtual_
Unfortunately, we could never figure out exactly why this fixes it, as it is very hard to reproduce consistently except under load. The offending relationship has been removed in essex so it no longer applies.