[MDEV-19966] GaleraCluster's one node is Crashed down when many concurrent update was issuing. Created: 2019-07-05 Updated: 2020-07-01 Resolved: 2019-10-31 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Galera |
| Affects Version/s: | 10.4.6 |
| Fix Version/s: | 10.4.9 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Seonghwan Kim | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Fixed | Votes: | 2 |
| Labels: | None | ||
| Environment: |
VMWare, 3-node Galera Cluster, CentOS7 |
||
| Attachments: |
|
||||||||||||
| Issue Links: |
|
||||||||||||
| Description |
|
*Galera Cluster was crashed down, when one record was concurrently updating from many connections. *Only 3 record was inserted *30 connections(3*10 connection) were issuing below same query. *set global wsrep_retry_autocommit=30; *Error Log is like below. mysqld: /home/buildbot/buildbot/build/wsrep-lib/src/client_state.cpp:232: int wsrep::client_state::after_statement(): Assertion `transaction_.state() == wsrep::transaction::s_aborted' failed. To report this bug, see https://mariadb.com/kb/en/reporting-bugs We will try our best to scrape up some info that will hopefully help Server version: 10.4.6-MariaDB-log Thread pointer: 0x7fd6d404e008 Trying to get some variables. Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains We think the query pointer is invalid, but we will try to print it anyway. Writing a core file... |
| Comments |
| Comment by Jan Lindström (Inactive) [ 2019-07-09 ] | ||||||||||||||||||
|
I could not easily repeat this with 3 node cluster. Attaching my test case as a reference. | ||||||||||||||||||
| Comment by Seonghwan Kim [ 2019-07-10 ] | ||||||||||||||||||
|
Not repeat with using procedure. | ||||||||||||||||||
| Comment by Seonghwan Kim [ 2019-08-09 ] | ||||||||||||||||||
|
trigger is also needed. create table notice_log(hostname varchar(12), connection_id varchar(12), time datetime); DELIMITER $$ | ||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2019-10-31 ] | ||||||||||||||||||
|
I added the trigger and still can't repeat with latest i.e. 10.4.9. | ||||||||||||||||||
| Comment by Leon Koens [ 2020-01-28 ] | ||||||||||||||||||
|
I ran into this bug with version 10.4.11 on a 3 node cluster. For me it was a delete query with a trigger that does an insert. The table the delete query deletes from:
The trigger that does an insert:
Which caused the following error: mysqld: /home/buildbot/buildbot/build/mariadb-10.4.11/wsrep-lib/src/client_state.cpp:236: int wsrep::client_state::after_statement(): Assertion `transaction_.state() == wsrep::transaction::s_aborted' failed. | ||||||||||||||||||
| Comment by Martin Kovachev [ 2020-07-01 ] | ||||||||||||||||||
|
I believe my issue may be related or the same as this one! |