You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rya.apache.org by David Lotts <dl...@gmail.com> on 2016/08/02 19:48:11 UTC

Re: [jira] [Commented] (RYA-134) stack overflow when using owl:TransitiveProperty

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) <ji...@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)
>