[ 
https://issues.apache.org/jira/browse/AMQ-3982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish resolved AMQ-3982.
-------------------------------

    Resolution: Fixed

Fix applied to the PList, synchronized the hasNext method on the indexLock 
which prevents multiple iterators from seeking into the pageFile at the same 
time and corrupting the results of a read.  
                
> 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
>
>
> 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: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to