[
https://issues.apache.org/jira/browse/DERBY-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12575019#action_12575019
]
jorgenlo edited comment on DERBY-3492 at 3/4/08 7:25 AM:
--------------------------------------------------------------
Patch 1a appends the log chunk to the replication log buffer after forcing a
log shipment to the slave.
Without the patch, replication consistently fails with a "ERROR XRE05: The log
files on the master and slave are not in synch..." exception a few seconds
after forceFlush is called (reproduce by starting a transaction with *many*
inserts or deletes; exception only written to derby.log on slave). With the
patch, I have not been able to reproduce the bug.
All tests passed (with the exception of TransactionTable.sql which also fails
in tinderbox). Request for review.
was (Author: jorgenlo):
Patch 1a appends the log chunk to the replication log buffer after forcing
a log shipment to the slave.
Without the patch, replication consistently fails with a "ERROR XRE05: The log
files on the master and slave are not in synch..." exception a few seconds
after forceFlush is called (reproduce by starting a transaction with *many*
inserts or deletes; exception only written to derby.log on slave). With the
patch, I have not been able to reproduce the bug.
All tests passed. Request for review.
> When the replication log buffer becomes full, the chunk of log that should be
> appended is to the buffer is discarded
> --------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3492
> URL: https://issues.apache.org/jira/browse/DERBY-3492
> Project: Derby
> Issue Type: Bug
> Components: Replication
> Affects Versions: 10.4.0.0
> Reporter: Jørgen Løland
> Assignee: Jørgen Løland
> Attachments: derby-3492-1a.diff, derby-3492-1a.stat
>
>
> In MasterController#appendLog, log is force-sent to the slave if the
> replication log buffer becomes full. However, the log chunk that should have
> been appended is discarded:
> try {
> logBuffer.appendLog(greatestInstant, log, logOffset, logLength);
> } catch (LogBufferFullException lbfe) {
> try {
> logShipper.forceFlush();
> } catch (IOException ioe) {
> ...
> }
> The log chunk must be added after freeing a log buffer by calling forceFlush
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.