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

Chris Friesen chris.friesen at windriver.com
Sat Mar 15 23:36:45 UTC 2014


On 03/15/2014 04:29 AM, Sean Dague wrote:
> On 03/15/2014 02:49 AM, Chris Friesen wrote:
>> 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?
>
> Yes, postgresql is strongly typed with it's data. That's a valid bug you
> found, fixes appreciated!

Bug report is open at "https://bugs.launchpad.net/nova/+bug/1292963"

Patch is up for review at "https://review.openstack.org/80808", comments 
welcome.

Chris



More information about the OpenStack-dev mailing list