Never got a response, but instead found a bit of time to look into it 
myself...

It turns out to be problem in trippi it would appear. The following is 
the top of a stacktrace from the constructor of a TransactionalAnswer, 
that is never closed:

        at 
org.mulgara.resolver.TransactionalAnswer.<init>(TransactionalAnswer.java:77)
        at 
org.mulgara.resolver.DatabaseOperationContext.doQuery(DatabaseOperationContext.java:803)
        at 
org.mulgara.resolver.SubqueryAnswer.resolveSubquery(SubqueryAnswer.java:265)
        at 
org.mulgara.resolver.SubqueryAnswer.getObject(SubqueryAnswer.java:204)
        at 
org.mulgara.resolver.TransactionalAnswer$1.execute(TransactionalAnswer.java:88)
        at 
org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:647)
        at 
org.mulgara.resolver.TransactionalAnswer.getObject(TransactionalAnswer.java:86)
        at org.trippi.impl.mulgara.RowGroup.initialize(RowGroup.java:45)
        at org.trippi.impl.mulgara.RowGroup.<init>(RowGroup.java:33)
        at 
org.trippi.impl.mulgara.CollapsedAnswer.initialize(CollapsedAnswer.java:74)
        at 
org.trippi.impl.mulgara.CollapsedAnswer.<init>(CollapsedAnswer.java:58)
        at 
org.trippi.impl.mulgara.MulgaraTupleIterator.<init>(MulgaraTupleIterator.java:24)
        at 
org.trippi.impl.mulgara.MulgaraSession.query(MulgaraSession.java:139)
        at 
org.trippi.impl.base.ConcurrentTriplestoreReader.findTuples(ConcurrentTriplestoreReader.java:79)
        at 
fedora.server.resourceIndex.ResourceIndexImpl.findTuples(ResourceIndexImpl.java:280)
       ....

The RowGroup never closes the answer it gets. Proposed patch:

Index: src/java/org/trippi/impl/mulgara/RowGroup.java
===================================================================
--- src/java/org/trippi/impl/mulgara/RowGroup.java    (revision 103)
+++ src/java/org/trippi/impl/mulgara/RowGroup.java    (working copy)
@@ -109,6 +109,13 @@
                 if (m_rowCount > 0) {
                     m_nextValues = null;
                 }
+                for (int i = 0; i < m_valueList.size(); i++) {
+                    Object val = m_valueList.get(i);
+                    if (val instanceof Answer) {
+                        Answer innerAnswer = (Answer) val;
+                        innerAnswer.close();
+                    }
+                }
             }
         } else {
             m_nextValues = null;




Morten Grouleff wrote:
> When using risearch intensively, I get many lines like the following on my 
> console:
>
> WARN 2008-08-25 10:22:06.082 [Finalizer] (TransactionalAnswer) 
> TransactionalAnswer not closed
>
> And also many like
>
> WARN 2008-08-25 10:33:18.991 [Write-lock Reaper] (MulgaraTransactionFactory) 
> Rolling back inactive transaction
>
> Should that worry me? The fact that it is category "WARN" and that it runs in 
> a finalizer does make me a bit worried. It 
> would appear as if something needs closing? But how can I "close" (or forget 
> to close) anything using the risearch 
> servlet over http?
>   

-- 
Mvh.
Morten Grouleff
--------------------------------------------------------------------
Trifork A/S,  Margrethepladsen 4, DK-8000 Aarhus C, Denmark.
JAOO 2008: Sep. 28. - Oct. 3. 2008  http://jaoo.dk/   See you there?


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Fedora-commons-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers

Reply via email to