[
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