vmware: error trying to store hypervisor_version as string in using postgresql
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| OpenStack Compute (nova) |
High
|
Gary Kotton | ||
| Havana |
High
|
Tracy Jones | ||
| VMwareAPI-Team |
Critical
|
Tracy Jones |
Bug Description
Hi,
I am trying to use VMware hypervisor ESXi 5.0.0 as a compute resource in OpenStack 2013.1.1. The driver being used is "•vmwareapi.
In the compute node, I am seeing the below error
2013-06-26 17:45:27.532 10253 AUDIT nova.compute.
2013-06-26 17:45:27.532 10253 AUDIT nova.compute.
2013-06-26 17:45:27.533 10253 AUDIT nova.compute.
2013-06-26 17:45:27.533 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.534 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.534 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.566 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.567 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.567 10253 DEBUG nova.openstack.
2013-06-26 17:45:27.597 10253 CRITICAL nova [-] Remote error: DBError (DataError) invalid input syntax for integer: "5.0.0"
LINE 1: ..., 7, 24, 147445, 55808, 0, 512, 0, 'VMware ESXi', '5.0.0', '...
'INSERT INTO compute_nodes (created_at, updated_at, deleted_at, deleted, service_id, vcpus, memory_mb, local_gb, vcpus_used, memory_mb_used, local_gb_used, hypervisor_type, hypervisor_version, hypervisor_
[u'Traceback (most recent call last):\n', u' File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova Traceback (most recent call last):
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/bin/
2013-06-26 17:45:27.597 10253 TRACE nova service.wait()
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova _launcher.wait()
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova super(ServiceLa
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova service.wait()
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return self._exit_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return hubs.get_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return self.greenlet.
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova result = function(*args, **kwargs)
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova server.start()
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova self.manager.
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova self.update_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova rt.update_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova retval = f(*args, **kwargs)
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova self._sync_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova self._create(
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova self._create(
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova values)
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return self.conductor_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return self.call(context, msg, version='1.33')
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return rpc.call(context, self._get_
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova return _get_impl(
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova rpc_amqp.
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova rv = list(rv)
2013-06-26 17:45:27.597 10253 TRACE nova File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova raise result
2013-06-26 17:45:27.597 10253 TRACE nova RemoteError: Remote error: DBError (DataError) invalid input syntax for integer: "5.0.0"
2013-06-26 17:45:27.597 10253 TRACE nova LINE 1: ..., 7, 24, 147445, 55808, 0, 512, 0, 'VMware ESXi', '5.0.0', '...
2013-06-26 17:45:27.597 10253 TRACE nova ^
2013-06-26 17:45:27.597 10253 TRACE nova 'INSERT INTO compute_nodes (created_at, updated_at, deleted_at, deleted, service_id, vcpus, memory_mb, local_gb, vcpus_used, memory_mb_used, local_gb_used, hypervisor_type, hypervisor_version, hypervisor_
2013-06-26 17:45:27.597 10253 TRACE nova [u'Traceback (most recent call last):\n', u' File "/usr/lib/
2013-06-26 17:45:27.597 10253 TRACE nova
Is this a bug with OpenStack?
Thank you,
Pragadees
This is caused since the hypervisor_version in the compute_nodes table is an Integer field and we are trying to push 5.0.0. This fails is some DBs like postgresql. Needs a fix in the VMware driver to remove the period and put back the version as 500 or 5.00
Changed in nova: | |
assignee: | nobody → Yaguang Tang (heut2008) |
Fix proposed to branch: master
Review: https:/
Changed in nova: | |
status: | New → In Progress |
tags: | added: grizzly-backport-potential |
David Jia (jiataotj) wrote : Re: vmware Hyper doesn't report hypervisor version correctly to database | #4 |
I think field "hypervisor_
Changed in nova: | |
importance: | Undecided → Wishlist |
Shawn Hartsock (hartsock) wrote : | #5 |
I've opened this bug instead:
https:/
I would rather the database table definition were changed to match working data types.
Changed in nova: | |
status: | In Progress → Won't Fix |
tags: | removed: grizzly-backport-potential |
Changed in nova: | |
importance: | Wishlist → Critical |
tags: | added: grizzly-backport-potential havana-backport-potential |
Changed in nova: | |
assignee: | Yaguang Tang (heut2008) → Gary Kotton (garyk) |
milestone: | none → icehouse-1 |
Changed in nova: | |
importance: | Critical → Undecided |
Changed in nova: | |
status: | Won't Fix → In Progress |
importance: | Undecided → Critical |
Joe Gordon (jogo) wrote : | #7 |
Gary, now that I have re-read everything I see that this was mistakenly set to won't fix. But when fixing that can you please explain why.
Also I don't think this is worth a critical level, it may be critical to vmware but its not critical to nova (but I won't touch the importance anyway).
So tell me if I am wrong: the won't fix was to the original solution, of changing the DB entry into a string. Instead you just converted the value that was being added from a string to an int. Which is the correct fix.
Changed in openstack-vmwareapi-team: | |
status: | New → In Progress |
importance: | Undecided → Critical |
Changed in nova: | |
importance: | Critical → High |
summary: |
- vmware Hyper doesn't report hypervisor version correctly to database + vmware: error when using postgresql as DB |
Changed in openstack-vmwareapi-team: | |
importance: | Critical → High |
Changed in openstack-vmwareapi-team: | |
importance: | High → Critical |
summary: |
- vmware: error when using postgresql as DB + vmware: error trying to store hypervisor_version as string in using + postgresql |
Reviewed: https:/
Committed: http://
Submitter: Jenkins
Branch: master
commit e2efa57ab2fb03b
Author: Gary Kotton <email address hidden>
Date: Tue Oct 22 05:51:09 2013 -0700
VMware: enable driver to work with postgres database
The hypervisor version is expected to be an integer and not
a string.
Change-Id: Ifac9ca34801914
Closes-Bug: #1195139
Changed in nova: | |
status: | In Progress → Fix Committed |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in openstack-vmwareapi-team: | |
status: | In Progress → Fix Released |
tags: | removed: grizzly-backport-potential |
Fix proposed to branch: stable/havana
Review: https:/
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: stable/havana
commit 00d18827aaf780e
Author: Gary Kotton <email address hidden>
Date: Tue Oct 22 05:51:09 2013 -0700
VMware: enable driver to work with postgres database
The hypervisor version is expected to be an integer and not
a string. The nova/utils.py change is part of the following
patch but is not being backported as it adds new feature
functionality and is therefore not acceptable for backport
https:/
Closes-Bug: #1195139
(cherry picked from commit e2efa57ab2fb03b
Conflicts:
nova/
nova/
Change-Id: Ifac9ca34801914
tags: | added: in-stable-havana |
Changed in openstack-vmwareapi-team: | |
assignee: | nobody → Tracy Jones (tjones-i) |
Changed in nova: | |
milestone: | icehouse-1 → 2014.1 |
reported by impoundbull