Request duplication across batches following epoch transition
Closed this issue · 1 comments
Following epoch transition requests are sometimes duplicated across batches e.g
First epoch
&{Preprepare:seq_no:189 epoch:1 batch:{client_id:1 req_no:588 digest:"I\xffu\x0b\xca\xc0A\xc4\x06\x9a\x00*\xce#N_\x97\x9bt\x03\xa7\x83\tՁ@\xab\x85\xca\xf02\xd0"} batch:{client_id:1 req_no:592 digest:"P?\x82\x1e\x95\x16\x12ϜX\x85\xaf\xb4\xfbղy\x86\xb6\xa8\xb5\x05n\x85w\xd3ު\xee\x08\xeaf"} batch:{client_id:1 req_no:596 digest:";\xb3\xedR\xcf\x1eM\xdf\xef\xac\xf4X\xa46\xe9\xe58\xda̘X%\x81\x01\x05!\xb4\xbf\xbe`\xbe\x9a"} batch:{client_id:1 req_no:600 digest:"sG\xb7\xd2k\xe7!L\xfaA\x83J\x16\xef<\xed\xe2\xa7\xf4\x98ҫ\xf7%T\xc34\x07\xcb-"} batch:{client_id:1 req_no:604 digest:"\x98j%\xa2lE\xd1K\xfa\x00E\x86\x1f~=\x8e\x81\x12й\xe2\xf3F\xea=\xd9\x1b\x93\xacp\x8a\xf0"}}
&{Prepare:seq_no:189 epoch:1 digest:")a\x10\x04\xacIbܟ0\xc8\xfc\xd4\x0eP\xfe\xf6\x0c_\xa0Vγ\x06G\xaf\xc9#c\n}a"}
&{Commit:seq_no:189 epoch:1 digest:")a\x10\x04\xacIbܟ0\xc8\xfc\xd4\x0eP\xfe\xf6\x0c_\xa0Vγ\x06G\xaf\xc9#c\n}a"}
Second epoch
&{Preprepare:seq_no:201 epoch:2 batch:{client_id:1 req_no:588 digest:"I\xffu\x0b\xca\xc0A\xc4\x06\x9a\x00*\xce#N_\x97\x9bt\x03\xa7\x83\tՁ@\xab\x85\xca\xf02\xd0"} batch:{client_id:1 req_no:592 digest:"P?\x82\x1e\x95\x16\x12ϜX\x85\xaf\xb4\xfbղy\x86\xb6\xa8\xb5\x05n\x85w\xd3ު\xee\x08\xeaf"} batch:{client_id:1 req_no:596 digest:";\xb3\xedR\xcf\x1eM\xdf\xef\xac\xf4X\xa46\xe9\xe58\xda̘X%\x81\x01\x05!\xb4\xbf\xbe`\xbe\x9a"} batch:{client_id:1 req_no:600 digest:"sG\xb7\xd2k\xe7!L\xfaA\x83J\x16\xef<\xed\xe2\xa7\xf4\x98ҫ\xf7%T\xc34\x07\xcb-"} batch:{client_id:1 req_no:604 digest:"\x98j%\xa2lE\xd1K\xfa\x00E\x86\x1f~=\x8e\x81\x12й\xe2\xf3F\xea=\xd9\x1b\x93\xacp\x8a\xf0"} batch:{client_id:1 req_no:608 digest:"\xa2\xeb\x86#řf\x88\xa6\x1d\x1551BK\xb1\x11V.-sݿ\xaal\xabԬ\x89\x93"} batch:{client_id:1 req_no:612 digest:"id<\xe9\xc8\xcb\xcb\xd3P\xdbӫ\xdb\x10\xea,\x16Q\x82zJ4\xaa|\xb0݉\x95\xdc\xd1\xcei"} batch:{client_id:1 req_no:616 digest:"\xa9\x0b\xfc\x1fn\xfeE\x08A\xd8.\xc0\x18TV\xa0\x03:[& \xc1"\x10\xd4g;M\xb4\xf0\xdc$"} batch:{client_id:1 req_no:620 digest:"\x81\x8c\x9c\x10S9\xf71\xad\xc3\x0c\xb1n\xe6BUi\x18\xf3a\xb8;\x06!\x90t\xbb\x17\x80\x89Z\xaa"} batch:{client_id:1 req_no:624 digest:"6JUt\x91\x7fD\xe6\xebH\xd5\x08ako\xa3#\x03\xe8\xcbe#C;E\xfc\xc0\xbc\xcb\x07V\x05"}}
Note that in the first epoch these requests are committed so they shouldn't be present in the following epoch.
This issue is legitimate, but concerns legacy code (on the legacy
branch) and should not be expected to be fixed.