Bug 2077794 - Upgrading postgresql-jdbc package to 42.2.14-1 breaks ovirt-engine functionality
Summary: Upgrading postgresql-jdbc package to 42.2.14-1 breaks ovirt-engine functionality
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: Database.Core
Version: 4.5.0.8
Hardware: Unspecified
OS: Unspecified
high
high with 1 vote
Target Milestone: ovirt-4.5.0-1
: 4.5.0.8
Assignee: Eli Mesika
QA Contact: Guilherme Santos
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-04-22 09:22 UTC by Martin Perina
Modified: 2022-06-23 12:29 UTC (History)
8 users (show)

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
Clone Of:
Environment:
Last Closed: 2022-05-25 07:23:06 UTC
oVirt Team: Infra
Embargoed:
mperina: ovirt-4.5+
mperina: exception+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github oVirt ovirt-dependencies pull 9 0 None Waiting on Customer [RFE]Gnome Login 2022-05-26 19:44:27 UTC
Github oVirt ovirt-engine issues 334 0 None open Upgrade postgresql-jdbc to 42.2.14-1.el8 (last) broke engine 2022-05-06 09:14:12 UTC
Github oVirt ovirt-engine pull 322 0 None open Upgrade postgresql-jdbc and spring-jdbc versions 2022-05-02 10:10:32 UTC
Github oVirt ovirt-engine pull 362 0 None open Backport jdbc 2022-05-10 14:46:54 UTC
Red Hat Issue Tracker RHV-45851 0 None None None 2022-04-22 09:30:22 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.