private void appendBlock() { final ByteBuffer rawBuffer = blockPeek.getRawBuffer(); final MutableDirectBuffer buffer = blockPeek.getBuffer(); final long address = logStorage.append(rawBuffer); if (address >= 0) { blockPeek.markCompleted(); logStorageAppendConditions.signalConsumers(); } else { isFailed.set(true); final long positionOfFirstEventInBlock = LogEntryDescriptor.getPosition(buffer, 0); LOG.error( "Failed to append log storage on position '{}'. Stop writing to log storage until recovered.", positionOfFirstEventInBlock); // recover log storage from failure - see zeebe-io/zeebe#500 peekedBlockHandler = this::discardBlock; discardBlock(); } }
private void appendBlock() { final ByteBuffer rawBuffer = blockPeek.getRawBuffer(); final MutableDirectBuffer buffer = blockPeek.getBuffer(); final long address = logStorage.append(rawBuffer); if (address >= 0) { blockPeek.markCompleted(); logStorageAppendConditions.signalConsumers(); } else { isFailed.set(true); final long positionOfFirstEventInBlock = LogEntryDescriptor.getPosition(buffer, 0); LOG.error( "Failed to append log storage on position '{}'. Stop writing to log storage until recovered.", positionOfFirstEventInBlock); // recover log storage from failure - see zeebe-io/zeebe#500 peekedBlockHandler = this::discardBlock; discardBlock(); } }