Hi All,
It looks like we have 2 different issues now with lang/largeCodeGen.java test cases.
1. jvm heap size need to be increased while running test case lang/largeCodeGen.java which is easy to do in case of framework "embedded" as the change can be made to largeCodeGen_app.properties file.
In case of DerbyNetClient, java heap size need to be increased while starting Network Server as well which can be done by giving -Djvmflags="-mx512M -ms512M" while running lang/largeCodeGen.java test case individually with RunTest class. However while running lang/largeCodeGen.java as part of suite largeData with RunSuite class, -Djvmflags="-mx512M -ms512M" can not be given as command line as RunSuite does not parse this flag properly and does not pass it to RunTest properly. Now, if we change
NetworkServer.java class to increase jvm heap size, it will be increased for all the test cases. I already have a JIRA bug open (http://issues.apache.org/jira/browse/DERBY-1091
) to fix jvmflags parsing problem.
2 Now when the jvm heap size is increased for both test case lang/largeCodeGen.java and Network Server, we do not get any heap size related problem. However, we get another error as explained in my posts above. I have opened JIRA bug (
http://issues.apache.org/jira/browse/DERBY-1315) for that as well.
Thanks, Raman
On 5/4/06, Ramandeep Kaur <[EMAIL PROTECTED]> wrote:
Hi,I reran testcase largeCodeGen with both frameworks - embedded and DerbyNetClient.Embedded----------------For embedded, test passed in the following cases:1. when test was run by passig-Djvmflags="-Xmx1024M -Xms1024M" from command line as follows:>java -Dverbose=true -Djvmflags="-Xmx1024M -Xms1024M"
org.apache.derbyTesting.functionTests.harness.RunTest lang/largeCodeGen.java2. When java/testing/org/apache/derbyTesting/functionTests/tests/lang/largeCodeGen_app.properties was modified and the line jvmflags=-Xmx512M -Xms512M was replaced with jvmflags=-Xmx1024M -Xms1024MDerbyNetClient----------------------
With framework DerbyNetClient, there is still same error as given in my message above.Note: Please note that there is difference in jvmflags while running with embedded and DerbyNetClient frameworks.With embedded frameworks -Xmx and -Xms are given for jvmflagsWith DerbyNetClient frameworks -mx and -ms are are given for jvmflags.Thanks,Ramandeep Kaur
On 5/3/06, Manjula G Kutty <[EMAIL PROTECTED] > wrote:Ramandeep Kaur wrote:
> Hi,
>
> I ran largeCodeGen as following:
> java -Dverbose=true -Djvmflags="-mx512M -ms512M"
> -Dframework=DerbyNetClient
> org.apache.derbyTesting.functionTests.harness.RunTest
> lang/largeCodeGen.java
> With the above, I did NOT get usual error which was
> *** 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 ***
>
> Instead, I got another error which is
> < 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.
>
> Here are the contents of test.txt
>
> *** Start: largeCodeGen jdk1.4.2 DerbyNetClient 2006-05-02 17:06:24 ***
> Initialize for framework: DerbyNetClient
> java -mx512M -ms512M
> - Dderby.system.home=/local0/NightlyBuildResults.2006-05-02/
> ibm142_largeDataTests/DerbyNetClient/largeCodeGen -
> Djava.security.manager -Djava
> .security.policy=/local0/NightlyBuildResults.2006-05-02/ibm142_largeDataTests/de
> rby_tests.policy
> -DderbyTesting.codejar=file:/local1/cloudtst/dev/src/jars/insan
> e/ -DderbyTesting.codedir=/local1/cloudtst/dev/src/jars/insane
> -DderbyTesting.se
> rverhost=localhost - DderbyTesting.clienthost=localhost
> -DderbyTesting.codeclasse
> s=file://unused/ org.apache.derby.drda.NetworkServerControl start
> Attempt to shutdown framework: DerbyNetClient
> 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.
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> *** End: largeCodeGen jdk1.4.2 DerbyNetClient 2006-05-02 17:08:07 ***
>
> Now it looks like it could be a diff problem. Any idea???
>
> Thanks, Raman
>
>
> On 2/27/06, *John Embretsen* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
> Kathey Marsden wrote:
>
> > Manjula G Kutty wrote:
> >
> >> I have closed all the statements, prepared statements and
> resultsets
> >> in the largeCodeGen.java file. But still the test passes with
> embedded
> >> but fails with derbyClient. I'm attaching the modified
> >> largeCodeGen.java file
> >>
> > Hi Manjula,
> >
> > Because this test throws a lot of exceptions, the statements and
> > prepared statements would need to be closed in a finally
> block. But
> > I just noticed something that might be causing this and it is
> related to
> > the test harness.
> > When we run the test network server starts and gets the jvmFlags
> > specified for the test in largeCodeGen_app.properties
> > jvmflags=-Xmx512M -Xms512M
> > (Whether that is at all right I don't know since app_properties
> is I
> > think supposed to be for the client).
> >
> > But it also gets these conflicting properties (from the harness
> itself?)
> > -ms16777216 -mx33554432
> >
> > So which is the server really using?
>
> The server is using the latter (-ms16777216 -mx33554432), since these
> override the flags passed from the largeCodeGen_app.properties file. I
> verified this by running the lang/largeCodeGen.java test from
> current trunk
> with Sun JDK 1.5 and -Dframework=DerbyNetClient.
>
> By the way, in my environment the above test run hangs (using
> DerbyNetClient). I have not investigated this further, but the
> heap does look
> full.
>
> I used the jinfo and jmap tools that come with the JDK to observe
> the flags
> received by the server JVM and the actual heap configuration used
> by the
> server while running the test (I got the VMIDs using the jps tool).
>
> By running "jinfo -flags" I got (extract):
>
> VM Flags:
> -Xmx512M -Xms512M -Xms16777216 -Xmx33554432
> -Dderby.system.home=/home/je159969/apache/Derby/clean/tests/largeCodeGen2/DerbyNetClient/largeCodeGen
>
> - Djava.security.manager
> -Djava.security.policy=/home/je159969/apache/Derby/clean/tests/largeCodeGen2/derby_tests.policy
>
>
> -DderbyTesting.codejar=file:/home/je159969/apache/Derby/clean/trunk/jars/sane/
> -DderbyTesting.codedir=/home/je159969/apache/Derby/clean/trunk/jars/sane
> -DderbyTesting.serverhost=localhost
> -DderbyTesting.clienthost=localhost
> -DderbyTesting.codeclasses=file://unused/
>
> By running "jmap -heap" I got (extract):
>
> Heap Configuration:
> MinHeapFreeRatio = 40
> MaxHeapFreeRatio = 70
> MaxHeapSize = 33554432 ( 32.0MB)
> NewSize = 655360 (0.625MB)
> MaxNewSize = 4294901760 (4095.9375MB)
> OldSize = 1441792 ( 1.375MB)
> NewRatio = 12
> SurvivorRatio = 32
> PermSize = 8388608 ( 8.0MB)
> MaxPermSize = 67108864 (64.0MB)
>
>
> I.e., jmap reports the max heap size as 32 MB, not 512 MB.
>
> The extra (overriding) jvm heap size flags are set in
> NetServer.java in the
> harness package, which is used by RunTest.java (line 286) to start the
> network server. This code seems to be old (and buggy), since it
> looks for flags
> starting with "-ms" or "-mx", not "-Xms" or "-Xmx". Here's the
> code that is
> producing the flags:
>
> if (!jvmName.equals("jview"))
> {
> if (setJvmFlags && (jvmflags.indexOf("-ms") == -1))
> // only setMs if no starting memory was given
> jvm.setMs (16*1024*1024); // -ms16m
> if (setJvmFlags && ( jvmflags.indexOf("-mx") == -1))
> // only setMx if no max memory was given
> jvm.setMx(32*1024*1024); // -mx32m
> jvm.setNoasyncgc(true); // -noasyncgc
> }
>
> The class level comment in jvm.java lists the "valid" jvm options,
> supposedly
> from "java -help". This list does not look anything like the
> option lists I
> get from Sun's JDKs 1.3 through 1.6, so I guess it is a few years
> old...
>
>
> --
> John
>
>
>
>
>
>
>
>
> --
> Ramandeep Kaur
> [EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>
Hi Raman,
I would suggest you to run the entire suite (largedata) and then get the
diff for both embedded and DerbynetClient. That way we can know whether
it is a mere master update or a problem. Please let me know the result
after running the entire suite
Thanks
Manjula
--
Ramandeep Kaur
[EMAIL PROTECTED]
--
Ramandeep Kaur
[EMAIL PROTECTED]