Report analysis hangs with ORA-03146

Hello,

We are using SonarQube 7.9.1 with Oracle 19c DB.
Recently we are seeing below error

Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: java.sql.SQLException: ORA-03146: invalid buffer length for TTC field

### The error may exist in org.sonar.db.source.FileSourceMapper
### The error may involve org.sonar.db.source.FileSourceMapper.update-Inline
### The error occurred while setting parameters
### SQL: update       file_sources     set       updated_at = ?,       binary_data = ?,       line_hashes = ?,       line_hashes_version = ?,       line_count = ?,       data_hash = ?,       src_hash = ?,       revision = ?     where       id = ?
### Cause: java.sql.SQLException: ORA-03146: invalid buffer length for TTC field

        at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
        at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
        at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
        at com.sun.proxy.$Proxy46.update(Unknown Source)
        at org.sonar.db.source.FileSourceDao.update(FileSourceDao.java:118)
        at org.sonar.ce.task.projectanalysis.source.PersistFileSourcesStep$FileSourceVisitor.persistSource(PersistFileSourcesStep.java:147)
        at org.sonar.ce.task.projectanalysis.source.PersistFileSourcesStep$FileSourceVisitor.visitFile(PersistFileSourcesStep.java:100)
        ... 36 common frames omitted
Caused by: java.sql.SQLException: ORA-03146: invalid buffer length for TTC field

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1205)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)

When this error occurs, SonarQube report analysis will hang and reports for other projects will be waiting.

we need to restart the SonarQube server for the hanged analysis to get canceled and for other analysis to continue (on SonarQube restart).

We are using using latest Oracle 19c JDBC driver and set below extra properties for CE server.

sonar.ce.javaAdditionalOpts=-Doracle.net.encryption_client=REQUIRED -Doracle.net.crypto_checksum_types_client="( SHA256 )" -Doracle.net.encryption_types_client="( AES256 )" -Doracle.net.crypto_checksum_client=REQUIRED

We observed that this issue happening to files with more lines like (5K-10K) and does not happen consistently.

Appreciate any feedback/guidance to resolve this issue.

With Regards,
Vara Prasad.