[ 
https://issues.apache.org/jira/browse/CONNECTORS-496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13427613#comment-13427613
 ] 

Karl Wright commented on CONNECTORS-496:
----------------------------------------

On Postgresql, the test passed, but on cleanup it failed to exit.  A thread 
dump shows that a thread is waiting on a lock which no other thread holds:

{code}
Full thread dump Java HotSpot(TM) Client VM (17.0-b17 mixed mode, sharing):

"MultiThreadedHttpConnectionManager cleanup" daemon prio=6 tid=0x05523000 nid=0x
11ec in Object.wait() [0x061af000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23eb9be0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        - locked <0x23eb9be0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$Refe
renceQueueThread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x0137e800 nid=0x1904 runnable [0x000000
00]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x01363c00 nid=0x1cd4 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x01360c00 nid=0x1af8 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x0135dc00 nid=0x15b8 runnable [0x0000000
0]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x01358800 nid=0xa44 in Object.wait() [0x0437f000]

   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        - locked <0x23c641c8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x01353c00 nid=0x1950 in Object.wait() [0
x0432f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x23c64250> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x0131b000 nid=0x1d18 in Object.wait() [0x0023e000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at org.apache.manifoldcf.core.jdbcpool.ConnectionPool.getConnection(Conn
ectionPool.java:76)
        - locked <0x23d56028> (a org.apache.manifoldcf.core.jdbcpool.ConnectionP
ool)
        at org.apache.manifoldcf.core.database.ConnectionFactory.getConnectionWi
thRetries(ConnectionFactory.java:125)
        at org.apache.manifoldcf.core.database.ConnectionFactory.getConnection(C
onnectionFactory.java:96)
        at org.apache.manifoldcf.core.database.Database.internalTransactionBegin
(Database.java:250)
        at org.apache.manifoldcf.core.database.Database.synchronizeTransactions(
Database.java:237)
        at org.apache.manifoldcf.core.database.Database$QueryCacheExecutor.creat
e(Database.java:1382)
        at org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndEx
ecute(CacheManager.java:144)
        at org.apache.manifoldcf.core.database.Database.executeQuery(Database.ja
va:186)
        at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuer
y(DBInterfacePostgreSQL.java:803)
        at org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.
java:221)
        at org.apache.manifoldcf.crawler.repository.RepositoryConnectionManager.
getAllConnections(RepositoryConnectionManager.java:263)
        at org.apache.manifoldcf.crawler.tests.ConnectorBasePostgresql.localClea
nUp(ConnectorBasePostgresql.java:210)
        at org.apache.manifoldcf.crawler.tests.ConnectorBasePostgresql.cleanUp(C
onnectorBasePostgresql.java:182)
        at org.apache.manifoldcf.crawler.tests.BaseITPostgresql.cleanUp(BaseITPo
stgresql.java:208)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework
Method.java:44)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal
lable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe
thod.java:41)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.ja
va:37)
        at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4Cla
ssRunner.java:79)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
ner.java:71)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
ner.java:49)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUni
tTestRunner.java:520)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(J
UnitTestRunner.java:1060)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUn
itTestRunner.java:911)

"VM Thread" prio=10 tid=0x01352400 nid=0x194c runnable

"VM Periodic Task Thread" prio=10 tid=0x01392400 nid=0xf2c waiting on condition


JNI global references: 1414
{code}

Note the lock wait on 0x23d56028.  Since there's no other reference to it, 
looks like a JVM bug.

                
> Test needed for MySQL that exercises hopcount filtering during a load test
> --------------------------------------------------------------------------
>
>                 Key: CONNECTORS-496
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-496
>             Project: ManifoldCF
>          Issue Type: Test
>          Components: Framework core
>    Affects Versions: ManifoldCF 0.6
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>             Fix For: ManifoldCF 0.7
>
>
> User reports that ManifoldCF web crawls run on MySQL fail to find the correct 
> number of documents, compared to web crawls run on PostgreSQL.  The documents 
> included differ from run to run.  We need a test that duplicates the 
> appropriate environment.  >12000 documents, hop-count filtering enabled.
> >   - Max Hop on Links: 15
> >   - Max Hop on Redirects: 10
> >   - Include only hosts matching seeds: Checked
> >   - org.apache.manifoldcf.crawler.threads: 50
> >   - org.apache.manifoldcf.database.maxhandles: 100

--
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

        

Reply via email to