3 Replies Latest reply: Apr 16, 2013 1:08 AM by mobra RSS

    Bug in Apex Listener 2.0.1 ? get_page FAILED:ORA-06502 on random page views

    mobra
      Hi,

      Apex 4.1.1 on Oracle XE 10g
      Apex Listener 2.0.1.64.14.26 in standalone mode on Win XP SP3

      I've been using the Apex Listener 1.x standalone for a long time, but recently replaced it with 2.0.1. It was running fine for some days, but now I am starting to see "internal server errors" on more or less random pages (but probably having to do with a page size around 32K, see below).

      I turned on debug output and that shows the following on a failing page:
      Validating: f
      *** Total number of arguments: 15
      SID: 30
      Parse: 0 ms
      -----
      begin 
       f(cs=>?,
      p=>?);
      commit;
        end;
      *** Total number of arguments: 15
      cs= 32CFCBEE788B5991B673D4A617BBA7740
      p= 400:311:1167141970125201::NO::P311_COURSE_ID:141
      Exec: 140 ms
      get_page FAILED:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
      ORA-06512: at line 33
      java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
      ORA-06512: at line 33
      
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
           at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
           at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:505)
           at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:223)
           at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
           at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:205)
           at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1043)
           at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)
           at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3612)
           at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3713)
           at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4755)
           at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1378)
           at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
           at java.lang.reflect.Method.invoke(Unknown Source)
           at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:242)
           at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:124)
           at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:101)
           at com.sun.proxy.$Proxy46.execute(Unknown Source)
           at oracle.dbtools.apex.OWA.getPage(OWA.java:255)
           at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:204)
           at oracle.dbtools.apex.ModApex.doGet(ModApex.java:97)
           at oracle.dbtools.apex.ModApex.service(ModApex.java:302)
           at oracle.dbtools.rt.web.HttpEndpointBase.modApex(HttpEndpointBase.java:337)
           at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:130)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
           at com.sun.grizzly.http.servlet.ServletAdapter$FilterChainImpl.doFilter(ServletAdapter.java:1059)
           at com.sun.grizzly.http.servlet.ServletAdapter$FilterChainImpl.invokeFilterChain(ServletAdapter.java:999)
           at com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:434)
           at oracle.dbtools.standalone.SecureServletAdapter.doService(SecureServletAdapter.java:65)
           at com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:379)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:196)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
           at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
           at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
           at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
           at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
           at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
           at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
           at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
           at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
           at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
           at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
           at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
           at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
           at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
           at java.lang.Thread.run(Unknown Source)
      ==== Request Processed ====
      Got results length: NULL
      Processed PL/SQL Gateway request
      WebException [statusCode=500]
           at oracle.dbtools.rt.web.WebException.webException(WebException.java:326)
           at oracle.dbtools.rt.web.WebException.internalError(WebException.java:245)
           at oracle.dbtools.rt.web.WebErrorResponse.internalError(WebErrorResponse.java:101)
           at oracle.dbtools.apex.ModApexContext.handleError(ModApexContext.java:475)
           at oracle.dbtools.apex.OWA.getPage(OWA.java:265)
           at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:204)
           at oracle.dbtools.apex.ModApex.doGet(ModApex.java:97)
           at oracle.dbtools.apex.ModApex.service(ModApex.java:302)
           at oracle.dbtools.rt.web.HttpEndpointBase.modApex(HttpEndpointBase.java:337)
           at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:130)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
           at com.sun.grizzly.http.servlet.ServletAdapter$FilterChainImpl.doFilter(ServletAdapter.java:1059)
           at com.sun.grizzly.http.servlet.ServletAdapter$FilterChainImpl.invokeFilterChain(ServletAdapter.java:999)
           at com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:434)
           at oracle.dbtools.standalone.SecureServletAdapter.doService(SecureServletAdapter.java:65)
           at com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:379)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:196)
           at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
           at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
           at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
           at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
           at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
           at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
           at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
           at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
           at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
           at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
           at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
           at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
           at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
           at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
           at java.lang.Thread.run(Unknown Source)
      Caused by: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
      ORA-06512: at line 33
      
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
           at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
           at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:505)
           at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:223)
           at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
           at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:205)
           at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1043)
           at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)
           at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3612)
           at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3713)
           at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4755)
           at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1378)
           at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
           at java.lang.reflect.Method.invoke(Unknown Source)
           at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:242)
           at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:124)
           at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:101)
           at com.sun.proxy.$Proxy46.execute(Unknown Source)
           at oracle.dbtools.apex.OWA.getPage(OWA.java:255)
           ... 28 more
      This looks an awful lot like the same problem that was present in an early version of the 1.x listener, as described in this thread:

      Listener Error - character string buffer too small (ORA-06502)

      I thought this problem was fixed a long time ago, so I was surprised to see it again on the very latest release of the Listener. Is the any way I can work around this, or provide more information to get this bug confirmed and fixed?

      - Morten

      http://ora-00001.blogspot.com
        • 1. Re: Bug in Apex Listener 2.0.1 ? get_page FAILED:ORA-06502 on random page views
          mobra
          Bump. Am I the only one still seeing this error?

          I've noticed that the "Bugs Fixed" document for Apex Listener 2.0.1

          http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/apex-listener-v201-bugsfixed-1905086.html

          says

          +"Support the handling of responses around 32KB in size on Oracle 10.2 database"+

          But I am still seeing this problem on Apex Listener 2.0.1.64.14.26 on Oracle XE 10g.

          After some more testing I've found that the error doesn't happen as long as I run the Apex Builder or my own app using English as the primary language, but when I switch to a translated app (Norwegian in my case) I hit this error on pages that are around 32K.

          - Morten

          http://ora-00001.blogspot.com
          • 2. Re: Bug in Apex Listener 2.0.1 ? get_page FAILED:ORA-06502 on random page views
            Colm Divilly-Oracle
            Hi Morten,
            thank you for your problem report, I can confirm there is a regression in 2.0.0/2.0.1 with the handling of responses where the number of characters is <= 32766 but the number of bytes (due to multi-byte UTF8 encoding) is > 32766.

            I have filled BUG:16655432 to track this issue, it will be addressed in the next listener patch release.

            Regards,
            Colm Divilly
            • 3. Re: Bug in Apex Listener 2.0.1 ? get_page FAILED:ORA-06502 on random page views
              mobra
              Colm Divilly wrote:
              thank you for your problem report, I can confirm there is a regression in 2.0.0/2.0.1 with the handling of responses where the number of characters is <= 32766 but the number of bytes (due to multi-byte UTF8 encoding) is > 32766.

              I have filled BUG:16655432 to track this issue, it will be addressed in the next listener patch release.
              Excellent, thanks for confirming and filing the bug!

              - Morten

              http://ora-00001.blogspot.com