-
Maria Couceiro authored
Problem: The tests rpl_json and rpl_virtual_column failed with the condition heap-use-after-free when ran using valgrind or ASAN. Analysis: When updating virtual generated columns that are BLOBs, some storage engines require that we have both the old and new BLOB value for virtual generated columns during updates. The same applies to JSON and GEOMETRY fields, as they are also neither stored in the record buffers, nor stored by the storage engine. Fix: This patch extends to all BLOB based types (namely, JSON and GEOMETRY) the behavior that was already implemented for BLOBs to prevent this issue: when updating read or write generated fields and also when the slave unpacks a row, store the previous field value so that it can be accessed later.
Maria Couceiro authoredProblem: The tests rpl_json and rpl_virtual_column failed with the condition heap-use-after-free when ran using valgrind or ASAN. Analysis: When updating virtual generated columns that are BLOBs, some storage engines require that we have both the old and new BLOB value for virtual generated columns during updates. The same applies to JSON and GEOMETRY fields, as they are also neither stored in the record buffers, nor stored by the storage engine. Fix: This patch extends to all BLOB based types (namely, JSON and GEOMETRY) the behavior that was already implemented for BLOBs to prevent this issue: when updating read or write generated fields and also when the slave unpacks a row, store the previous field value so that it can be accessed later.
Loading