Details
-
Type:
Bug
-
Status: Resolved (View Workflow)
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: Meridian-2016.1.17, Meridian-2017.1.12, Meridian-2018.1.2, 23.0.0, Meridian-2015.1.11
-
Component/s: None
-
Security Level: Default (Default Security Scheme)
-
Labels:
-
Sprint:Horizon - October 10th 2018
Description
PostgreSQL's OID type is a 32-bit unsigned integer, but by default Java's int type is 31-bit signed. For long-running databases, these OID columns overflow and cause failures in InstallerDb.
org.postgresql.util.PSQLException: Bad value for type int : 2148271220 at org.postgresql.jdbc.PgResultSet.toInt(PgResultSet.java:2829) at org.postgresql.jdbc.PgResultSet.getInt(PgResultSet.java:2050) at org.opennms.core.db.install.InstallerDb.getConstraintsFromDB(InstallerDb.java:1172) at org.opennms.core.db.install.InstallerDb.getTableFromDB(InstallerDb.java:1029) at org.opennms.core.db.install.InstallerDb.createTables(InstallerDb.java:831) at org.opennms.core.test.db.InstallerDbIT.testCreateTablesTwice(InstallerDbIT.java:147)