Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 45543 invoked from network); 14 Oct 2009 12:28:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 Oct 2009 12:28:54 -0000 Received: (qmail 70049 invoked by uid 500); 14 Oct 2009 12:28:54 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 69977 invoked by uid 500); 14 Oct 2009 12:28:54 -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 69969 invoked by uid 99); 14 Oct 2009 12:28:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Oct 2009 12:28:54 +0000 X-ASF-Spam-Status: No, hits=-10.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI 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; Wed, 14 Oct 2009 12:28:51 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6E60F234C052 for ; Wed, 14 Oct 2009 05:28:31 -0700 (PDT) Message-ID: <1948844952.1255523311450.JavaMail.jira@brutus> Date: Wed, 14 Oct 2009 05:28:31 -0700 (PDT) From: "Andrey Adamovich (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-2345) Many threads are blocked trying to get lock: org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager@0x2b71b2c979c0[fat lock] In-Reply-To: <1886401224.1254654656239.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/JCR-2345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12765540#action_12765540 ] Andrey Adamovich commented on JCR-2345: --------------------------------------- Example configuration: > 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 > Affects Versions: 1.5.5 > Environment: HP Unix > Reporter: Andrey Adamovich > Attachments: dump1.txt, dump2.txt, dump3.txt, OraclePoolingPersistenceManager.java > > > 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.