You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Ramandeep Kaur (JIRA)" <de...@db.apache.org> on 2006/05/11 00:35:04 UTC

[jira] Created: (DERBY-1315) largeCodeGen fails with framework DerbyNetClient

largeCodeGen fails with framework DerbyNetClient
------------------------------------------------

         Key: DERBY-1315
         URL: http://issues.apache.org/jira/browse/DERBY-1315
     Project: Derby
        Type: Bug

  Components: Test  
    Versions: 10.2.0.0    
 Environment: Linux - Suse 2.6.5-7.252
    Reporter: Ramandeep Kaur
    Priority: Blocker


The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:

*** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
27a28
> JVMST109: Insufficient space in Javaheap to satisfy allocation request
Test Failed.
*** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
 
Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
< PASS: IN clause with 97000 parameters
20 del
< PASS: PREPARE: IN clause with 98000 parameters
21 del
< PASS: IN clause with 98000 parameters
22 del
< FAILED QUERY: IN clause with 99000 parameters. 
22a19
> FAILED QUERY: IN clause with 97000 parameters.
Test Failed.

Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:

MasterFileName = master/largeCodeGen.out
15a16,18
> java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
complexity. Eliminating many duplicate expressions or breaking up the query and 
storing interim results in a temporary table can often help resolve this error
. SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
d010x000050a9065e9.

> Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
 rewriting the query to remove complexity. Eliminating many duplicate expression
s or breaking up the query and storing interim results in a temporary table can 
often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)

exceeded: method:e1 code_length (65577 > 65535) in generated class 
org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
>       ... 4 more
19 del
< PASS: IN clause with 97000 parameters
20 del
< PASS: PREPARE: IN clause with 98000 parameters
21 del
< PASS: IN clause with 98000 parameters
22 del

< FAILED QUERY: IN clause with 99000 parameters. 
22a22,29
> FAILED QUERY: IN clause with 97000 parameters.
> java.sql.SQLException: The parameter position '31,465' is out of range.  The 
number of parameters for this prepared  statement is '31,464'.
>       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
.java(Compiled Code))
> Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
,465' is out of range.  The number of parameters for this prepared  statement is 
 '31,464'.
>       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
dex(PreparedStatement.java(Compiled Code))
>       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
(PreparedStatement.java(Inlined Compiled Code))
>       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
t.java(Inlined Compiled Code))
>       ... 5 more

27a35,37
> java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
complexity. Eliminating many duplicate expressions or breaking up the query and 
storing interim results in a temporary table can often help resolve this error 
. SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
t code_length (69127 > 65535) in generated class 
org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
 rewriting the query to remove complexity. Eliminating many duplicate expression
s or breaking up the query and storing interim results in a temporary table can 
often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
>       ... 3 more
28 add
> java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
java.lang.OutOfMemoryError '.
>       ... 3 more
Test Failed.





-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12425810 ] 
            
Daniel John Debrunner commented on DERBY-1315:
----------------------------------------------

When running this I saw the out of memory exception was during optimization.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Reopened: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B reopened DERBY-1315:
------------------------

             
Reopening this issue as I would like to see the fix ported to 10.1.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.3.0.0, 10.2.2.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426775 ] 
            
Kathey Marsden commented on DERBY-1315:
---------------------------------------

>From what  I understand from the comments, this  should be marked as 
1) A regression
2) Existing application impact.
3) At least major, maybe critical priority
4) Urgent Urgency for 10.2

Any objections to these adjustments?


> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Resolved: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B resolved DERBY-1315.
------------------------

    Fix Version/s: 10.2.2.0
                       (was: 10.2.1.0)
       Resolution: Fixed

A fix for this issue has been checked into 10.3 and ported to 10.2 (thanks Dan and Rick).  The remaining work is to update largeCodeGen to run with 10,000 unions and to investigate related issues.  I''ve filed DERBY-1818 for tracking of that test work and am thus resolving this issue.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.2.2.0, 10.3.0.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Assigned: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B reassigned DERBY-1315:
--------------------------

    Assignee: A B

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.2.1.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with framework DerbyNetClient

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Kathey Marsden updated DERBY-1315:
----------------------------------

    Priority: Minor  (was: Blocker)

Changing priority to Minor. There is no indication right now that this is a major functionalitiy impact for client.




> largeCodeGen fails with framework DerbyNetClient
> ------------------------------------------------
>
>          Key: DERBY-1315
>          URL: http://issues.apache.org/jira/browse/DERBY-1315
>      Project: Derby
>         Type: Bug

>   Components: Test
>     Versions: 10.2.0.0
>  Environment: Linux - Suse 2.6.5-7.252
>     Reporter: Ramandeep Kaur
>     Priority: Minor
>  Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Mike Matrigali (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Mike Matrigali updated DERBY-1315:
----------------------------------

    Fix Version/s: 10.3.0.0
       Derby Info: [Existing Application Impact, Regression]  (was: [Regression, Existing Application Impact])

Fix merged to 10.2 branch as part of "mega-merge":
r439377 | rhillegas | 2006-09-01 10:05:02 -0700 (Fri, 01 Sep 2006) | 1 line

DERBY-1725: Merge the following patches from the trunk to the 10.2 branch: No JI
RA (439048), DERBY-1702 (439209), DERBY-1783 (439128), DERBY-1315 (439098, 43908
3), DERBY-1566 (439093).

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.2.1.0, 10.3.0.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by Mike Matrigali <mi...@sbcglobal.net>.

Army wrote:

> 
> 
> Ah, glad you pointed this out.  I myself usually do it the non-preferred 
> way; this is something I'll have to look out for in the future...

Not sure if I made it clear, but the issue is if the String is 
compound/complicated (ie. constructed with + and or created with method
calls).  I don't think there is an issue if there is a simple string 
(ie. "this is why it happpened" as the second arg.)

> 
> Thanks for the feedback!
> Army
> 
> 
> 


Re: [jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by Army <qo...@gmail.com>.
Mike Matrigali wrote:
> 
> I don't think anyone has ever done performance and/or memory profiling 
> work against a "sane" system.  Effort is probably best spent elsewhere.

Good to know.  I guess the main reason I brought this up is because if we enable 
largeCodeGen to run as part of derbyall, people (such as myself) will inevitably 
try to run derbyall with SANE jars--and if they do so with 10,000 unions, 
they'll see an OOM error.  So if we add the 10,000 union query to the test, it 
seems like there'd have to be some logic to only run the test when running 
against an insane build...

<snip non-preferred way of building THROWASSERT strings>

> It is preferred that it be written as:
> 
> if (SanityManager.DEBUG)
> {
>     if (x != 0)
>     {
>         SanityManager.THROWASSERT("Incorrect offset." + ...
>     }
> }
> 
> The first instance can require the jvm to build the full string every
> execution, even when the assert does not fire.  The second will only
> build the string in the error case.

Ah, glad you pointed this out.  I myself usually do it the non-preferred way; 
this is something I'll have to look out for in the future...

Thanks for the feedback!
Army


Re: [jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by Mike Matrigali <mi...@sbcglobal.net>.

> Also, more investigation is required in order to figure out why the test passes with insane jars but fails 
>(due to OOM) with sane jars.  At the very least, some kind of logic would be necessary to only run the test for insane 
>  builds, and I have no idea how (or if) that logic would work in JUnit.
> 

I don't think anyone has ever done performance and/or memory profiling 
work against a "sane" system.  Effort is probably best spent elsewhere.

Having said that, I have done the following kinds of changes to ASSERT
code in the past.

The first thing that comes to mind is the nature of the Strings in
the various Sanity checks.  In the past I have searched the code for
ASSERTS which "build" strings like the following, I have not done it
recently:

if (SanityManager.DEBUG)
   SanityManager.ASSERT(x == 0,
       "Incorrect offset.  offset = " +
       getRecordOffset(slot) +
       ", offset should be < " +
       "(PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) = " +
     (PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) +
      ", current slot = " + slot +
      ", total slotsInUse = " + slotsInUse);

It is preferred that it be written as:

if (SanityManager.DEBUG)
{
     if (x != 0)
     {
         SanityManager.THROWASSERT("Incorrect offset." + ...
     }
}


The first instance can require the jvm to build the full string every
execution, even when the assert does not fire.  The second will only
build the string in the error case.  The first definitely slows down
the sane system, and I assume increases memory usage.


[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B updated DERBY-1315:
-----------------------

    Attachment: d1315_v1.patch

Attaching a patch, d1315_v1.patch, to address this issue.  This patch adds a small amount of logic to remove entries from an Optimizable's "best plan" HashMap when they are no longer needed.  For more on when this is possible, see the discussion here:

  http://article.gmane.org/gmane.comp.apache.db.derby.devel/26051

I built a set of insane jars with this patch applied and then ran some of the tests related to this issue:

  1. largeCodeGen.sql (with Xmx512M):

    This test now passes with the patch applied.  Or rather, the
    OutOfMemory error no longer occurs; instead, the query results
    in a java linkage error with message:

      'constant_pool(70288 > 65535): java.io.IOException'

    This is the same behavior that occurs with 10.1, and thus
    is no longer a regression.

  2. largeCodeGen.java (as attached to this issue, with Xmx512M):

    When run as-is with Sun jdk15, the logical operator tests fail
    with error 42ZA0 for 900 params; the IN tests fail with error
    42ZA0 with 99000 params; and the union tests fail with an OOM
    error for the 4700 union test case.  HOWEVER, this OOM appears
    to be caused by something other than the optimizer changes for
    Derby-805.  There are several reasons why I think (hope) this:

    a. Sun jdk15 throws an error "OOMError: PermGen space" (or
       something like that); when I did a Google for that, all of
       the pages I (very quickly) browsed indicated that this is
       frequently the result of missed opportunities for garbage
       collection.

    b. If I change largeCodeGen to start counting from 4500 unions
       (instead of 800), then the case of 4700, 4800, 4900, and
       5000 unions all pass.  I killed the test after that so I
       don't know how far it would have gone.

    c. If I run with ibm142 instead of Sun jdk15, the test succeeds
       for as many as 6200 unions without problem (though memory
       usage does creep up for every iteration, suggesting that it
       would have run out of memory at some point).  I killed the
       test after that so I don't know how far it would have gone.

    d. If I ONLY run the largeCodeGen test with 10000 unions (no
       other tests before it), then the query will fail with error
       42ZA0 instead of with an OOM.  I.e. this is the expected
       behavior (...isn't it?)

    One other interesting thing to note with this test: if I change
    it so that it ONLY runs with 7500 unions (no other tests before
    it), the query compiles successfully for both ibm142 and jdk15.
    Then, for ibm142, it fails AT EXECUTION TIME with an OOM error,
    while for Sun jdk15 it executes without error.  Again, this
    suggests a difference between JVMs more than a problem with Derby.
    In either case the fact that compilation succeeds shows that the
    regression reported for DERBY-1315 is fixed with d1315_v1.patch
    (at least for insane builds).  The OOM error for ibm142 is an
    error that we never would have  reached with 10.1 because 10.1
    fails during compilation (or more specifically, during code
    generation) and thus never makes it to execution.  So this is
    a case where functionality that didn't work in 10.1 still doesn't
    work in 10.2--at least not with ibm142--and thus this wouldn't be
    a regression.
 
    This fact is further backed by the observation that a test of
    10000 unions will fail with error 42ZA0 on ibm142 during
    compilation--which means we never get to execution and thus
    no OOM error occurs in that case.

  3. lang/largeCodeGen.java as a standalone JUnit test:

    I uncommented the lines in lang/largeCodeGen that test 10000
    unions and then ran the test as a standalone JUnit with the
    following command (against an INSANE build):

    java -Xmx512M junit.textui.TestRunner
      org.apache.derbyTesting.functionTests.test.lang.largeCodeGen

    The result was:

    ....
    Time: 593.543

    OK (4 tests) 

    In other words, it took a good chunk of time (10 minutes), but the
    test *did* pass with a max heap size of 512M.  Note that, of the
    10 minutes spent running the test, it looks like less than 20% of
    that time is spent in optimization; the rest of the time is
    (apparently?) used for generating code.

    NOTE: If I try to run the same test with a SANE build, it fails
    with an OOM error.  So this perhaps requires more investigation.
    But d1315_v1.patch at least makes things better.

I ran derbyall against sane jars with this patch on Red Hat Linux using ibm142 and there were no failures.  So I think the patch itself can be committed (pending review).  There is still more work, though, to figure out how to run largeCodeGen as part of derbyall: the test requires up to 512M of memory and maxes out my CPU for 10 minutes before completing--is it reasonable to add such a test derbyall?  Also, more investigation is required in order to figure out why the test passes with insane jars but fails (due to OOM) with sane jars.  At the very least, some kind of logic would be necessary to only run the test for insane builds, and I have no idea how (or if) that logic would work in JUnit.

Comments/feedback would be appreciated....

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>             Fix For: 10.2.1.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B updated DERBY-1315:
-----------------------

    Derby Info: [Patch Available, Existing Application Impact, Regression]  (was: [Existing Application Impact, Regression])

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.2.1.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rick Hillegas (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Rick Hillegas updated DERBY-1315:
---------------------------------

    Component/s: Test
                     (was: SQL)
        Urgency: Urgent  (was: Normal)
       Priority: Minor  (was: Critical)

This is a potential regression, which we should examine. Bumping the urgency of this issue.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Sunitha Kambhampati updated DERBY-1315:
---------------------------------------

    Summary: largeCodeGen fails with embedded and framework DerbyNetClient  (was: largeCodeGen fails with framework DerbyNetClient)

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B updated DERBY-1315:
-----------------------

    Attachment: d1315_10_1_merge.patch

Attaching a patch for merging this change to 10.1.  There was a small conflict when I tried the "svn merge" command so I had to create the patch manually.  I confirmed that the patch works as expected by running the "go.sql" and "largeCodeGen.java" repros (as attached to this issue) against insane jars.  Without the patch I see OOM errors in both cases; with the applied, the OOM errors go away and are replaced with the expected 10.1 errors:

go.sql:

ERROR XJ001: Java exception: 'constant_pool(70285 > 65535): java.io.IOException'.

largeCodeGen:

 SQL Exception: Java linkage error thrown during load of generated class ...

I'm running derbyall now and will post the results when it finishes.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.3.0.0, 10.2.2.0
>
>         Attachments: 1315-comparison.html, d1315_10_1_merge.patch, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rajesh Kartha (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426780 ] 
            
Rajesh Kartha commented on DERBY-1315:
--------------------------------------

I agree this can be marked  a Medium (I had marked it as Critical in the morning) . It is already marked as Regression.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12429317 ] 
            
Daniel John Debrunner commented on DERBY-1315:
----------------------------------------------

To see this problem with largeCodeGen one must increase the number of union clauses created in the testUnions method of largeCodeGen (now a JUnit test run as part of derbyall)

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>             Fix For: 10.2.1.0
>
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) largeCodeGen fails with framework DerbyNetClient

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12425806 ] 
            
Sunitha Kambhampati commented on DERBY-1315:
--------------------------------------------

This test also fails in embedded mode. As far as I can tell, this test has not passed on this test machine for a long time now. I dont have the entire history to verify

 ********* Diff file largeDataTests/largeDataTests/largeCodeGen.diff
*** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-07-29 05:54:45 ***
23 del
< PASS: PREPARE: SELECT with 800 unions
24 del
< PASS: EXECUTE SELECT with 800 unions Row data check ok
25 del
< PASS: PREPARE: SELECT with 900 unions
26 del
< PASS: EXECUTE SELECT with 900 unions Row data check ok
27 del
< FAILED QUERY: SELECT with 1000 unions.
27a23,24
> FAILED QUERY: SELECT with 800 unions.
> JVMST109: Insufficient space in Javaheap to satisfy allocation request
Test Failed.


> largeCodeGen fails with framework DerbyNetClient
> ------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426783 ] 
            
Daniel John Debrunner commented on DERBY-1315:
----------------------------------------------

Army wrote on derby-dev:

>
> Any pointers to the type of extra state kept around. Is it query tree
> nodes, collections, something else?


With Phase 1 of DERBY-805, a HashMap was added to each query tree node.  The map holds an Object->AccessPathImpl mapping for each OptimizerImpl that occurs above the node in the query tree.  The "Object" in this mapping is an object that already existed; the AccessPathImpl is a new object.

See FromTable.addOrLoadBestPlanMapping()

With Phase 4, additional entries to the HashMap are added for every UnionNode, PRN, or JoinNode that occurs above the node...and also for every occurrence of a node that doesn't implement "optimizeIt()".  *Ouch*.  After writing that, I find myself feeling rather ill.

The comments around these additional calls explain why they are there:

// It's possible that a call to optimize the [ node ] will cause
// a new "truly the best" plan to be stored in the underlying base
// tables.  If that happens and then we decide to skip that plan
// (which we might do if the call to "considerCost()" below decides
// the current path is infeasible or not the best) we need to be
// able to revert back to the "truly the best" plans that we had
// saved before we got here.  So with this next call we save the
// current plans using "this" node as the key.  If needed, we'll
// then make the call to revert the plans in OptimizerImpl's
// getNextDecoratedPermutation() method. 

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-1315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-1315:
---------------------------------

    Bug behavior facts: [Regression, Regression Test Failure]  (was: [Regression])

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: https://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.1.6
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Assignee: A B
>             Fix For: 10.1.3.2, 10.2.1.6, 10.3.1.4
>
>         Attachments: 1315-comparison.html, d1315_10_1_merge.patch, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Daniel John Debrunner updated DERBY-1315:
-----------------------------------------

    Component/s: SQL
                     (was: Test)

This is not a test issue, it's a bug in the SQL system.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Resolved: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B resolved DERBY-1315.
------------------------

    Fix Version/s: 10.1.3.2
                   10.2.1.0
                       (was: 10.2.2.0)
       Resolution: Fixed

Thanks for commtting the merge patch to 10.1, Mike.  The fix is now in all three codelines so I've updated the Fix-in and am closing the issue.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.1.3.2, 10.2.1.0, 10.3.0.0
>
>         Attachments: 1315-comparison.html, d1315_10_1_merge.patch, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rajesh Kartha (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426695 ] 
            
Rajesh Kartha commented on DERBY-1315:
--------------------------------------

Forgot to add:
The test was run using -Xms512M -Xmx512M settings for Sun jdk1.5

java  -Xms512M -Xmx512M largeCodeGen

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with framework DerbyNetClient

Posted by "Ramandeep Kaur (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Ramandeep Kaur updated DERBY-1315:
----------------------------------

    Attachment: largeCodeGen.out
                largeCodeGen.tmpmstr
                largeCodeGen.tmp

> largeCodeGen fails with framework DerbyNetClient
> ------------------------------------------------
>
>          Key: DERBY-1315
>          URL: http://issues.apache.org/jira/browse/DERBY-1315
>      Project: Derby
>         Type: Bug

>   Components: Test
>     Versions: 10.2.0.0
>  Environment: Linux - Suse 2.6.5-7.252
>     Reporter: Ramandeep Kaur
>     Priority: Blocker
>  Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12436331 ] 
            
A B commented on DERBY-1315:
----------------------------

> I'm running derbyall now and will post the results when it finishes.

derbyall on Red Hat Linux with ibm142 ran with no new failuers against sane 10.1 jars built with d1315_10_1_merge.patch applied.  So that patch is ready for port to 10.1.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.3.0.0, 10.2.2.0
>
>         Attachments: 1315-comparison.html, d1315_10_1_merge.patch, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with framework DerbyNetClient

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Kathey Marsden updated DERBY-1315:
----------------------------------


Raman told  us that client fails with this error:

>
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove
> complexity. Eliminating many duplicate expressions or breaking up the query and
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax


 This tells us that we are still dealing with the expected error.  The question is what is the difference between the embedded limits and the client limits. If you do a visual diff you can see more clearly.  Perhaps the starting value of the loop in the largeCodeGenTest will  have to be adjusted to see.



> largeCodeGen fails with framework DerbyNetClient
> ------------------------------------------------
>
>          Key: DERBY-1315
>          URL: http://issues.apache.org/jira/browse/DERBY-1315
>      Project: Derby
>         Type: Bug

>   Components: Test
>     Versions: 10.2.0.0
>  Environment: Linux - Suse 2.6.5-7.252
>     Reporter: Ramandeep Kaur
>     Priority: Blocker
>  Attachments: largeCodeGen.out, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rajesh Kartha (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Rajesh Kartha updated DERBY-1315:
---------------------------------

    Attachment: largeCodeGen.sql

Here is 4 line sql script to recreate the issue, hope this will help in debugging and fixing the OOM error. I also plan
to bump this issue from being a Minor to atleast a Major or higher.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rajesh Kartha (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Rajesh Kartha updated DERBY-1315:
---------------------------------

    Attachment: 1315-comparison.html
                largeCodeGen.java

I ran the largeCodeGen test as a stand alone application in Embedded mode against:
10.0.2.2.349072  	
10.1.2.4.384995  	
10.1.3.2.424154  	
10.2.0.5 alpha.424456

While 10.2 now works in more number of complex cases (Logical operators with 800 parameters, IN clause with 98000 parameters) in comparision to 10.0 and 10.1, there has been a regression.
 - The scenario with SELECT with 800 and 900 unions used to PASS in 10.0 and 10.1 now FAILs in 10.2
-  The scenario  with SELECT with 10000 unions used to fail after compilation in 10.0 and 10.1.2. But with 10.1.3 and 10.2
  the statement fails during compile with OutOfMemory error.

In addition, under default settings, I noticed that in Derby 10.0, 10.1 if the exception (SQLSTATE= XBCM1, SQL Exception: Java linkage error thrown during load of generated class ) occurs during execution of the generated class, the generated  file is left behind on the file system. 

For example:
-rwxrwxrwa   1 Administrators  None             172052 Aug  8 10:53 ace5214067x010cxeeebx20c8x00001f6fcec04.class
-rwxrwxrwa   1 Administrators  None            5082617 Aug  8 10:53 ace5214067x010cxeeebx20c8x00001f6fcec05.class

Whereas with 10.2, no files are left behind, which I think should be the right behaviour.

Attaching the html file of my findings and the largeCodeGen.java






> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Closed: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B closed DERBY-1315.
----------------------


> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.3.0.0, 10.1.3.2, 10.2.1.0
>
>         Attachments: 1315-comparison.html, d1315_10_1_merge.patch, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by Army <qo...@gmail.com>.
Daniel John Debrunner wrote:
> 
> I don't see anything ever being removed from these hashMaps. Is it
> possible to remove entries at any time?

Yes, I think it is.

My first instinct is to say that it should be possible to remove hashMap entries 
once we determine that they are no longer needed.  That said, there are two 
types of mappings that are added to a hashMap.  The first uses instances of 
OptimizerImpl as the key, the second uses an optimizable query tree node (which 
is an instance of Optimizable) as the key.  For the latter, the key can be a 
JoinNode, a UnionNode, a ProjectRestrictNode, or any other subclass of FromTable 
that does not override FromTable's "optimizeIt" method.

In the first case, I think we can say that the entries are no longer needed once 
the current round of optimization for the OptimizerImpl has completed.  In other 
words, when the call to OptimizerImpl.getNextPermutation() returns "false", the 
Optimizer has finished the round of work and all "best access paths" have been 
stored in the query tree nodes beneath the OptimizerImpl.  So it seems to me 
like that could be a good time to remove any relevant entries (meaning those 
which have the OptimizerImpl as their key) from the hash maps in the query tree 
nodes that make up the optimizableList.

In the second case, I think we can say that the entries are no longer needed 
after the check in OptimizerImpl.getNextDecoratedPermutation() has been 
performed and the appropriate action completed.  In other words, after the 
following if block:

// If the previous path that we considered for curOpt was _not_ the best
// path for this round, then we need to revert back to whatever the
// best plan for curOpt was this round.  Note that the cost estimate
// for bestAccessPath could be null here if the last path that we
// checked was the only one possible for this round.
if ((curOpt.getBestAccessPath().getCostEstimate() != null) &&
	(curOpt.getCurrentAccessPath().getCostEstimate() != null))
{
...
}

Upon completion of this "if" block the hashMap entries that are keyed on curOpt 
have served their purpose (w.r.t to the subtree whose root is "curOpt") and can 
probably be removed, as well.

These are the answers that come to mind with very little investigation of the 
code--just based on my recollection of the code as I wrote it for DERBY-805.

Hopefully that answers your question; if not, please let me know what other info 
you need.

Army


Re: [jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by Daniel John Debrunner <dj...@apache.org>.
Army wrote:

> Daniel John Debrunner wrote:
> 
>>
>> Any pointers to the type of extra state kept around. Is it query tree
>> nodes, collections, something else?
> 
> 
> With Phase 1 of DERBY-805, a HashMap was added to each query tree node. 
> The map holds an Object->AccessPathImpl mapping for each OptimizerImpl
> that occurs above the node in the query tree.  The "Object" in this
> mapping is an object that already existed; the AccessPathImpl is a new
> object.
> 
> See FromTable.addOrLoadBestPlanMapping()
> 
> With Phase 4, additional entries to the HashMap are added for every
> UnionNode, PRN, or JoinNode that occurs above the node...and also for
> every occurrence of a node that doesn't implement "optimizeIt()". 

I don't see anything ever being removed from these hashMaps. Is it
possible to remove entries at any time?

Dan.






Re: [jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by Army <qo...@gmail.com>.
Daniel John Debrunner wrote:
> 
> Any pointers to the type of extra state kept around. Is it query tree
> nodes, collections, something else?

With Phase 1 of DERBY-805, a HashMap was added to each query tree node.  The map 
holds an Object->AccessPathImpl mapping for each OptimizerImpl that occurs above 
the node in the query tree.  The "Object" in this mapping is an object that 
already existed; the AccessPathImpl is a new object.

See FromTable.addOrLoadBestPlanMapping()

With Phase 4, additional entries to the HashMap are added for every UnionNode, 
PRN, or JoinNode that occurs above the node...and also for every occurrence of a 
node that doesn't implement "optimizeIt()".  *Ouch*.  After writing that, I find 
myself feeling rather ill.

The comments around these additional calls explain why they are there:

// It's possible that a call to optimize the [ node ] will cause
// a new "truly the best" plan to be stored in the underlying base
// tables.  If that happens and then we decide to skip that plan
// (which we might do if the call to "considerCost()" below decides
// the current path is infeasible or not the best) we need to be
// able to revert back to the "truly the best" plans that we had
// saved before we got here.  So with this next call we save the
// current plans using "this" node as the key.  If needed, we'll
// then make the call to revert the plans in OptimizerImpl's
// getNextDecoratedPermutation() method.

Army


Re: [jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by Daniel John Debrunner <dj...@apache.org>.
A B (JIRA) wrote:
>     [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426705 ] 
>             
> A B commented on DERBY-1315:
> ----------------------------
 hate to say it, but it looks like this regression is caused by the
changes for DERBY-805.   Before the DERBY-805 changes Derby was
generating plans for subqueries that did not agree with the optimizer's
choices.  Phase 1 of the DERBY-805 patches made it so that Derby
generates the plans chosen by the optimizer, as one might expect.  In
order to do that, I added extra state to the optimizable nodes to keep
track of which query plan went with which level of query.
> 
> My guess is that this extra state is causing the optimizer to increase its memory usage--and thus for very large queries, we end up running out of memory  


Any pointers to the type of extra state kept around. Is it query tree
nodes, collections, something else?

Dan.



[jira] Commented: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1315?page=comments#action_12426705 ] 
            
A B commented on DERBY-1315:
----------------------------

> - The scenario with SELECT with 10000 unions used to fail after compilation in 10.0 
>    and 10.1.2. But with 10.1.3 and 10.2 the statement fails during compile with OutOfMemory error.

I hate to say it, but it looks like this regression is caused by the changes for DERBY-805.   Before the DERBY-805 changes Derby was generating plans for subqueries that did not agree with the optimizer's choices.  Phase 1 of the DERBY-805 patches made it so that Derby generates the plans chosen by the optimizer, as one might expect.  In order to do that, I added extra state to the optimizable nodes to keep track of which query plan went with which level of query.

My guess is that this extra state is causing the optimizer to increase its memory usage--and thus for very large queries, we end up running out of memory  This is backed by two things: 1) the changes for DERBY-805 apply specifically to UNIONs, and the query that's failing has 10,000 unions in it; 2) the DERBY-805 changes were checked into the 10.1.2.4 snapshot and thus are part of 10.1.3--which explains the behavior quoted above from Rajesh.

I ran the repro with 512M against a version of the 10.1 jars that immediately precedes any DERBY-805 check-ins and it "passes" (i.e. fails with linkage error); I then ran it against another version that was created shortly after all of DERBY-805 was ported to 10.1; it fails with OOM.

So there's the regression.

That said, it'll be virtually impossible for me to try to address this issue for the 10th--I'm already booked with DERBY-1633 (the other regression...*sigh*).

Not sure where that leaves us.  Sorry.

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Minor
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Kathey Marsden updated DERBY-1315:
----------------------------------

    Fix Version/s: 10.2.0.0

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>             Fix For: 10.2.0.0
>
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Closed: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "A B (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

A B closed DERBY-1315.
----------------------


Haven't heard any futher comments/reactions to the fix, so closing the issue.  If any further issues arise, please file a new Jira.

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.3.0.0, 10.2.2.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Kathey Marsden updated DERBY-1315:
----------------------------------

        Summary: Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient  (was: largeCodeGen fails with embedded and framework DerbyNetClient)
    Component/s: Regression Test Failure
       Priority: Major  (was: Minor)
     Derby Info: [Existing Application Impact, Regression]  (was: [Regression])

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) largeCodeGen fails with embedded and framework DerbyNetClient

Posted by "Rajesh Kartha (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Rajesh Kartha updated DERBY-1315:
---------------------------------

    Component/s: SQL
                     (was: Test)
        Urgency: Normal
       Priority: Critical  (was: Minor)
     Derby Info: [Regression]

Regression: Select scenarios started failing in 10.2 that used to pass in 10.1.x, hence raising its priority to Critical. 

> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.2.0.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>            Priority: Critical
>         Attachments: 1315-comparison.html, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1315) Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test with embedded and framework DerbyNetClient

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]

Daniel John Debrunner updated DERBY-1315:
-----------------------------------------

    Derby Info: [Existing Application Impact, Regression]  (was: [Existing Application Impact, Patch Available, Regression])

 d1315_v1.patch applied to trunk Committed revision 439083. - Thanks Army

> Statement optimization/compilation fails with OutOfMemoryException in largeCodeGen test  with embedded and framework DerbyNetClient
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1315
>                 URL: http://issues.apache.org/jira/browse/DERBY-1315
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL, Regression Test Failure
>    Affects Versions: 10.2.1.0
>         Environment: Linux - Suse 2.6.5-7.252
>            Reporter: Ramandeep Kaur
>         Assigned To: A B
>             Fix For: 10.2.1.0
>
>         Attachments: 1315-comparison.html, d1315_v1.patch, largeCodeGen.java, largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End:   largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29 08:32:01 ***
>  
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set PRINT_FAILURE_EXCEPTION  to true and ran the test again. This time I got the following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1 code_leng
> th (65577 > 65535) in generated class org.apache.derby.exe.ac46a08075x010bx203ax 
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> >       ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters. 
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.  The 
> number of parameters for this prepared  statement is '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position '31
> ,465' is out of range.  The number of parameters for this prepared  statement is 
>  '31,464'.
> >       at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions 
> (PreparedStatement.java(Inlined Compiled Code))
> >       at org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> >       ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to remove 
> complexity. Eliminating many duplicate expressions or breaking up the query and 
> storing interim results in a temporary table can often help resolve this error 
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:fillResultSe
> t code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex. Try
>  rewriting the query to remove complexity. Eliminating many duplicate expression
> s or breaking up the query and storing interim results in a temporary table can 
> often help resolve this error. SQLSTATE: XBCM4: Java class file format limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class 
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> >       ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ': 
> java.lang.OutOfMemoryError '.
> >       ... 3 more
> Test Failed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira