Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

frequently ORA-01013 errors #915

Closed
tkleiber opened this issue Apr 11, 2019 · 9 comments

Comments

Projects
None yet
3 participants
@tkleiber
Copy link

commented Apr 11, 2019

With the new versions I get frequently follwing errors, which I did not see 3.1.3 before.

`
/data/utPLSQL-cli/bin/utplsql run /@:/--color --path=,****--failure-exit-code=0 --timeout=240 --format=ut_documentation_reporter -o=ut_documentation_reporter_db.log -s --format=ut_xunit_reporter -o=ut_xunit_reporter.xml --format=ut_coverage_html_reporter -o=ut_coverage_html_reporter.html
Picked up _JAVA_OPTIONS: -Duser.language=en

########## utPLSQL cli ###########
# #
# utPLSQL-cli 3.1.6.local #
# utPLSQL-java-api 3.1.6.411 #
# Java-Version: 1.8.0_66 #
# ORACLE_HOME: null #
# NLS_LANG: null #
# #
# Thanks for testing! #
# #
##################################

Use connection string jdbc:oracle:thin:/@:/****
Successfully connected to database. UtPLSQL core: v3.1.6.2735
Oracle-Version: 11.2.0.4.0
java.sql.SQLTimeoutException: ORA-01013: Benutzer hat Abbruch des aktuellen Vorgangs angefordert
ORA-06512: in "UT3.UT_OUTPUT_TABLE_BUFFER", Zeile 198
ORA-06512: in "UT3.UT_OUTPUT_TABLE_BUFFER", Zeile 24
ORA-06512: in "UT3.UT_OUTPUT_REPORTER_BASE", Zeile 27
ORA-06512: in "UT3.UT_XUNIT_REPORTER", Zeile 21
ORA-06512: in Zeile 1
ORA-06512: in Zeile 1

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:249)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:82)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:924)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
at oracle.jdbc.driver.T4CCallableStatement.executeInternal(T4CCallableStatement.java:1318)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3752)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4242)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1079)
at org.utplsql.api.outputBuffer.OutputBufferProvider.hasOutput(OutputBufferProvider.java:67)
at org.utplsql.api.outputBuffer.OutputBufferProvider.getCompatibleOutputBuffer(OutputBufferProvider.java:33)
at org.utplsql.api.compatibility.CompatibilityProxy.getOutputBuffer(CompatibilityProxy.java:169)
at org.utplsql.api.reporter.DefaultReporter.initOutputBuffer(DefaultReporter.java:21)
at org.utplsql.api.reporter.Reporter.init(Reporter.java:51)
at org.utplsql.cli.ReporterManager.initReporters(ReporterManager.java:90)
at org.utplsql.cli.RunCommand.initReporters(RunCommand.java:296)
at org.utplsql.cli.RunCommand.doRun(RunCommand.java:157)
at org.utplsql.cli.RunCommand.run(RunCommand.java:216)
at org.utplsql.cli.Cli.runWithExitCode(Cli.java:42)
at org.utplsql.cli.Cli.main(Cli.java:14)

Caused by: Error : 1013, Position : 0, Sql = declare l_result int;begin begin execute immediate ' begin :x := case ' || dbms_assert.simple_sql_name( :1 ) || '() is of (ut_output_reporter_base) when true then 1 else 0 end; end;' using out l_result; end; :2 := l_result;end;, OriginalSql = declare l_result int;begin begin execute immediate ' begin :x := case ' || dbms_assert.simple_sql_name( ? ) || '() is of (ut_output_reporter_base) when true then 1 else 0 end; end;' using out l_result; end; ? := l_result;end;, Error Msg = ORA-01013: Benutzer hat Abbruch des aktuellen Vorgangs angefordert
ORA-06512: in "UT3.UT_OUTPUT_TABLE_BUFFER", Zeile 198
ORA-06512: in "UT3.UT_OUTPUT_TABLE_BUFFER", Zeile 24
ORA-06512: in "UT3.UT_OUTPUT_REPORTER_BASE", Zeile 27
ORA-06512: in "UT3.UT_XUNIT_REPORTER", Zeile 21
ORA-06512: in Zeile 1
ORA-06512: in Zeile 1

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
... 25 more

`

@pesse

This comment has been minimized.

Copy link
Member

commented Apr 11, 2019

Hi @tkleiber , thanks for reporting.
Does cli abort with this error or is it "just" part of the output?
Can you provoke this behavior with -d parameter set and provide the log (you can reach out to me via slack or email in private if you prefer to)

@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 11, 2019

It aborts!
Have to duplicate the calling code from a jenkins library before I can add the switch, needs some minutes!

@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 11, 2019

After a quick look at the error stack I see the following line:
ORA-06512: in "UT3.UT_OUTPUT_TABLE_BUFFER", Zeile 198
There I found:

delete from ut_output_buffer_tmp t
 where t.output_id
    in (select i.output_id from ut_output_buffer_info_tmp i where i.start_date <= l_max_retention_date);

delete from ut_output_buffer_info_tmp i where i.start_date <= l_max_retention_date;
commit;

After truncating the underlying table UT_OUTPUT_BUFFER_TMP$ (2.316.776 rows) now the cli jobs starts again.

The second underlying UT3.UT_OUTPUT_BUFFER_INFO_TMP$ (36 rows) cannot be truncated because of foreign keys.

@pesse

This comment has been minimized.

Copy link
Member

commented Apr 11, 2019

Would you open an issue in the main utPLSQL project, because this is not related to cli?
Great finding - I wonder if we need some different cleanup method @jgebal in case of large amounts of results

@tkleiber

This comment has been minimized.

Copy link
Author

commented May 2, 2019

@pesse pesse transferred this issue from utPLSQL/utPLSQL-cli May 10, 2019

@pesse

This comment has been minimized.

Copy link
Member

commented May 10, 2019

Done. Thanks for the tip - learned something new today :)

@jgebal

This comment has been minimized.

Copy link
Member

commented May 10, 2019

Hi @tkleiber,
Would you be able to install utPLSQL 3.1.7-develop (from our develop branch)?
There were following fixes done to the output buffer table after 3.1.6:

  1. separated clob buffer table from varchar2 buffer table. varchar2 is default for most reporters (as it used to be)
  2. clob buffer table has it's storage changed to enable in-row storage for small clob data (up to 4k)

With those two improvements, you should not see the timeout anymore.
One thing to consider though would be why did you end up with polluted buffer. It seems that your previous runs were not finishing cleanly and the data was not flushed from the buffer.

From what I remember, your schema is quite big and the coverage reports were quite heavy which would fit to the number of rows left in buffer.

@jgebal jgebal added the discussion label May 10, 2019

@jgebal jgebal added this to the v3.1.7 milestone May 10, 2019

@tkleiber

This comment has been minimized.

Copy link
Author

commented May 13, 2019

Have installed v3.1.7.29.28-develop. Will see if the error goes away in the next days, as it was not reproducible at will.

Sometimes I see before follwoing error in cli call too, but not in the direct call before the error happens:

Finished in 1363,215123 seconds
1407 tests, 57 failed, 181 errored, 5 disabled, 1 warning(s)
Timeout while waiting for reporters to finish for 240 minutes

@tkleiber

This comment has been minimized.

Copy link
Author

commented May 23, 2019

In the last 10 days nether the ORA-1013 nor the Timeout error happens with v3.1.7.29.28-develop!

@tkleiber tkleiber closed this May 23, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.