[openstack-dev] [nova] [bug?] possible postgres/mysql incompatibility in InstanceGroup.get_hosts()

Chris Friesen chris.friesen at windriver.com
Sat Mar 15 06:49:46 UTC 2014


Hi,

I'm trying to run InstanceGroup.get_hosts() on a havana installation 
that uses postgres.  When I run the code, I get the following error:


RemoteError: Remote error: ProgrammingError (ProgrammingError) operator 
does not exist: timestamp without time zone ~ unknown
2014-03-14 09:58:57.193 8164 TRACE nova.compute.manager [instance: 
83439206-3a88-495b-b6c7-6aea1287109f] LINE 3: ....uuid != instances.uuid 
AND (instances.deleted_at ~ 'None') ...
2014-03-14 09:58:57.193 8164 TRACE nova.compute.manager [instance: 
83439206-3a88-495b-b6c7-6aea1287109f]                            ^
2014-03-14 09:58:57.193 8164 TRACE nova.compute.manager [instance: 
83439206-3a88-495b-b6c7-6aea1287109f] HINT:  No operator matches the 
given name and argument type(s). You might need to add explicit type casts.


I'm not a database expert, but after doing some digging, it seems that 
the problem is this line in get_hosts():

filters = {'uuid': filter_uuids, 'deleted_at': None}

It seems that current postgres doesn't allow implicit casts.  If I 
change the line to:

filters = {'uuid': filter_uuids, 'deleted': 0}


Then it seems to work.  Is this change valid?


Chris



More information about the OpenStack-dev mailing list