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

Christopher L. Shannon reassigned AMQ-6572:
-------------------------------------------

    Assignee: Christopher L. Shannon

> KahaDB journal may not handle max file length changes correctly
> ---------------------------------------------------------------
>
>                 Key: AMQ-6572
>                 URL: https://issues.apache.org/jira/browse/AMQ-6572
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: KahaDB
>    Affects Versions: 5.14.3
>            Reporter: james
>            Assignee: Christopher L. Shannon
>            Priority: Minor
>
> I was exploring the idea of changing the kahadb journal file length on an 
> activemq instance which already has existing data (during a system restart).  
> Initial response from activemq insiders was that this was a supported action, 
> but while examining the Journal source, i stumbled on code which would seem 
> to indicate that it isn't handled correctly
> Source thread: 
> http://activemq.2283324.n4.nabble.com/Can-you-change-the-kahadb-journal-file-size-between-broker-starts-td4721155.html#a4721252
> Potential problem areas (from forum post):
> https://fisheye.apache.org/browse/activemq-6/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java?hb=true#to310
> This is the startup code.  it attempts to adjust the total length by shaving 
> off an unused portion of the final data file.  if you have made the 
> maxFileLength smaller since the last run, and you have actual data in the 
> last journal file which is _after_ the new maxFileLength, then this 
> computation will incorrectly return a negative value.  my suspicion is that 
> the length of the last data file should be used here instead of maxFileLength.
> https://fisheye.apache.org/browse/activemq-6/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java?hb=true#to867
> likewise, this code attempts to handle adjustments to maxFileLength since the 
> journal file was created, but i think it again fails.  if the maxFileLength 
> has been increased since the data file was created, this would seem to be 
> setting an offset which is past the length of the current data file.  again, 
> it seems like the length of the data file should be used directly.
> in general, in order for this to work correctly, the maxFileLength should 
> only be used for code which is creating new files.  all the other code should 
> be solely relying on the size of the existing file, right? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to