-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Bug #76852 - Segmentation fault while starting MySQL with binary log in disk full Linux #109
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
Conversation
Hi, thank you for submitting this pull request. In order to consider your code we need you to sign the Oracle Contribution Agreement (OCA). Please review the details and follow the instructions at http://www.oracle.com/technetwork/community/oca-486395.html |
I have already did this and it is approved.MySQL bug system user/email -> [email protected], 16:48, "mysql-oca-bot" [email protected]:Hi, thank you for submitting this pull request. In order to consider your code we need you to sign the Oracle Contribution Agreement (OCA). Please review the details and follow the instructions at http://www.oracle.com/technetwork/community/oca-486395.html —You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread. Shahriyar Rzayev : Linux/MySQL Administrator(OCP,RHCSA)Personal blog : http://mysql.azBug Hunter as nature : MySQL BUG Database |
Hi, thank you for your contribution. Please confirm this code is submitted under the terms of the OCA (Oracle's Contribution Agreement) you have previously signed by cutting and pasting the following text as a comment: |
I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it. |
Hi, thank you for your contribution. Your code has been assigned to an internal queue. Please follow |
Summary: This diff fixes two bugs that returned missing rows with prefix bloom filter. 1. Range scan with equal predicates (i.e. WHERE id1=1 AND id2>=1). In this case, equal condition length should be (index_id + id1) and prefix bloom filter should be skipped if the length is shorter than prefix bloom length. Without this diff, equal condition length was (index_id + id1 + id2), which was incorrect. 2. IN clause with different condition length (i.e. WHERE name IN ('AAAAAAA', 'A'). In this case, ha_rocksdb::setup_index_scan() is called multiple times, and equal condition length is different. So whether to use prefix bloom filter should be decided one by one. @update-submodule: rocksdb Test Plan: bloomfilter2 Reviewers: jkedgar, maykov, hermanlee4, spetrunia Reviewed By: spetrunia Differential Revision: https://reviews.facebook.net/D46851 Differential Revision: https://reviews.facebook.net/D47085 Differential Revision: https://reviews.facebook.net/D47169 Differential Revision: https://reviews.facebook.net/D50181
Summary: MyRocks doesn't support next-key locking so binlog_format!=ROW may cause data inconsistency. On 5.6 slaves, binlog_format!=ROW is fine because no concurrent access to the same table is guaranteed. This diff changes as below. - Rejecting updates (locking reads, including SELECT FOR UPDATE) on master - No behavior changes on slave - No behavior changes if binlog was disabled on the session - Added a new session variable rocksdb_unsafe_for_binlog to optionally allow writing with statement based binary logging Test Plan: mtr, new test case rpl_statement Reviewers: spetrunia, hermanlee4, jkedgar, santoshb Reviewed By: santoshb Subscribers: webscalesql-eng Differential Revision: https://reviews.facebook.net/D51231 Differential Revision: https://reviews.facebook.net/D51489 Differential Revision: https://reviews.facebook.net/D51555 Differential Revision: https://reviews.facebook.net/D51597
Summary: This diff fixes two bugs that returned missing rows with prefix bloom filter. 1. Range scan with equal predicates (i.e. WHERE id1=1 AND id2>=1). In this case, equal condition length should be (index_id + id1) and prefix bloom filter should be skipped if the length is shorter than prefix bloom length. Without this diff, equal condition length was (index_id + id1 + id2), which was incorrect. 2. IN clause with different condition length (i.e. WHERE name IN ('AAAAAAA', 'A'). In this case, ha_rocksdb::setup_index_scan() is called multiple times, and equal condition length is different. So whether to use prefix bloom filter should be decided one by one. @update-submodule: rocksdb Test Plan: bloomfilter2 Reviewers: jkedgar, maykov, hermanlee4, spetrunia Reviewed By: spetrunia Differential Revision: https://reviews.facebook.net/D46851 Differential Revision: https://reviews.facebook.net/D47085 Differential Revision: https://reviews.facebook.net/D47169 Differential Revision: https://reviews.facebook.net/D50181
Summary: MyRocks doesn't support next-key locking so binlog_format!=ROW may cause data inconsistency. On 5.6 slaves, binlog_format!=ROW is fine because no concurrent access to the same table is guaranteed. This diff changes as below. - Rejecting updates (locking reads, including SELECT FOR UPDATE) on master - No behavior changes on slave - No behavior changes if binlog was disabled on the session - Added a new session variable rocksdb_unsafe_for_binlog to optionally allow writing with statement based binary logging Test Plan: mtr, new test case rpl_statement Reviewers: spetrunia, hermanlee4, jkedgar, santoshb Reviewed By: santoshb Subscribers: webscalesql-eng Differential Revision: https://reviews.facebook.net/D51231 Differential Revision: https://reviews.facebook.net/D51489 Differential Revision: https://reviews.facebook.net/D51555 Differential Revision: https://reviews.facebook.net/D51597
…grams without writing to system tables (mysql#111) * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]>
…grams without writing to system tables (mysql#111) * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]>
…grams without writing to system tables (mysql#111) * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> * New `ANALYZE TABLE ... QUERY HISTOGRAM` syntax to fetch histograms without writing to system tables (mysql#109) * ANALYZE TABLE ... QUERY HISTOGRAM Signed-off-by: Shlomi Noach <[email protected]> * validate 'WITH [n] BUCKETS' syntax works Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]> --------- Signed-off-by: Shlomi Noach <[email protected]>
According to BUG report,
my_printf_warning
function is calling*sql_print_warning_hook
which is NULL/uninitialized at that point of crash.The 2 possible solution is initialize
sql_print_warning_hook= sql_print_warning
at the top ofinit_server_components()
or to add a check forsql_print_warning_hook
insidemy_error.c/my_printf_warning()
. The best to have both of them.