Kamon icon indicating copy to clipboard operation
Kamon copied to clipboard

Support for postgresql 42.7.2 - java.lang.NoSuchFieldError: checkConnectionQuery

Open vadimbakaev opened this issue 1 year ago • 2 comments

It seems that checkConnectionQuery is no longer available from version 42.7.2

See the release notes: https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.2

https://github.com/pgjdbc/pgjdbc/pull/3101

It looks like it is used in this place: https://github.com/kamon-io/Kamon/blob/25386b2598c817ee939c5d568e77389eb28a2b39/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementInstrumentation.scala#L192

java.lang.NoSuchFieldError: checkConnectionQuery
	at org.postgresql.jdbc.PgConnection.getCheckConnectionStatement(PgConnection.java)
	at kamon.instrumentation.jdbc.PgConnectionIsAliveAdvice$.enter(StatementInstrumentation.scala:199)
	at org.postgresql.jdbc.PgConnection.isValid(PgConnection.java:1520)
	at com.zaxxer.hikari.pool.PoolBase.checkValidationSupport(PoolBase.java:460)
	at com.zaxxer.hikari.pool.PoolBase.checkDriverSupport(PoolBase.java:443)
	at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:412)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98)
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:80)
	...

Version 42.7.2 has security fixes and Kamon blocks the migration, could you take a look, please?

vadimbakaev avatar Feb 21 '24 14:02 vadimbakaev

We are facing the same problem here. The applications refuse to start with the new postgresql driver version.

Dichotomia avatar Feb 22 '24 12:02 Dichotomia

This is the workaround for us currently, so that we can update to the fixed pgsql.

# reference.conf
kanela.modules.jdbc.enabled = no

Ofc this means, that we currently have no instrumentation for jdbc, but at least fixed the vuln and all other kamon stuff still works.

choffmeister avatar Feb 23 '24 12:02 choffmeister

Just ran into this myself. Will push out a fix

hughsimpson avatar Mar 01 '24 17:03 hughsimpson

Fix merged. Will cut a release either later today or tomorrow

hughsimpson avatar Mar 01 '24 18:03 hughsimpson

Will need @ivantopo in order to release because reasons. Will leave this issue open until it's successfully out

hughsimpson avatar Mar 02 '24 10:03 hughsimpson

Resolved as of v2.7.1

hughsimpson avatar Mar 03 '24 18:03 hughsimpson