Step to reproduce (test is attached).
1. write an object within a transaction that took 60 sec (this is done by sleeping between the write and commit). See WriteWithTXThread class
2. while the object is supposed to be looked:
a. do read with READ_COMMITTED
b. do read with DIRTY_READ
c. get min value by aggregation.
Expected result - the READ_COMMITTED and the aggregation should get the same value (null - in case it's the first run and committed (old) value in case all other runs.
Actual result - the READ_COMMITTED gets the committed value, but the aggregation gets the same value as dirty read.
I have run this test in versions 12.0.1 and 14