It does occur in trunk also. Logs attached in file logs_trunk.tar.gz.
However I did see the TRUNC used for synchronization a couple of times, and also a message of being unable to send TRUNC because of different epochs and sending snapshot instead. So it was a bit harder to reproduced.
This is the data in server A:
[Fbc, Cbc, 6a, 4a, 7bc, 5a, 8bc, 3, 2, 1, 9a, 9bc, 7a, 8a, zookeeper, Abc, 6bc, Bbc, Dbc, Ebc]
This is the data in server B:
[Fbc, Cbc, 7bc, 5bc, 8bc, 4bc, 3, 2, 1, 9bc, zookeeper, Abc, 6bc, Bbc, Dbc, Ebc]
I am working in the patch that sends information about the last transaction from the learner to the leader. That means that synchronization via snapshot will only happen when this problem occurs. Personally I don't see any other way to solve this, please tell me if you do.