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