After upgrading postgresql-jdbc package to 42.2.14-1 and restarting ovirt-engine service, ovirt-engine service won't start properly and following error appears in server.log: org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature - no procedure/function/signature for '<PROCEDURE NAME' At the moment postgresql-jdbc 42.2.14-1 is available only on CentOS Stream, but this version break all oVirt 4.4/4.5 versions. The workaround is to downgrade postgresql-jdbc package to previous version
Here are detailed workaround instructions: 1. If you have already upgraded to postgresql-jdbc-42.2.14-1, please downgrade to previous version: $ dnf downgrade postgresql-jdbc $ systemctl restart ovirt-engine 2. If you are going to upgrade your oVirt Engine machine, please exclude postgresql-jdbc package from upgrades: $ dnf update -x postgresql-jdbc
As a short term plan we need to rely on the last working version (42.2.10) provided by ovirt-dependencies RPM to minimize issues around package upgrades. Long term plan is to working with upstream community to fix this regression in PostgreSQL JDBC driver.
The changes required are: 1. change postgresql-jdbc to use version 42.2.14 2. change spring-jdbc to use version 5.2.10.RELEASE 3. Change *DAOImpl*.java code for each Function that uses OUT parameter use SimpleJdbcCallsHandler. executeModification(final String procedureName, final MapSqlParameterSource paramSource, String outParamName, Integer outParamType) instead of: executeModification(final String procedureName, final MapSqlParameterSource paramSource)
Adding the line: exclude=postgresql-jdbc-42.2.14-1.el8 to /etc/yum.repos.d/CentOS-Stream-AppStream.rep in the ovirt engine VM is a good idea as well
We have for testing only ovirt-engine.4.5.0.7, please move to ON_QA when the 4.5.0.8 will be delivered to QE.
released. Please refrain from moving bugs to MODIFIED when builds exist.