[ https://issues.apache.org/jira/browse/DERBY-5624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13219742#comment-13219742 ]
Dag H. Wanvik commented on DERBY-5624: -------------------------------------- I tested Derby5624Test on Solaris 11 (standalone) and it ran OK there, so it could be included in the suite for that platform, I think. It took 317s on my box. > 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