From: Etienne B. <eb...@fu...> - 2004-01-31 09:43:19
|
Hi, I'm using 20040123 snapshot, in embedded mode (in a webapp environment). I get a snapshot when I have a thread heavily inserting nodes into eXist and another one executing a query. Here is the thread dump (an excerpt) : Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "ApplicationServerThread" prio=3D1 tid=3D0x080d16b8 nid=3D0x63f0 in Object.= wait() [517f9000..517fa8bc] at java.lang.Object.wait(Native Method) - waiting on <0x468d5588> (a org.exist.util.ReentrantReadWriteLock) at org.exist.util.ReentrantReadWriteLock.acquire(ReentrantReadWrite= Lock.java:64) - locked <0x468d5588> (a org.exist.util.ReentrantReadWriteLock) at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:4= 92) at org.exist.collections.Collection.allDocs(Collection.java:222) at org.exist.collections.Collection.allDocs(Collection.java:208) - locked <0x46acc718> (a org.exist.collections.Collection) at org.exist.storage.NativeBroker.getDocumentsByCollection(NativeBr= oker.java:608) at org.exist.parser.Util.createFunction(Util.java:86) at org.exist.parser.XPathTreeParser2.functionCall(XPathTreeParser2.= java:1383) at org.exist.parser.XPathTreeParser2.pathExpr(XPathTreeParser2.java= :555) at org.exist.parser.XPathTreeParser2.pathExpr(XPathTreeParser2.java= :859) at org.exist.parser.XPathTreeParser2.expr(XPathTreeParser2.java:418) at org.exist.parser.XPathTreeParser2.xpath(XPathTreeParser2.java:44= 9) at org.exist.xmldb.LocalXPathQueryService.doQuery(LocalXPathQuerySe= rvice.java:118) at org.exist.xmldb.LocalXPathQueryService.query(LocalXPathQueryServ= ice.java:83) at org.exist.xmldb.LocalXPathQueryService.query(LocalXPathQueryServ= ice.java:69) at com.fullsix.edito.impl.XMLDBManager.query(XMLDBManager.java:440) at com.fullsix.edito.impl.ContentQueryImpl.run(ContentQueryImpl.jav= a:75) at com.fullsix.edito.admin.FolderTree.buildTree(FolderTree.java:79) at com.fullsix.edito.admin.FolderTree.getTree(FolderTree.java:52) - locked <0x451b0be0> (a java.util.Collections$SynchronizedMap) at com.fullsix.edito.admin.NodesTreeAction.performAction(NodesTreeA= ction.java:92) at com.fullsix.edito.admin.BaseAction.execute(BaseAction.java:95) at org.apache.struts.action.RequestProcessor.processActionPerform(R= equestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcess= or.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.jav= a:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:= 507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:195) at javax.servlet.http.HttpServlet.service(HttpServlet.java:309) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at com.evermind._csb._phd(.:518) at com.evermind._csb._bkc(.:174) at com.evermind._ax._lpc(.:620) at com.evermind._ax._tzb(.:189) at com.evermind._bf.run(.:62) - locked <0x46a10898> (a com.evermind.server.ApplicationServerThrea= d) [...] "WorkerThread-1" prio=3D1 tid=3D0x080cee08 nid=3D0x63f0 waiting for monitor= entry [527be000..527be8bc] at org.exist.collections.Collection.setBroker(Collection.java:331) - waiting to lock <0x46acc718> (a org.exist.collections.Collection) at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:4= 95) at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:4= 60) at org.exist.collections.Collection.getParent(Collection.java:318) - locked <0x46abbe00> (a org.exist.collections.Collection) at org.exist.storage.NativeBroker.saveCollection(NativeBroker.java:= 1552) at org.exist.storage.NativeBroker.saveCollection(NativeBroker.java:= 1554) at org.exist.storage.NativeBroker.addDocument(NativeBroker.java:150= 9) at org.exist.Parser.store(Parser.java:994) at org.exist.Parser.parse(Parser.java:462) at org.exist.xmldb.LocalCollection.storeResource(LocalCollection.ja= va:406) at com.fullsix.edito.impl.XMLDBManager.storeXMLDocument(XMLDBManage= r.java:100) at com.fullsix.edito.impl.XMLDBManager.storeXMLDocument(XMLDBManage= r.java:57) at com.fullsix.edito.jobs.SyncXMLDbJob.process(SyncXMLDbJob.java:99) at com.fullsix.edito.jobs.SyncXMLDbJob.execute(SyncXMLDbJob.java:13= 8) at org.quartz.core.JobRunShell.run(JobRunShell.java:147) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadP= ool.java:386) The "ApplicationServerThread" is the one that makes the xpath query. The WorkerThread-1 is a thread than inserts a lot of documents and creates many collections. I've got the problem when I perform a xupdate during a massive insertion too. Tell me if you need more information. I had no such problem with previous versions (I have not tested all the snapshots, though). --=20 Etienne Bernard <eb...@fu...> Senior Software Engineer - FullSIX - http://www.fullsix.com/ |