Kiet Ly, For your stack overflow, can you share your model with me? Dropbox, or zip it and send to my gmail? If not, maybe you could characterize it so I can recreate the issue. david.
On Mon, Aug 1, 2016 at 2:34 PM, David W. Lotts (JIRA) <j...@apache.org> wrote: > > [ > https://issues.apache.org/jira/browse/RYA-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15402590#comment-15402590 > ] > > David W. Lotts commented on RYA-134: > ------------------------------------ > > So are you thinking that a conversion from recursion to a loop would allow > it to scale up better? > It appears that it stores all it's chained inferred statements in memory, > so I suppose that would be the upper limit. But in your case it fails on a > stack overflow. Would you say it should eventually run out of RAM instead > of stack overflow? > > > stack overflow when using owl:TransitiveProperty > > ------------------------------------------------ > > > > Key: RYA-134 > > URL: https://issues.apache.org/jira/browse/RYA-134 > > Project: Rya > > Issue Type: Bug > > Environment: Accumulo 1.6.5 + Rya build from dev branch. > > Reporter: Kiet Ly > > Priority: Critical > > > > matter:involved rdf:type owl:TransitiveProperty . > > Look like Rya is using recursion? > > 28-Jul-2016 16:56:36.688 SEVERE [http-nio-8000-exec-5] > org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for > servlet [springrdf] in context with path [/web.rya] threw exception > [Handler processing failed; nested exception is > java.lang.StackOverflowError] with root cause > > java.lang.StackOverflowError > > at > sun.nio.ch.EPollArrayWrapper.setInterest(EPollArrayWrapper.java:213) > > at > sun.nio.ch.EPollSelectorImpl.putEventOps(EPollSelectorImpl.java:187) > > at > sun.nio.ch.SocketChannelImpl.translateAndSetInterestOps(SocketChannelImpl.java:980) > > at > sun.nio.ch.SelectionKeyImpl.nioInterestOps(SelectionKeyImpl.java:105) > > at > sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:83) > > at sun.nio.ch.SelectorImpl.register(SelectorImpl.java:135) > > at > java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:209) > > at > java.nio.channels.SelectableChannel.register(SelectableChannel.java:277) > > at > org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:334) > > at > org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157) > > at > org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161) > > at > org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131) > > at java.io.FilterInputStream.read(FilterInputStream.java:133) > > at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) > > at > java.io.BufferedInputStream.read1(BufferedInputStream.java:275) > > at java.io.BufferedInputStream.read(BufferedInputStream.java:334) > > at > org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) > > at > org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) > > at > org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129) > > at > org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) > > at > org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) > > at > org.apache.accumulo.core.client.impl.ThriftTransportPool$CachedTTransport.readAll(ThriftTransportPool.java:273) > > at > org.apache.thrift.protocol.TCompactProtocol.readByte(TCompactProtocol.java:601) > > at > org.apache.thrift.protocol.TCompactProtocol.readMessageBegin(TCompactProtocol.java:470) > > at > org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) > > at > org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.recv_startScan(TabletClientService.java:228) > > at > org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.startScan(TabletClientService.java:204) > > at > org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:403) > > at > org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:279) > > at > org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:84) > > at > org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:177) > > at > com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) > > at > mvm.rya.api.utils.CloseableIterableIteration.hasNext(CloseableIterableIteration.java:60) > > at > mvm.rya.api.persist.utils.RyaDAOHelper$1.hasNext(RyaDAOHelper.java:80) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:325) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > at > mvm.rya.rdftriplestore.inference.InferenceEngine.chainTransitiveProperty(InferenceEngine.java:331) > > > > -- > This message was sent by Atlassian JIRA > (v6.3.4#6332) >