You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@manifoldcf.apache.org by Michael Wilken <wi...@gmail.com> on 2015/01/15 01:22:16 UTC

ManifoldCF 2.0 - Hangs when saving output connector

Hi,

I'm running into a hanging issue when trying to use the new 2.0 release.
Using the multiprocess-file-example, I do the following:

1. start-database.sh
2. initialize.sh
3. start-webapps.sh
4. start-agents.sh

Then, go to the mcf-crawler-ui, create a new Null output connection, and
try to save it.  My browser then just spins (I've given it up to 30
minutes, and nothing happens).

A stack trace shows the Jetty process hanging here:

"qtp638408253-18" prio=5 tid=0x00007fdb3cc30000 nid=0x7403 in Object.wait()
[0x000000012366f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000011bdf15a0> (a java.lang.Integer)
at org.apache.manifoldcf.core.system.ManifoldCF.sleep(ManifoldCF.java:1259)
- locked <0x000000011bdf15a0> (a java.lang.Integer)
at
org.apache.manifoldcf.core.lockmanager.LockObject.obtainGlobalNonExWriteLock(LockObject.java:245)
at
org.apache.manifoldcf.core.lockmanager.LockObject.enterNonExWriteLock(LockObject.java:190)
- locked <0x000000011b30c440> (a
org.apache.manifoldcf.core.lockmanager.FileLockObject)
at
org.apache.manifoldcf.core.lockmanager.LockGate.enterNonExWriteLock(LockGate.java:219)
at
org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWrite(BaseLockManager.java:959)
at
org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWriteLock(BaseLockManager.java:731)
at
org.apache.manifoldcf.core.lockmanager.LockManager.enterNonExWriteLock(LockManager.java:276)
at
org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.save(OutputConnectionManager.java:301)
at org.apache.jsp.execute_jsp._jspService(execute_jsp.java:1047)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

These steps work fine in the 1.7.2 release.  Also, the single process
example work as expected with these steps.

Did I miss a step needed in the 2.0 release with the 'file' example?

Thanks,
-mike

Re: ManifoldCF 2.0 - Hangs when saving output connector

Posted by Karl Wright <da...@gmail.com>.
Ok, found the problem.  See CONNECTORS-1145 for a patch.  Of course, if you
can the best thing to do is to go with the ZooKeeper implementation anyhow,
but if you want to keep using the file synchronization you'll need that
patch, which will work on both ManifoldCF 2.0 and ManifoldCF 1.8.

Thanks,
Karl


On Wed, Jan 14, 2015 at 7:44 PM, Karl Wright <da...@gmail.com> wrote:

> Hi Michael,
>
> I was finally able to reproduce your issue this evening.  The possible
> change was that connection saves use non-ex write locks now, rather than
> exclusive write locks.  I've looked carefully at the file-based locking
> code for this though and found no obvious problems.  I'll keep looking.
>
> Karl
>
>
> On Wed, Jan 14, 2015 at 7:22 PM, Michael Wilken <wi...@gmail.com> wrote:
>
>> Hi,
>>
>> I'm running into a hanging issue when trying to use the new 2.0 release.
>> Using the multiprocess-file-example, I do the following:
>>
>> 1. start-database.sh
>> 2. initialize.sh
>> 3. start-webapps.sh
>> 4. start-agents.sh
>>
>> Then, go to the mcf-crawler-ui, create a new Null output connection, and
>> try to save it.  My browser then just spins (I've given it up to 30
>> minutes, and nothing happens).
>>
>> A stack trace shows the Jetty process hanging here:
>>
>> "qtp638408253-18" prio=5 tid=0x00007fdb3cc30000 nid=0x7403 in
>> Object.wait() [0x000000012366f000]
>>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>> at java.lang.Object.wait(Native Method)
>> - waiting on <0x000000011bdf15a0> (a java.lang.Integer)
>> at
>> org.apache.manifoldcf.core.system.ManifoldCF.sleep(ManifoldCF.java:1259)
>> - locked <0x000000011bdf15a0> (a java.lang.Integer)
>> at
>> org.apache.manifoldcf.core.lockmanager.LockObject.obtainGlobalNonExWriteLock(LockObject.java:245)
>> at
>> org.apache.manifoldcf.core.lockmanager.LockObject.enterNonExWriteLock(LockObject.java:190)
>> - locked <0x000000011b30c440> (a
>> org.apache.manifoldcf.core.lockmanager.FileLockObject)
>> at
>> org.apache.manifoldcf.core.lockmanager.LockGate.enterNonExWriteLock(LockGate.java:219)
>> at
>> org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWrite(BaseLockManager.java:959)
>> at
>> org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWriteLock(BaseLockManager.java:731)
>> at
>> org.apache.manifoldcf.core.lockmanager.LockManager.enterNonExWriteLock(LockManager.java:276)
>> at
>> org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.save(OutputConnectionManager.java:301)
>> at org.apache.jsp.execute_jsp._jspService(execute_jsp.java:1047)
>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>>
>> These steps work fine in the 1.7.2 release.  Also, the single process
>> example work as expected with these steps.
>>
>> Did I miss a step needed in the 2.0 release with the 'file' example?
>>
>> Thanks,
>> -mike
>>
>>
>>
>

Re: ManifoldCF 2.0 - Hangs when saving output connector

Posted by Karl Wright <da...@gmail.com>.
Hi Michael,

I was finally able to reproduce your issue this evening.  The possible
change was that connection saves use non-ex write locks now, rather than
exclusive write locks.  I've looked carefully at the file-based locking
code for this though and found no obvious problems.  I'll keep looking.

Karl


On Wed, Jan 14, 2015 at 7:22 PM, Michael Wilken <wi...@gmail.com> wrote:

> Hi,
>
> I'm running into a hanging issue when trying to use the new 2.0 release.
> Using the multiprocess-file-example, I do the following:
>
> 1. start-database.sh
> 2. initialize.sh
> 3. start-webapps.sh
> 4. start-agents.sh
>
> Then, go to the mcf-crawler-ui, create a new Null output connection, and
> try to save it.  My browser then just spins (I've given it up to 30
> minutes, and nothing happens).
>
> A stack trace shows the Jetty process hanging here:
>
> "qtp638408253-18" prio=5 tid=0x00007fdb3cc30000 nid=0x7403 in
> Object.wait() [0x000000012366f000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x000000011bdf15a0> (a java.lang.Integer)
> at org.apache.manifoldcf.core.system.ManifoldCF.sleep(ManifoldCF.java:1259)
> - locked <0x000000011bdf15a0> (a java.lang.Integer)
> at
> org.apache.manifoldcf.core.lockmanager.LockObject.obtainGlobalNonExWriteLock(LockObject.java:245)
> at
> org.apache.manifoldcf.core.lockmanager.LockObject.enterNonExWriteLock(LockObject.java:190)
> - locked <0x000000011b30c440> (a
> org.apache.manifoldcf.core.lockmanager.FileLockObject)
> at
> org.apache.manifoldcf.core.lockmanager.LockGate.enterNonExWriteLock(LockGate.java:219)
> at
> org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWrite(BaseLockManager.java:959)
> at
> org.apache.manifoldcf.core.lockmanager.BaseLockManager.enterNonExWriteLock(BaseLockManager.java:731)
> at
> org.apache.manifoldcf.core.lockmanager.LockManager.enterNonExWriteLock(LockManager.java:276)
> at
> org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.save(OutputConnectionManager.java:301)
> at org.apache.jsp.execute_jsp._jspService(execute_jsp.java:1047)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>
> These steps work fine in the 1.7.2 release.  Also, the single process
> example work as expected with these steps.
>
> Did I miss a step needed in the 2.0 release with the 'file' example?
>
> Thanks,
> -mike
>
>
>