Repository navigation
Conversation
DuckDB already prepared for binlog 2PC but had no recover callback, so ha_count_rw_2pc() was 0 and Gtid_log_event asserted. Advertise recover (no prepared XIDs survive restart).
| @@ -0,0 +1,20 @@ | |||
| --source ../include/have_duckdb.inc | |||
| --source include/have_log_bin.inc | |||
| --source include/not_msan.inc | |||
There was a problem hiding this comment.
Can you remove the not_msan.inc. there's currently no compatibility problem.
gkodinov
left a comment
There was a problem hiding this comment.
Thank you for your contribution. This is a preliminary review.
I'd like to request changes based on the .test file comment: it seems that there're some redundant tests there.
| return 0; | ||
| } | ||
|
|
||
| #if MYSQL_VERSION_ID >= 110800 |
There was a problem hiding this comment.
This is most likely killing the messenger.
The real issue is that Gtid_log_event::Gtid_log_event() expects that ha_count_rw_2pc() would return non-zero. And it can only return non-zero if the recover hook is defined.
Why is that, I have no idea (and is a question for the final review).
Feel free to ignore this for now, but I strongly suspect that this is wrong and it will come up in the final review.
| SELECT * FROM t1; | ||
| DROP TABLE t1; | ||
|
|
||
| CREATE TABLE t1 (id INT PRIMARY KEY, v VARCHAR(16)) ENGINE=DuckDB; |
There was a problem hiding this comment.
Why do you need two separate tables here? The mdev claims that the above is enough to reproduce.
DuckDB already prepared for binlog 2PC but had no recover callback, so ha_count_rw_2pc() was 0 and Gtid_log_event asserted.