Repository navigation
MDEV-40818: INSERT into a table with ENGINE=DuckDB crashes the server when binary logging is enabled. #5936
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 11.4
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=DuckDB; | ||
| INSERT INTO t1 VALUES (1); | ||
| SELECT * FROM t1; | ||
| id | ||
| 1 | ||
| DROP TABLE t1; | ||
| CREATE TABLE t1 (id INT PRIMARY KEY, v VARCHAR(16)) ENGINE=DuckDB; | ||
| BEGIN; | ||
| INSERT INTO t1 VALUES (1, 'one'), (2, 'two'); | ||
| COMMIT; | ||
| SELECT * FROM t1 ORDER BY id; | ||
| id v | ||
| 1 one | ||
| 2 two | ||
| DROP TABLE t1; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| --source ../include/have_duckdb.inc | ||
| --source include/have_log_bin.inc | ||
| --source include/not_msan.inc | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you remove the |
||
| --disable_warnings | ||
|
|
||
| # | ||
| # MDEV-40818 INSERT into ENGINE=DuckDB crashes when binary logging is enabled | ||
| # | ||
|
|
||
| CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=DuckDB; | ||
| INSERT INTO t1 VALUES (1); | ||
| SELECT * FROM t1; | ||
| DROP TABLE t1; | ||
|
|
||
| CREATE TABLE t1 (id INT PRIMARY KEY, v VARCHAR(16)) ENGINE=DuckDB; | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do you need two separate tables here? The mdev claims that the above is enough to reproduce. |
||
| BEGIN; | ||
| INSERT INTO t1 VALUES (1, 'one'), (2, 'two'); | ||
| COMMIT; | ||
| SELECT * FROM t1 ORDER BY id; | ||
| DROP TABLE t1; | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.