Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 67079 invoked from network); 4 Oct 2009 11:11:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Oct 2009 11:11:22 -0000 Received: (qmail 51167 invoked by uid 500); 4 Oct 2009 11:11:22 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 51068 invoked by uid 500); 4 Oct 2009 11:11:21 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 51058 invoked by uid 99); 4 Oct 2009 11:11:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Oct 2009 11:11:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Oct 2009 11:11:17 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 3E4D2234C03A for ; Sun, 4 Oct 2009 04:10:56 -0700 (PDT) Message-ID: <1886401224.1254654656239.JavaMail.jira@brutus> Date: Sun, 4 Oct 2009 04:10:56 -0700 (PDT) From: "Andrey Adamovich (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Created: (JCR-2345) Many threads are blocked trying to get lock: org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager@0x2b71b2c979c0[fat lock] MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org Many threads are blocked trying to get lock: org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager@0x2b71b2c979c0[fat lock] -------------------------------------------------------------------------------------------------------------------------------------------- Key: JCR-2345 URL: https://issues.apache.org/jira/browse/JCR-2345 Project: Jackrabbit Content Repository Issue Type: Bug Components: jackrabbit-core, JCR 1.0.1, locks Affects Versions: 1.5.5 Environment: HP Unix Reporter: Andrey Adamovich We implemented a multi-threaded export functionlity for our JR repository, but it turns out that intended parallel behavior can't be achieved becuase most of the threads seemed to be waiting for OraclePersistenceManager. This is the stack trace for most of the waiting threads: -- Blocked trying to get lock: org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager@0x2b71b2c979c0[fat lock] at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method) at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1675)[optimized] at jrockit/vm/Locks.lockFat(Locks.java:1776)[optimized] at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1312)[optimized] at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1259)[optimized] at org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:506)[optimized] at org/apache/jackrabbit/core/state/SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1343)[inlined] at org/apache/jackrabbit/core/state/SharedItemStateManager.hasItemState(SharedItemStateManager.java:297)[optimized] at org/apache/jackrabbit/core/state/XAItemStateManager.hasItemState(XAItemStateManager.java:295)[optimized] at org/apache/jackrabbit/core/state/SessionItemStateManager.getItemState(SessionItemStateManager.java:181)[optimized] at org/apache/jackrabbit/core/ItemManager.getItemData(ItemManager.java:282)[inlined] at org/apache/jackrabbit/core/ItemManager.getItemData(ItemManager.java:249)[inlined] at org/apache/jackrabbit/core/ItemManager.getNode(ItemManager.java:513)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.prefetchNext(LazyItemIterator.java:109)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.next(LazyItemIterator.java:230)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.nextNode(LazyItemIterator.java:137)[optimized] ^-- Holding lock: org/apache/jackrabbit/core/ItemManager@0x2b71ec068f58[thin lock] at org/apache/jackrabbit/commons/xml/Exporter.exportNodes(Exporter.java:212)[optimized] at org/apache/jackrabbit/commons/xml/DocumentViewExporter.exportNode(DocumentViewExporter.java:77)[inlined] at org/apache/jackrabbit/commons/xml/Exporter.exportNode(Exporter.java:294)[inlined] at org/apache/jackrabbit/commons/xml/Exporter.export(Exporter.java:143)[optimized] at org/apache/jackrabbit/commons/AbstractSession.export(AbstractSession.java:462)[inlined] at org/apache/jackrabbit/commons/AbstractSession.exportDocumentView(AbstractSession.java:236)[inlined] at org/apache/jackrabbit/commons/AbstractSession.exportDocumentView(AbstractSession.java:281)[optimized] ^-- Holding lock: org/apache/jackrabbit/core/XASessionImpl@0x2b71ec068950[thin lock] This is the stack trace for blocking thread: at jrockit/net/SocketNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BIII)I(Native Method) at jrockit/net/SocketNativeIO.socketRead(SocketNativeIO.java:46)[optimized] at java/net/SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(SocketInputStream.java)[inlined] at java/net/SocketInputStream.read(SocketInputStream.java:129)[optimized] at oracle/net/ns/Packet.receive()V(Unknown Source)[inlined] at oracle/net/ns/DataPacket.receive()V(Unknown Source)[optimized] at oracle/net/ns/NetInputStream.getNextPacket()V(Unknown Source)[optimized] at oracle/net/ns/NetInputStream.read([BII)I(Unknown Source)[inlined] at oracle/net/ns/NetInputStream.read([B)I(Unknown Source)[inlined] at oracle/net/ns/NetInputStream.read()I(Unknown Source)[optimized] at oracle/jdbc/driver/T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1104)[inlined] at oracle/jdbc/driver/T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)[inlined] at oracle/jdbc/driver/T4C8TTILob.receiveReply(T4C8TTILob.java:872)[optimized] at oracle/jdbc/driver/T4C8TTILob.getChunkSize(T4C8TTILob.java:329)[inlined] at oracle/jdbc/driver/T4CConnection.getChunkSize(T4CConnection.java:2026)[optimized] ^-- Holding lock: oracle/jdbc/driver/T4CConnection@0x2b71b2ce0650[thin lock] at oracle/sql/BLOB.getChunkSize(BLOB.java:389)[inlined] at oracle/sql/BLOB.getBufferSize(BLOB.java:410)[inlined] at oracle/sql/BLOB.getBinaryStream(BLOB.java:229)[optimized] at org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.getBytes(BundleDbPersistenceManager.java:1110)[inlined] at org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1142)[inlined] at org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1094)[inlined] at org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:701)[inlined] at org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:506)[optimized] ^-- Holding lock: org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager@0x2b71b2c979c0[fat lock] at org/apache/jackrabbit/core/state/SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1343)[inlined] at org/apache/jackrabbit/core/state/SharedItemStateManager.hasItemState(SharedItemStateManager.java:297)[optimized] at org/apache/jackrabbit/core/state/XAItemStateManager.hasItemState(XAItemStateManager.java:295)[optimized] at org/apache/jackrabbit/core/state/SessionItemStateManager.getItemState(SessionItemStateManager.java:181)[optimized] at org/apache/jackrabbit/core/ItemManager.getItemData(ItemManager.java:282)[inlined] at org/apache/jackrabbit/core/ItemManager.getItemData(ItemManager.java:249)[inlined] at org/apache/jackrabbit/core/ItemManager.getNode(ItemManager.java:513)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.prefetchNext(LazyItemIterator.java:109)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.next(LazyItemIterator.java:230)[inlined] at org/apache/jackrabbit/core/LazyItemIterator.nextNode(LazyItemIterator.java:137)[optimized] ^-- Holding lock: org/apache/jackrabbit/core/ItemManager@0x2b71dcf8c668[thin lock] at org/apache/jackrabbit/commons/xml/Exporter.exportNodes(Exporter.java:212)[optimized] at org/apache/jackrabbit/commons/xml/DocumentViewExporter.exportNode(DocumentViewExporter.java:77)[inlined] at org/apache/jackrabbit/commons/xml/Exporter.exportNode(Exporter.java:294)[inlined] at org/apache/jackrabbit/commons/xml/Exporter.export(Exporter.java:143)[optimized] at org/apache/jackrabbit/commons/AbstractSession.export(AbstractSession.java:462)[inlined] at org/apache/jackrabbit/commons/AbstractSession.exportDocumentView(AbstractSession.java:236)[inlined] at org/apache/jackrabbit/commons/AbstractSession.exportDocumentView(AbstractSession.java:281)[optimized] ^-- Holding lock: org/apache/jackrabbit/core/XASessionImpl@0x2b71dcf8c3c0[thin lock] Oracle database performfs as usual. So, I doubt that it is an Oracle problem. In any case is there any way to avoid other threads blocking each other while performing read operations from PM? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.