[Mulgara-dev] Lost phase token

Paul Gearon gearon at ieee.org
Thu Sep 24 20:08:21 UTC 2009


On Thu, Sep 24, 2009 at 3:21 PM, James Leigh <james-nospam at leighnet.ca> wrote:
> There process alternates between session.modelExists(model) and
> session.insert(model, Collections.singleton(st)) and sometimes a delete.
> So this alternating between read and write is causing all these phase
> tokens to be created.

It's certainly a read operation, which would normally cause this. But
when I looked at the code, it just does a quick look at the index,
without reserving anything. This makes it look like it doesn't create
new phase tokens.... so long as you're just testing for graph
existence. However, it's complex code, so I won't guarantee that
without running through it with a debugger.

> Because modelExists, insert, delete do not return
> any Answers there is nothing to be closed.

That's also right. I just checked and confirmed that the resources
associated with the phase get closed for you.

> Here is the stack to to a use() call that is never released. It looks
> like this delete is causing the problems.

This looks like a delete/select command. Is this right? Maybe these
commands don't close off the selection properly. I'll look into it.


Paul

> Any thoughts?
>
> James
> ---
>
>  org.mulgara.store.xa.FreeList$Phase.use(FreeList.java:1138)
>  org.mulgara.store.xa.ManagedBlockFile$Phase$Token.<init>(ManagedBlockFile.java:528)
>  org.mulgara.store.xa.ManagedBlockFile$Phase.use(ManagedBlockFile.java:288)
>  org.mulgara.store.xa.AVLFile$Phase$Token.<init>(AVLFile.java:457)
>  org.mulgara.store.xa.AVLFile$Phase.use(AVLFile.java:393)
>  org.mulgara.store.statement.xa.TripleAVLFile$Phase$Token.<init>(TripleAVLFile.java:1673)
>  org.mulgara.store.statement.xa.TripleAVLFile$Phase.use(TripleAVLFile.java:1419)
>  org.mulgara.store.statement.xa.TripleAVLFile$Phase$AbstractStoreTuples.<init>(TripleAVLFile.java:1805)
>  org.mulgara.store.statement.xa.TripleAVLFile$Phase$TuplesImpl.<init>(TripleAVLFile.java:2273)
>  org.mulgara.store.statement.xa.TripleAVLFile$Phase.allTuples(TripleAVLFile.java:1227)
>  org.mulgara.store.statement.xa.XAStatementStoreImpl$Phase.findTuples(XAStatementStoreImpl.java:1853)
>  org.mulgara.store.statement.xa.XAStatementStoreImpl.findTuples(XAStatementStoreImpl.java:589)
>  org.mulgara.resolver.store.StatementStoreResolution.defineIndex(StatementStoreResolution.java:264)
>  org.mulgara.resolver.store.StatementStoreResolution.<init>(StatementStoreResolution.java:154)
>  org.mulgara.resolver.store.StatementStoreResolver.resolve(StatementStoreResolver.java:393)
>  org.mulgara.resolver.InternalResolver.resolve(InternalResolver.java:180)
>  org.mulgara.resolver.DatabaseOperationContext.resolveVariableGraph(DatabaseOperationContext.java:696)
>  org.mulgara.resolver.DatabaseOperationContext.resolve(DatabaseOperationContext.java:620)
>  org.mulgara.resolver.LocalQueryResolver.resolve(LocalQueryResolver.java:187)
>  org.mulgara.resolver.DefaultConstraintHandlers$11.resolve(DefaultConstraintHandlers.java:244)
>  org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:187)
>  org.mulgara.resolver.LocalQueryResolver.resolveConstraintOperation(LocalQueryResolver.java:112)
>  org.mulgara.resolver.DefaultConstraintHandlers$5.resolve(DefaultConstraintHandlers.java:162)
>  org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:187)
>  org.mulgara.resolver.LocalQueryResolver.resolveE(LocalQueryResolver.java:269)
>  org.mulgara.resolver.DatabaseOperationContext.doQuery(DatabaseOperationContext.java:794)
>  org.mulgara.resolver.ModifyGraphOperation.execute(ModifyGraphOperation.java:179)
>  org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:625)
>  org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:751)
>  org.mulgara.resolver.DatabaseSession.modify(DatabaseSession.java:737)
>  org.mulgara.resolver.DatabaseSession.delete(DatabaseSession.java:353)
>
> _______________________________________________
> Mulgara-dev mailing list
> Mulgara-dev at mulgara.org
> http://mulgara.org/mailman/listinfo/mulgara-dev
>



More information about the Mulgara-dev mailing list