Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D9B059903 for ; Mon, 3 Sep 2012 11:37:12 +0000 (UTC) Received: (qmail 58005 invoked by uid 500); 3 Sep 2012 11:37:12 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 57646 invoked by uid 500); 3 Sep 2012 11:37:09 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 57603 invoked by uid 99); 3 Sep 2012 11:37:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Sep 2012 11:37:08 +0000 Date: Mon, 3 Sep 2012 22:37:08 +1100 (NCT) From: "Claus Ibsen (JIRA)" To: dev@activemq.apache.org Message-ID: <529669254.30063.1346672228285.JavaMail.jiratomcat@arcas> In-Reply-To: <1827121548.30200.1345475978027.JavaMail.jiratomcat@arcas> Subject: [jira] [Commented] (AMQ-3982) Overlapping PList iterators can read wrong data or throw exceptions about chunk streams not existing. 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/AMQ-3982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13447228#comment-13447228 ] Claus Ibsen commented on AMQ-3982: ---------------------------------- And today I got this on trunk code on the PListTest {code} 2012-09-03 13:08:59,043 [IRM:0 ] - WARN PListTest - Job[0] caught exception: null java.lang.NullPointerException at org.apache.kahadb.util.LinkedNode.isTailNode(LinkedNode.java:68) at org.apache.kahadb.util.LinkedNode.getNext(LinkedNode.java:48) at org.apache.kahadb.index.ListNode$ListIterator.next(ListNode.java:184) at org.apache.kahadb.index.ListNode$ListIterator.next(ListNode.java:129) at org.apache.activemq.store.kahadb.plist.PList$PListIterator.next(PList.java:210) at org.apache.activemq.store.kahadb.plist.PList$PListIterator.next(PList.java:192) at org.apache.activemq.store.kahadb.plist.PListTest$Job.run(PListTest.java:578) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {code} > Overlapping PList iterators can read wrong data or throw exceptions about chunk streams not existing. > ----------------------------------------------------------------------------------------------------- > > Key: AMQ-3982 > URL: https://issues.apache.org/jira/browse/AMQ-3982 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.6.0 > Reporter: Timothy Bish > Assignee: Timothy Bish > Priority: Critical > Fix For: 5.7.0 > > Attachments: new.txt > > > When multiple PList iterators are in use and happen have an overlapping read of PageFile data on disk they can reset each others seek offset and cause an exception to be thrown about "chunk stream does not exist" or read of a page in the Free list. The reason is that the hasNext of PList iterator needs to by sync'd on the index lock to prevent two iterators from entering into a readPage call concurrently. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira