Posted in: VMware

vpxd service crashes with ODBC error “ERROR: integer out of range” on vCenter 6.5

vpxd service may crash due to out of range integer value for surr_key after long usage

vpxd log will show error message like below :-
[Vdb::IsRecoverableErrorCode] Unable to recover from HY000:110
2020-06-12T19:46:47.037Z error vpxd[7FD1CE34C700] [[email protected] sub=Default opID=HostSync-host-39197-3811cb39] [VdbStatement] SQLError was thrown: “ODBC error: (22003) – ERROR: integer out of range;
–> Error while executing the query” is returned when executing SQL statement “INSERT INTO VPX_IP_ADDRESS (ENTITY_ID, DEVICE_ID, IP_ADDRESS) VALUES (?, ?, ?)”

2020-06-12T19:46:47.050Z error vpxd[7FD1CE34C700] [[email protected] sub=Default opID=HostSync-host-39197-3811cb39] Alert:[email protected] bora/vpx/vpxd/invtHostCnx.cpp:4079
–> Backtrace:
–> [backtrace begin] product: VMware VirtualCenter, version: 6.5.0, build: build-11347054, tag: vpxd, cpu: x86_64, os: linux, buildType: release
–> backtrace[00] libvmacore.so[0x002B7A64]: Vmacore::System::Stacktrace::CaptureFullWork(unsigned int)
–> backtrace[01] libvmacore.so[0x001B2512]: Vmacore::System::SystemFactoryImpl::CreateBacktrace(Vmacore::Ref&)
–> backtrace[02] libvmacore.so[0x001793A9]: Vmacore::Service::Alert(char const, char const, int)

–> backtrace[03] vpxd[0x007A8721]
–> backtrace[04] vpxd[0x0073E6ED]
–> backtrace[05] vpxd[0x0073DC62]
–> backtrace[06] vpxd[0x00740119]
–> backtrace[07] vpxd[0x0074545A]
–> backtrace[08] libvmacore.so[0x0023C50B]
–> backtrace[09] libvmacore.so[0x0023C7F2]
–> [backtrace end]

Resolution : Connect to database and run below query to set data type to bigint on column surr_key column in vpx_ip_address table :

ALTER TABLE vpx_ip_address ALTER COLUMN surr_key type bigint;

start the vpxd service using below command :
# service-control –start vmware-vpxd

NOTE :
Connect the vPostgres database on Windows vCenter :-
Get the password from vcdb.properties
C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\vcdb.properties

Run below command to connect with vPostgres db
C:\Program Files\VMware\vCenter Server\vPostgres\bin\psql.exe -d VCDB -U vc

Connect with vPostgres datbase on vCenter Appliance :-
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres

Connect to SQL database using SQL Studio

This issue has been fixed in vCenter 6.7.