Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2077794

Summary: Upgrading postgresql-jdbc package to 42.2.14-1 breaks ovirt-engine functionality
Product: [oVirt] ovirt-engine Reporter: Martin Perina <mperina>
Component: Database.CoreAssignee: Eli Mesika <emesika>
Status: CLOSED CURRENTRELEASE QA Contact: Guilherme Santos <gdeolive>
Severity: high Docs Contact:
Priority: high    
Version: 4.5.0.8CC: 47b13, baumanmo, bugs, clint, jean-louis, lleistne, lsvaty, michal.skrivanek
Target Milestone: ovirt-4.5.0-1Flags: mperina: ovirt-4.5+
mperina: exception+
Target Release: 4.5.0.8   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovirt-engine-4.5.0.8 Doc Type: Release Note
Doc Text:
oVirt Engine now requires postgresql-jdbc >= 42.2.14 and spring-framework >= 5.3.19
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-25 07:23:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Infra RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Martin Perina 2022-04-22 09:22:47 UTC
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

Comment 2 Eli Mesika 2022-04-25 07:27:05 UTC
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

Comment 4 Martin Perina 2022-04-27 07:19:24 UTC
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.

Comment 7 Eli Mesika 2022-05-02 10:12:14 UTC
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)

Comment 10 Clint Goudie 2022-05-08 15:08:39 UTC
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

Comment 11 Lucie Leistnerova 2022-05-24 10:14:32 UTC
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.

Comment 13 Michal Skrivanek 2022-05-25 07:23:06 UTC
released. Please refrain from moving bugs to MODIFIED when builds exist.