Bug 922184

Summary: Replicated journal - NullPointerException on backup side when saving add/commit message to non-existing journal
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Dmytro Pogrebniuk <dpogrebn>
Component: HornetQAssignee: Clebert Suconic <clebert.suconic>
Status: CLOSED NOTABUG QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.1.0CC: csuconic, mnovak, myarboro, nziakova, pslavice, rdickens
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Known Issue
Doc Text:
Cause: Consequence: Workaround (if any): Result: .
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-17 21:20:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dmytro Pogrebniuk 2013-03-15 17:01:08 UTC
Description of problem:
During initial live-to-backup journal replication ReplicationStartSyncMessage and ReplicationSyncFileMessage were dropped due to a network problem.
In this case journal was not register. Next access to this journal causes NullPointerException.

Version-Release number of selected component (if applicable):
2.3.0.CR1

Additional info:

ReplicationCommitMessage:

HQ222130: error handling packet ReplicationCommitMessage[type=96, channel=2, journalID=1, txAction='commmit'] for replication: java.lang.NullPointerException
	at org.hornetq.core.replication.ReplicationEndpoint.getJournal(ReplicationEndpoint.java:879) [hornetq-server-2.3.0.CR1.jar:]
	at org.hornetq.core.replication.ReplicationEndpoint.handleCommitRollback(ReplicationEndpoint.java:687) [hornetq-server-2.3.0.CR1.jar:]
	at org.hornetq.core.replication.ReplicationEndpoint.handlePacket(ReplicationEndpoint.java:185) [hornetq-server-2.3.0.CR1.jar:]
	at org.hornetq.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:620) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:547) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:523) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1669) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.hornetq.core.remoting.impl.netty.HornetQChannelHandler.messageReceived(HornetQChannelHandler.java:72) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:281) [netty-3.6.2.Final.jar:]
	at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.decode(HornetQFrameDecoder2.java:169) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.messageReceived(HornetQFrameDecoder2.java:134) [hornetq-core-client-2.3.0.CR1.jar:]
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.socket.oio.OioWorker.process(OioWorker.java:71) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.socket.oio.AbstractOioWorker.run(AbstractOioWorker.java:73) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.channel.socket.oio.OioWorker.run(OioWorker.java:51) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.6.2.Final.jar:]
	at org.jboss.netty.util.VirtualExecutorService$ChildExecutorRunnable.run(VirtualExecutorService.java:175) [netty-3.6.2.Final.jar:]
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_38]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_38]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_38]

the same for ReplicationAddTXMessage :

HQ222130: error handling packet PACKET(ReplicationAddTXMessage)[type=92, channelID=2, packetObject=ReplicationAddTXMessage] for replication: java.lang.NullPointerException
	at org.hornetq.core.replication.ReplicationEndpoint.getJournal(ReplicationEndpoint.java:879) [hornetq-server-2.3.0.CR1.jar:]
	at org.hornetq.core.replication.ReplicationEndpoint.handleAppendAddTXRecord(ReplicationEndpoint.java:734) [hornetq-server-2.3.0.CR1.jar:]
	at org.hornetq.core.replication.ReplicationEndpoint.handlePacket(ReplicationEndpoint.java:169) [hornetq-server-2.3.0.CR1.jar:]

Comment 2 Clebert Suconic 2013-05-17 21:20:50 UTC
as I said on another issue, we can't do anything if the server failed before aligning the backups. If you require that live of synchronization then you need a real shared system.