-
Bug
-
Resolution: Fixed
-
High
-
5.3.1, 4.14.9
-
Severity 2 - Major
-
Accessing plugin settings on Oracle can fail with "Protocol violation" errors due to a bug in the 12.1.0.1 ojdbc7 driver.
An example, from a server running 4.14.5:
2017-08-28 23:58:47,870 WARN [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper SQL Error: 17401, SQLState: 99999 2017-08-28 23:58:47,870 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper Protocol violation: [ 114, ] 2017-08-28 23:58:47,871 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.s.t.support.TransactionTemplate Application exception overridden by rollback exception org.hibernate.exception.GenericJDBCException: could not extract ResultSet at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) at org.hibernate.persister.entity.AbstractEntityPersister.loadEntityIdByNaturalId(AbstractEntityPersister.java:5046) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.loadFromDatasource(DefaultResolveNaturalIdEventListener.java:124) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.resolveNaturalId(DefaultResolveNaturalIdEventListener.java:91) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.onResolveNaturalId(DefaultResolveNaturalIdEventListener.java:57) at org.hibernate.internal.SessionImpl.fireResolveNaturalId(SessionImpl.java:1115) at org.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:176) at org.hibernate.internal.SessionImpl$BaseNaturalIdLoadAccessImpl.resolveNaturalId(SessionImpl.java:2645) at org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl.load(SessionImpl.java:2758) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.getByKey(HibernatePluginSettingDao.java:103) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.get(HibernatePluginSettingDao.java:80) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.lambda$getActual$0(DefaultPluginSettings.java:41) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.getActual(DefaultPluginSettings.java:41) at com.atlassian.sal.core.pluginsettings.AbstractStringPluginSettings.get(AbstractStringPluginSettings.java:115) ... some frames trimmed Caused by: java.sql.SQLException: Protocol violation: [ 114, ] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ... 137 common frames omitted
(The number shown in brackets after "Protocol violation" is not constant.)
Workaround
No workaround is available. In case you are facing this issue, please upgrade to one of the versions containing the fix.
[BSERV-10106] Oracle "Protocol violation" errors when accessing plugin settings
Workflow | Original: Stash Workflow - Restricted [ 2429552 ] | New: JAC Bug Workflow v3 [ 3137299 ] |
Symptom Severity | Original: Major [ 14431 ] | New: Severity 2 - Major [ 15831 ] |
Description |
Original:
Accessing plugin settings on Oracle can fail with "Protocol violation" errors due to a bug in the 12.1.0.1 {{ojdbc7}} driver.
An example, from a server running 4.14.5: {noformat} 2017-08-28 23:58:47,870 WARN [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper SQL Error: 17401, SQLState: 99999 2017-08-28 23:58:47,870 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper Protocol violation: [ 114, ] 2017-08-28 23:58:47,871 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.s.t.support.TransactionTemplate Application exception overridden by rollback exception org.hibernate.exception.GenericJDBCException: could not extract ResultSet at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) at org.hibernate.persister.entity.AbstractEntityPersister.loadEntityIdByNaturalId(AbstractEntityPersister.java:5046) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.loadFromDatasource(DefaultResolveNaturalIdEventListener.java:124) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.resolveNaturalId(DefaultResolveNaturalIdEventListener.java:91) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.onResolveNaturalId(DefaultResolveNaturalIdEventListener.java:57) at org.hibernate.internal.SessionImpl.fireResolveNaturalId(SessionImpl.java:1115) at org.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:176) at org.hibernate.internal.SessionImpl$BaseNaturalIdLoadAccessImpl.resolveNaturalId(SessionImpl.java:2645) at org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl.load(SessionImpl.java:2758) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.getByKey(HibernatePluginSettingDao.java:103) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.get(HibernatePluginSettingDao.java:80) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.lambda$getActual$0(DefaultPluginSettings.java:41) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.getActual(DefaultPluginSettings.java:41) at com.atlassian.sal.core.pluginsettings.AbstractStringPluginSettings.get(AbstractStringPluginSettings.java:115) ... some frames trimmed Caused by: java.sql.SQLException: Protocol violation: [ 114, ] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ... 137 common frames omitted {noformat} (The number shown in brackets after "Protocol violation" is not constant.) |
New:
Accessing plugin settings on Oracle can fail with "Protocol violation" errors due to a bug in the 12.1.0.1 {{ojdbc7}} driver.
An example, from a server running 4.14.5: {noformat} 2017-08-28 23:58:47,870 WARN [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper SQL Error: 17401, SQLState: 99999 2017-08-28 23:58:47,870 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper Protocol violation: [ 114, ] 2017-08-28 23:58:47,871 ERROR [ajp-nio-9001-exec-75] *15THKEJx1438x303659x4 1rfct7u 171.70.124.198 "GET /mvc/error500 HTTP/1.1" o.s.t.support.TransactionTemplate Application exception overridden by rollback exception org.hibernate.exception.GenericJDBCException: could not extract ResultSet at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) at org.hibernate.persister.entity.AbstractEntityPersister.loadEntityIdByNaturalId(AbstractEntityPersister.java:5046) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.loadFromDatasource(DefaultResolveNaturalIdEventListener.java:124) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.resolveNaturalId(DefaultResolveNaturalIdEventListener.java:91) at org.hibernate.event.internal.DefaultResolveNaturalIdEventListener.onResolveNaturalId(DefaultResolveNaturalIdEventListener.java:57) at org.hibernate.internal.SessionImpl.fireResolveNaturalId(SessionImpl.java:1115) at org.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:176) at org.hibernate.internal.SessionImpl$BaseNaturalIdLoadAccessImpl.resolveNaturalId(SessionImpl.java:2645) at org.hibernate.internal.SessionImpl$NaturalIdLoadAccessImpl.load(SessionImpl.java:2758) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.getByKey(HibernatePluginSettingDao.java:103) at com.atlassian.stash.internal.plugin.HibernatePluginSettingDao.get(HibernatePluginSettingDao.java:80) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.lambda$getActual$0(DefaultPluginSettings.java:41) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at com.atlassian.stash.internal.plugin.DefaultPluginSettings.getActual(DefaultPluginSettings.java:41) at com.atlassian.sal.core.pluginsettings.AbstractStringPluginSettings.get(AbstractStringPluginSettings.java:115) ... some frames trimmed Caused by: java.sql.SQLException: Protocol violation: [ 114, ] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ... 137 common frames omitted {noformat} (The number shown in brackets after "Protocol violation" is not constant.) h3.Workaround No workaround is available. In case you are facing this issue, please upgrade to one of the versions containing the fix. |
Link | New: This issue duplicates BSERVDEV-16484 [ BSERVDEV-16484 ] |
Remote Link |
New:
This issue links to "Bitbucket Server › Pull Request Build › |
Remote Link |
New:
This issue links to "Bitbucket Server › Pull Request Build with Coverage › |
Remote Link |
New:
This issue links to "Bitbucket Server › Pull Request Build with Coverage › |
Remote Link |
New:
This issue links to "Bitbucket Server › Pull Request Build › |
Fix Version/s | New: 5.4.0 [ 73619 ] | |
Fix Version/s | New: 5.0.8 [ 74411 ] | |
Fix Version/s | New: 5.1.6 [ 74412 ] | |
Fix Version/s | New: 5.2.4 [ 74413 ] | |
Fix Version/s | New: 5.3.2 [ 74414 ] | |
Resolution | New: Fixed [ 1 ] | |
Status | Original: To be reviewed [ 10026 ] | New: Closed [ 6 ] |
The ojdbc7 driver has been updated to 12.1.0.2 for 5.0.8, 5.1.6, 5.2.4 and 5.3.2. For 5.4.0 we've upgraded to the ojdbc8 driver, version 12.2.0.1.
This driver update will not be backported to our 4.14.x line because it is not compatible with ActiveObjects 1.2.2 (5.0.0+ ship ActiveObjects 1.3.0 or newer).
Best regards,
Bryan Turner
Atlassian Bitbucket