Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-10106

Oracle "Protocol violation" errors when accessing plugin settings

      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

            Owen made changes -
            Workflow Original: Stash Workflow - Restricted [ 2429552 ] New: JAC Bug Workflow v3 [ 3137299 ]
            Owen made changes -
            Symptom Severity Original: Major [ 14431 ] New: Severity 2 - Major [ 15831 ]
            Caterina Curti made changes -
            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.
            Ben Stuart (Inactive) made changes -
            Link New: This issue duplicates BSERVDEV-16484 [ BSERVDEV-16484 ]
            Hendrik (Inactive) made changes -
            Remote Link New: This issue links to "Bitbucket Server › Pull Request Build › BSERV-10106-behumphreys-ojdbc8-real-db-profile (server-syd-bamboo)" [ 318049 ]
            Hendrik (Inactive) made changes -
            Remote Link New: This issue links to "Bitbucket Server › Pull Request Build with Coverage › BSERV-10106-behumphreys-ojdbc8-real-db-profile (server-syd-bamboo)" [ 318048 ]
            Bryan Turner (Inactive) made changes -
            Remote Link New: This issue links to "Bitbucket Server › Pull Request Build with Coverage › BSERV-10106-bturner-fix-source-build (server-syd-bamboo)" [ 317975 ]
            Bryan Turner (Inactive) made changes -
            Remote Link New: This issue links to "Bitbucket Server › Pull Request Build › BSERV-10106-bturner-fix-source-build (server-syd-bamboo)" [ 318029 ]
            Bryan Turner (Inactive) made changes -
            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 ]
            Bryan Turner (Inactive) made changes -
            Status Original: In Progress [ 3 ] New: To be reviewed [ 10026 ]

              bturner Bryan Turner (Inactive)
              bturner Bryan Turner (Inactive)
              Affected customers:
              0 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: