[
https://issues.apache.org/jira/browse/DERBY-5624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13218233#comment-13218233
]
Kristian Waagan commented on DERBY-5624:
----------------------------------------
A change introduced by DERBY-5614 may have cause the slowdown, but I don't see
how it's related to the extra disk usage. The bug in SpawnedProcess would cause
the VM to stay alive idling until the TimerTask got purged (even when
cancelled), but the order of the tests matters. So it would only be relevant if
a test using SpawnedProcess ran less than 45 minutes before the last test in
the run finished.
When I ran suites.All in parallell just now (4 runners), it took 1 hour and 6
minutes (including org.apache.derby.PackagePrivateTestSuite and
org.apache.derbyTesting.functionTests.tests.memory._Suite). This was on Solaris
11 with JDK 7. Assuming all 4 runners are busy at all times that's a worst case
time of around 4.5 hours - 11 hours definitely sounds like way too much (unless
that machine is running a lot of other stuff at the same time).
> System can run out of stack space while processing DropOnCommit requests.
> -------------------------------------------------------------------------
>
> Key: DERBY-5624
> URL: https://issues.apache.org/jira/browse/DERBY-5624
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.8.2.2
> Reporter: Mike Matrigali
> Assignee: Mike Matrigali
> Labels: derby_triage10_9
> Fix For: 10.9.0.0
>
> Attachments: DERBY-5624.patch, error-stacktrace_mod.out,
> largedatasuite_mod.out
>
>
> The system currently recursively calls xact.notifyObservers() from
> DropOnCommit.update(). It does this because in some cases
> new observers can be added while processing the list of notifyObservers and
> those were being missed before the change, causing
> Assertions in the tests and possibly files not properly dropped on commit.
> Multiple users on the Derby user list have had failures running
> SYSCS_UTIL.SYSCS_COMPRESS_TABLE(), running out of stack track
> with a heavily recursive stack trace of the form (see more detail from these
> reports in subsequent comments):
> Caused by: java.lang.StackOverflowError
> at java.lang.ThreadLocal.get(ThreadLocal.java:125)
> at java.lang.StringCoding.deref(StringCoding.java:46)
> at java.lang.StringCoding.encode(StringCoding.java:258)
> at java.lang.String.getBytes(String.java:946)
> at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
> at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
> at java.io.File.exists(File.java:733)
> at org.apache.derby.impl.store.raw.data.StreamFileContainer.run(Unknown
> Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.derby.impl.store.raw.data.StreamFileContainer.privExists(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.StreamFileContainer.open(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openStreamContainer(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openStreamContainer(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.dropStreamContainer(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.dropStreamContainer(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.DropOnCommit.update(Unknown Source)
> at java.util.Observable.notifyObservers(Observable.java:142)
> at
> org.apache.derby.iapi.store.raw.xact.RawTransaction.notifyObservers(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.DropOnCommit.update(Unknown Source)
> at java.util.Observable.notifyObservers(Observable.java:142)
> at
> org.apache.derby.iapi.store.raw.xact.RawTransaction.notifyObservers(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.DropOnCommit.update(Unknown Source)
> at java.util.Observable.notifyObservers(Observable.java:142)
> at
> org.apache.derby.iapi.store.raw.xact.RawTransaction.notifyObservers(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.DropOnCommit.update(Unknown Source)
> at java.util.Observable.notifyObservers(Observable.java:142)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira