[jira] [Commented] (CONNECTORS-100) DB lock timeout, and/or indefinite or excessive database activity

2011-10-24 Thread Karl Wright (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13133845#comment-13133845
 ] 

Karl Wright commented on CONNECTORS-100:


I have an RSS load test and a filesystem-based load test for Postgresql now, 
and I hoped to use those to show success, but unfortunately I ran into new 
problems.

First, the cleanup for both of these on trunk unaccountably hangs once in a 
while on my laptop.  The hang is a cold hang, with nothing spinning and nothing 
in the log.  I've created a ticket CONNECTORS-279 to figure out what's going on 
here and fixing it.

Second, the RSS test did not even finish one time in the allotted interval, 
even though it *should* be a good deal faster than the file system test.  A lot 
of queries longer than 60 seconds were reported, none of which make much sense, 
since as far as queries are concerned the RSS test should be even doing fewer 
of them.  I haven't yet opened a ticket for this behavior.




 DB lock timeout, and/or indefinite or excessive database activity
 -

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
Affects Versions: ManifoldCF 0.1, ManifoldCF 0.2, ManifoldCF 0.3, 
 ManifoldCF 0.4
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: ManifoldCF 0.4


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at 

[jira] [Commented] (CONNECTORS-100) DB lock timeout, and/or indefinite or excessive database activity

2011-10-24 Thread Karl Wright (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13133925#comment-13133925
 ] 

Karl Wright commented on CONNECTORS-100:


The RSS connector's performance is because the time is close to a second per 
fetch per document:
10-24-2011 05:30:50.423 fetch   
http://localhost:8189/rss/gen.php?doc=4feed=782type=doc
200 46  843

I've created CONNECTORS-281 for this problem.


 DB lock timeout, and/or indefinite or excessive database activity
 -

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
Affects Versions: ManifoldCF 0.1, ManifoldCF 0.2, ManifoldCF 0.3, 
 ManifoldCF 0.4
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: ManifoldCF 0.4


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 

[jira] [Commented] (CONNECTORS-100) DB lock timeout, and/or indefinite or excessive database activity

2011-08-12 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13084147#comment-13084147
 ] 

Karl Wright commented on CONNECTORS-100:


I haven't heard anything back from the Derby folks. I'm therefore going to 
leave this ticket open.  HSQLDB works better for the hopcount queries, although 
it does not work well for the report queries.  So I guess you can pick your 
poison at the moment.


 DB lock timeout, and/or indefinite or excessive database activity
 -

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright

 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown 

[jira] Commented: (CONNECTORS-100) DB lock timeout, and/or indefinite or excessive database activity

2011-03-16 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13007773#comment-13007773
 ] 

Karl Wright commented on CONNECTORS-100:


Confirmed. It's not an actual deadlock; it recovers after an extended period of 
time.  But it's not clear what query is slow, although this particular one 
seems to be a possibility:

UPDATE hopcount SET deathmark='D',distance=-1 WHERE id IN(SELECT ownerid FROM 
hopdeletedeps t0 WHERE ((t0.jobid=1300315252437 AND 
t0.childidhash='0867FAD4FB2B46E04F2AFA9A1200D63266D48089')) AND EXISTS(SELECT 
'x' FROM intrinsiclink t1 WHERE t1.linktype=t0.linktype AND t1.jobid=t0.jobid 
AND t1.parentidhash=t0.parentidhash AND t1.childidhash=t0.childidhash))

Derby's diagnostics for query plan output seem inadequate to assess this in 
real time, unfortunately.


 DB lock timeout, and/or indefinite or excessive database activity
 -

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright

 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2011-01-30 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12988671#comment-12988671
 ] 

Karl Wright commented on CONNECTORS-100:


What's not clear is how we proceed on this one.
Clearly, hop count tracking can be dangerous if not used cautiously.  The 
question then becomes: is there any automated way to determine if the hopcount 
tracking is going to be dangerous?  And, should we change the defaults for 
every crawl so that this problem does not bite people who believe they are not 
using hop count at all?


 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright

 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-10-09 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12919481#action_12919481
 ] 

Karl Wright commented on CONNECTORS-100:


While I was unable to reproduce the hang, a possibly related problem 
(CONNECTORS-111) I was able to reproduce.  It seems plausible that the solution 
to that problem also may fix this one.

My overall sense, though, is that Derby is simply not stable enough in a 
multithreaded environment to rely on.  I will be opening a ticket for using 
HSQLDB instead for the example.


 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: ManifoldCF
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: LCF Release 0.5


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-09-24 Thread Andrzej Bialecki (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12914588#action_12914588
 ] 

Andrzej Bialecki  commented on CONNECTORS-100:
--

Sorry for not reporting this earlier... but setting the timeout to -1 simply 
causes the process to wait indefinitely, so it doesn't solve the issue. For now 
the workaround seems to be to avoid accessing api and UI at the same time when 
using Derby.

 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: Apache Connectors Framework
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: LCF Release 0.5


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-09-24 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12914593#action_12914593
 ] 

Karl Wright commented on CONNECTORS-100:


My problem is that I was never able to reproduce the hang in the first place.  
I built a spinner that pounded at both API and the UI, and also had a crawl 
running, but nothing ever permanently freezes for me when I do this.  Sure, it 
sometimes takes a minute for the UI or API to respond under such conditions, 
but I never have seen the permanent hang you are describing.

Nevertheless, I feel that the timeout change is warranted.  If you disagree, 
let me know.  Also, should I reopen this ticket?


 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: Apache Connectors Framework
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: LCF Release 0.5


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-09-24 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12914599#action_12914599
 ] 

Karl Wright commented on CONNECTORS-100:


Just for fun, it might make sense to get a thread dump when the thing is hung.  
To do this, run the quick start making sure to capture the output.  Reproduce 
the hang, then get the process's PID, and do kill -QUIT pid.  Then, ^C the 
process, and attach the captured output.


 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: Apache Connectors Framework
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 
Assignee: Karl Wright
 Fix For: LCF Release 0.5


 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-09-07 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12906793#action_12906793
 ] 

Karl Wright commented on CONNECTORS-100:


Just in case, I've run a spinner test pounding on the API at the same time the 
UI is being pounded on.  This is a Windows laptop with the current trunk  
version.  No such errors appear for me.


 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: Apache Connectors Framework
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 

 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
 Source)
 at 
 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
 Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
 at org.apache.acf.core.database.Database.execute(Database.java:526)
 at 
 org.apache.acf.core.database.Database$ExecuteQueryThread.run(Database.java:381)
 

[jira] Commented: (CONNECTORS-100) DB lock timeout

2010-09-07 Thread Karl Wright (JIRA)

[ 
https://issues.apache.org/jira/browse/CONNECTORS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12906805#action_12906805
 ] 

Karl Wright commented on CONNECTORS-100:


Ok, that's a rather different scenario than you first described.  Mainly, the 
database is under high load conditions, because you are in fact crawling - and 
it is possible that you are crawling flat-out, without any significant 
throttling, as well.  It's entirely possible that Derby's default lock timeout 
is simply not long enough to support those conditions.

If you want to continue to use the quick-start for your crawl task, then you 
will probably want to research how to increase this timeout using the derby 
configuration file.  My suggestion though would be to try using postgresql 
instead, since that has much more well-known behavior characteristics.  You can 
use postgresql with the quickstart by changing the line in properties.xml from:

property name=org.apache.acf.databaseimplementationclass 
value=org.apache.acf.core.database.DBInterfaceDerby/

to

property name=org.apache.acf.databaseimplementationclass 
value=org.apache.acf.core.database.DBInterfacePostgreSQL/

You will, of course, also need to install Postgresql as well.





 DB lock timeout
 ---

 Key: CONNECTORS-100
 URL: https://issues.apache.org/jira/browse/CONNECTORS-100
 Project: Apache Connectors Framework
  Issue Type: Bug
  Components: Framework core
 Environment: Running unmodified dist/example from trunk/ using the 
 default configuration.
Reporter: Andrzej Bialecki 

 When a job is started and running (via crawler-ui) occasionally it's not 
 possible to display a list of running jobs. The problem persists even after 
 restarting ACF. The following exception is thrown in the console:
 {code}
 org.apache.acf.core.interfaces.ACFException: Database exception: Exception 
 doing query: A lock could not be obtained within the time requested
 at 
 org.apache.acf.core.database.Database.executeViaThread(Database.java:421)
 at 
 org.apache.acf.core.database.Database.executeUncachedQuery(Database.java:465)
 at 
 org.apache.acf.core.database.Database$QueryCacheExecutor.create(Database.java:1072)
 at 
 org.apache.acf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
 at 
 org.apache.acf.core.database.Database.executeQuery(Database.java:167)
 at 
 org.apache.acf.core.database.DBInterfaceDerby.performQuery(DBInterfaceDerby.java:727)
 at 
 org.apache.acf.crawler.jobs.JobManager.makeJobStatus(JobManager.java:5611)
 at 
 org.apache.acf.crawler.jobs.JobManager.getAllStatus(JobManager.java:5549)
 at 
 org.apache.jsp.showjobstatus_jsp._jspService(showjobstatus_jsp.java:316)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
 at 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at 
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
 at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at 
 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 at 
 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at 
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at 
 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at 
 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
 at 
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be 
 obtained within the time requested
 at 
 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
 Source)
 at