Buggy code:
private static PartitionDRGateway tryToLoadProVersion ( ) { } protected void init ( int partitionId , NodeDRGateway gateway , boolean isRejoin ) throws IOException { } public void onSuccessfulProcedureCall ( long txnId , long uniqueId , int hash , StoredProcedureInvocation spi , ClientResponseImpl response ) { } public void onSuccessfulMPCall ( long spHandle , long txnId , long uniqueId , int hash , StoredProcedureInvocation spi , ClientResponseImpl response ) { } public void tick ( long txnId ) { } private static final ThreadLocal < AtomicLong > haveOpenTransactionLocal = new ThreadLocal < AtomicLong > ( ) { @ Override protected AtomicLong initialValue ( ) { } } ; private static final ThreadLocal < AtomicLong > lastCommittedSpHandle = new ThreadLocal < AtomicLong > ( ) { @ Override protected AtomicLong initialValue ( ) { } } ; private static final boolean logDebug = false ; public static synchronized void pushDRBuffer ( int partitionId , ByteBuffer buf ) { if ( PartitionDRGateway . logDebug ) { System . out . println ( ( "Received<seq2seq4repair_space>DR<seq2seq4repair_space>buffer<seq2seq4repair_space>size<seq2seq4repair_space>" + ( buf . remaining ( ) ) ) ) ; AtomicLong haveOpenTransaction = PartitionDRGateway . haveOpenTransactionLocal . get ( ) ; buf . order ( ByteOrder . LITTLE_ENDIAN ) ; buf . position ( 8 ) ; while ( buf . hasRemaining ( ) ) { int startPosition = buf . position ( ) ; byte version = buf . get ( ) ; int type = buf . get ( ) ; int checksum = 0 ; if ( version != 0 ) System . out . println ( ( "Remaining<seq2seq4repair_space>is<seq2seq4repair_space>" + ( buf . remaining ( ) ) ) ) ; switch ( PartitionDRGateway . DRRecordType . valueOf ( type ) ) { case INSERT : { if ( ( haveOpenTransaction . get ( ) ) == ( - 1 ) ) { System . out . println ( "Have<seq2seq4repair_space>insert<seq2seq4repair_space>but<seq2seq4repair_space>no<seq2seq4repair_space>open<seq2seq4repair_space>transaction" ) ; System . exit ( ( - 1 ) ) ; } final long tableHandle = buf . getLong ( ) ; final int lengthPrefix = buf . getInt ( ) ; buf . position ( ( ( buf . position ( ) ) + lengthPrefix ) ) ; checksum = buf . getInt ( ) ; System . out . println ( ( ( ( ( ( ( ( "Version<seq2seq4repair_space>" + version ) + "<seq2seq4repair_space>type<seq2seq4repair_space>INSERT<seq2seq4repair_space>table<seq2seq4repair_space>handle<seq2seq4repair_space>" ) + tableHandle ) + "<seq2seq4repair_space>length<seq2seq4repair_space>" ) + lengthPrefix ) + "<seq2seq4repair_space>checksum<seq2seq4repair_space>" ) + checksum ) ) ; break ; } case DELETE : { if ( ( haveOpenTransaction . get ( ) ) == ( - 1 ) ) { System . out . println ( "Have<seq2seq4repair_space>insert<seq2seq4repair_space>but<seq2seq4repair_space>no<seq2seq4repair_space>open<seq2seq4repair_space>transaction" ) ; System . exit ( ( - 1 ) ) ; } final long tableHandle = buf . getLong ( ) ; final int lengthPrefix = buf . getInt ( ) ; buf . position ( ( ( buf . position ( ) ) + lengthPrefix ) ) ; checksum = buf . getInt ( ) ; System . out . println ( ( ( ( ( ( ( ( "Version<seq2seq4repair_space>" + version ) + "<seq2seq4repair_space>type<seq2seq4repair_space>DELETE<seq2seq4repair_space>table<seq2seq4repair_space>handle<seq2seq4repair_space>" ) + tableHandle ) + "<seq2seq4repair_space>length<seq2seq4repair_space>" ) + lengthPrefix ) + "<seq2seq4repair_space>checksum<seq2seq4repair_space>" ) + checksum ) ) ; break ; } case UPDATE : break ; case BEGIN_TXN : { final long txnId = buf . getLong ( ) ; final long spHandle = buf . getLong ( ) ; if ( ( haveOpenTransaction . get ( ) ) != ( - 1 ) ) { System . out . println ( ( ( ( ( "Have<seq2seq4repair_space>open<seq2seq4repair_space>transaction<seq2seq4repair_space>txnid<seq2seq4repair_space>" + txnId ) + "<seq2seq4repair_space>spHandle<seq2seq4repair_space>" ) + spHandle ) + "<seq2seq4repair_space>but<seq2seq4repair_space>already<seq2seq4repair_space>open<seq2seq4repair_space>transaction" ) ) ; System . exit ( ( - 1 ) ) ; } haveOpenTransaction . set ( spHandle ) ; checksum = buf . getInt ( ) ; System . out . println ( ( ( ( ( ( ( ( ( "Version<seq2seq4repair_space>" + version ) + "<seq2seq4repair_space>type<seq2seq4repair_space>BEGIN_TXN<seq2seq4repair_space>" ) + "<seq2seq4repair_space>txnid<seq2seq4repair_space>" ) + txnId ) + "<seq2seq4repair_space>spHandle<seq2seq4repair_space>" ) + spHandle ) + "<seq2seq4repair_space>checksum<seq2seq4repair_space>" ) + checksum ) ) ; break ; } case END_TXN : { final long spHandle = buf . getLong ( ) ; if ( ( haveOpenTransaction . get ( ) ) == ( - 1 ) ) { System . out . println ( ( ( ( "Have<seq2seq4repair_space>end<seq2seq4repair_space>transaction<seq2seq4repair_space>spHandle<seq2seq4repair_space>" + spHandle ) + "<seq2seq4repair_space>but<seq2seq4repair_space>no<seq2seq4repair_space>open<seq2seq4repair_space>transaction<seq2seq4repair_space>and<seq2seq4repair_space>its<seq2seq4repair_space>less<seq2seq4repair_space>then<seq2seq4repair_space>last<seq2seq4repair_space>committed<seq2seq4repair_space>" ) + ( PartitionDRGateway . lastCommittedSpHandle . get ( ) . get ( ) ) ) ) ; System . exit ( ( - 1 ) ) ; } haveOpenTransaction . set ( ( - 1 ) ) ; PartitionDRGateway . lastCommittedSpHandle . get ( ) . set ( spHandle ) ; checksum = buf . getInt ( ) ; System . out . println ( ( ( ( ( ( ( "Version<seq2seq4repair_space>" + version ) + "<seq2seq4repair_space>type<seq2seq4repair_space>END_TXN<seq2seq4repair_space>" ) + "<seq2seq4repair_space>spHandle<seq2seq4repair_space>" ) + spHandle ) + "<seq2seq4repair_space>checksum<seq2seq4repair_space>" ) + checksum ) ) ; break ; } } int calculatedChecksum = DBBPool . getBufferCRC32C ( buf , startPosition , ( ( ( buf . position ( ) ) - startPosition ) - 4 ) ) ; if ( calculatedChecksum != checksum ) { System . out . println ( ( ( ( "Checksum<seq2seq4repair_space>" + calculatedChecksum ) + "<seq2seq4repair_space>didn't<seq2seq4repair_space>match<seq2seq4repair_space>" ) + checksum ) ) ; System . exit ( ( - 1 ) ) ; } } } BBContainer logContainer = DBBPool . wrapBB ( buf ) ; StoredProcedureInvocation spi = new StoredProcedureInvocation ( ) ; <START_BUG> spi . setProcName ( "@ApplySinglePartitionSP" ) ; <END_BUG> spi . setParams ( partitionId , logContainer ) ; final PartitionDRGateway pdrg = PartitionDRGateway . gateways . get ( partitionId ) ; if ( pdrg == null ) { VoltDB . crashLocalVoltDB ( "No<seq2seq4repair_space>PRDG<seq2seq4repair_space>when<seq2seq4repair_space>there<seq2seq4repair_space>should<seq2seq4repair_space>be" , true , null ) ; } try { pdrg . onSuccessfulProcedureCall ( 0 , 0 , 0 , spi , null ) ; } finally { logContainer . discard ( ) ; } } }

Fix:
spi . setProcName ( "@ApplyBinaryLogSP" ) ;