Tree:
e58f200a3d
1-10.5-mdev-34687-binlog-corruption-warning
10-7.selectivity
10.0
10.0-galera
10.1
10.10
10.10-MDEV-16440
10.10-MDEV-28632-old-master-fix
10.10-merge-28798
10.10-spider-sts-demo
10.11
10.11-MDEV-16232
10.11-MDEV-16232-remove-unlock_row
10.11-MDEV-17846
10.11-MDEV-19574
10.11-MDEV-19749-orig
10.11-MDEV-21923-35049
10.11-MDEV-29445-MDEV-31956
10.11-MDEV-30073-R1
10.11-MDEV-31772
10.11-MDEV-31887-Wrong-result-with-split-optimization
10.11-MDEV-33515-spinflag
10.11-MDEV-33515-spinlock
10.11-MDEV-33894
10.11-MDEV-34575
10.11-MDEV-35420
10.11-MDEV-35673
10.11-MDEV-35815-use-after-poison_in_get_hash_symbol
10.11-MDEV-36410-review-input
10.11-MDEV-36787
10.11-MDEV-37056
10.11-MDEV-37136
10.11-MDEV-37138
10.11-MDEV-37195-fix
10.11-MDEV-37901-Wrong-result-for-QUICK_GROUP_MIN_MAX_SELECT_WITH-TIES
10.11-MDEV-37901-variant2
10.11-MDEV-5816
10.11-MDEV-5816-1
10.11-MDEV-5816-2
10.11-MDEV-MDEV-36962
10.11-mdev-31053-uuid-inet-size-not-allowed
10.11-mdev-35168-null-in-exists-clause
10.11-mdev-35739-linestring-intersection
10.11-mdev-35816-asan-print
10.11-mdev-35955-update-wrong-result
10.11-mdev-36389-indexed-text-column-wrong-result
10.11-mdev-37913
10.11-mdev9101
10.11-merge
10.11-merge-30430
10.11-monty
10.11-psergey-sel-before-fix1
10.11-psergey-sel-v1
10.11-ycp-demo
10.2
10.2-22179
10.2-MDEV-17603
10.2-MDEV-18838
10.2-MDEV-19129
10.2-MDEV-21039
10.2-MDEV-21910
10.2-MDEV-22110-dont-log-unmodified-pages
10.2-MDEV-23580
10.2-MDEV-24026
10.2-MDEV-24100
10.2-MDEV-24853
10.2-MDEV-24962-add
10.2-MDEV-24962-addendum
10.2-MDEV-24962-v5
10.2-MDEV-25114
10.2-MDEV-25768
10.2-MDEV-27355-rpl-ubsan
10.2-MDEV-28294-pre-exec
10.2-compatibility-build22257-opt-fixes
10.2-compatibility-debug
10.2-force_drop
10.2-spider-extra
10.2-sysprg-MDEV-21910
10.2-varun
10.2-vicentiu
10.2-wf
10.3
10.3-MDEV-11369
10.3-MDEV-20219
10.3-MDEV-21770
10.3-MDEV-22929-log_corrupted_pages
10.3-MDEV-23711-redo-log-overwrite
10.3-MDEV-24962
10.3-MDEV-28968-v2-galera
10.3-MENT-878
10.3-alter
10.3-fix-test-suite
10.3-varun
10.3-vicentiu
10.3-vicentiu-json-review
10.4
10.4-MDEV-14321
10.4-MDEV-14959
10.4-MDEV-17805
10.4-MDEV-20094
10.4-MDEV-22646
10.4-MDEV-22929-log_corrupted_pages
10.4-MDEV-23580
10.4-MDEV-23580-addendum
10.4-MDEV-23586-test-case
10.4-MDEV-23711-redo-log-overwrite
10.4-MDEV-24962
10.4-MDEV-29988-merge
10.4-MDEV-30073
10.4-MDEV-31005
10.4-SAMU-292
10.4-mdev-15562
10.4-mdev-21633
10.4-mdev22555
10.4-mdev30218-print-negative-gain
10.4-nikita-merge
10.4-opt_trace
10.4-sysprg-galera_3nodes
10.4-varun
10.4-vicentiu-feedback
10.4-vicentiu-histograms
10.4.20-midenok-samu-131
10.5
10.5-MDEV-11107
10.5-MDEV-13362
10.5-MDEV-15053
10.5-MDEV-15053-fixes
10.5-MDEV-17812
10.5-MDEV-18976-redolog-crc
10.5-MDEV-19165
10.5-MDEV-19229
10.5-MDEV-20153
10.5-MDEV-21452-old
10.5-MDEV-21951
10.5-MDEV-22023
10.5-MDEV-22554
10.5-MDEV-22922
10.5-MDEV-22929-log_corrupted_pages
10.5-MDEV-23580
10.5-MDEV-23711-redo-log-overwrite
10.5-MDEV-23766
10.5-MDEV-24962
10.5-MDEV-33927
10.5-MDEV-34266
10.5-MDEV-34372
10.5-MDEV-34433
10.5-MDEV-34938-wlad
10.5-MDEV-35299
10.5-MDEV-35694
10.5-MDEV-36017
10.5-circular-buffer
10.5-mdev-11588
10.5-mdev-18511
10.5-mdev-22104-psi-batch-assertion
10.5-mdev-23278
10.5-mdev-33616-safemalloc
10.5-mdev-34814
10.5-mdev-35583
10.5-mdev-35648
10.5-mdev-35847-wait-flag
10.5-mdev11563
10.5-mdev21784-reg1-vfuncs
10.5-mdev21829
10.5-mdev21829-unique-interface
10.5-mdev21955
10.5-mdev22011
10.5-mdev22119
10.5-mdev22303
10.5-mdev22509
10.5-mdev6915
10.5-mdev7317
10.5-mdev8306
10.5-mdev8306-2
10.5-mdev9750
10.5-merge-30430
10.5-nikita-MDEV-15990
10.5-olter-v3
10.5-olter-v4
10.5-order_by_limit
10.5-pclmul
10.5-s3-minio
10.5-varun
10.5-varun2
10.5-windows-afunix
10.5-wlad-tp-fibers
10.5.9-recoveryfix
10.56-MDEV-30986
10.6
10.6-4991
10.6-MDEV-16437
10.6-MDEV-16708-1
10.6-MDEV-19574
10.6-MDEV-21130-M4-notes
10.6-MDEV-22929-log_corrupted_pages
10.6-MDEV-23580
10.6-MDEV-23711-redo-log-overwrite
10.6-MDEV-24035
10.6-MDEV-24071
10.6-MDEV-24962
10.6-MDEV-25607-mergefix
10.6-MDEV-25899
10.6-MDEV-28607-rr-backup
10.6-MDEV-28621-no-elimination
10.6-MDEV-28968-galera
10.6-MDEV-30363
10.6-MDEV-30536-galera
10.6-MDEV-31949-gtid_prepare_fail_paths
10.6-MDEV-31949-ver0_andrei
10.6-MDEV-31949-xlle
10.6-MDEV-32175
10.6-MDEV-32242
10.6-MDEV-33796-deadlock_in_subqueries_join
10.6-MDEV-33966
10.6-MDEV-34057
10.6-MDEV-34431
10.6-MDEV-34489
10.6-MDEV-34608
10.6-MDEV-34670
10.6-MDEV-34822-galera
10.6-MDEV-34877
10.6-MDEV-35049
10.6-MDEV-35171
10.6-MDEV-35813
10.6-MDEV-36180
10.6-MDEV-36281
10.6-MDEV-36290
10.6-MDEV-36290-bnestere-additions
10.6-MDEV-37771
10.6-MDEV-38041
10.6-clang-cl
10.6-elenst
10.6-limit
10.6-mdev-10825
10.6-mdev-20250-hf
10.6-mdev-33816
10.6-mdev-35587
10.6-mdev-35765-st_overlaps-wrong-result
10.6-mdev21130-refactor
10.6-mdev21829
10.6-mdev22360
10.6-mdev7317
10.6-mdev8306
10.6-merge
10.6-order_by_limit
10.6-selectivity
10.6-semisync-test
10.6-timestamp
10.6-varun
10.6-vatu
10.6-vlesin-cta
10.6-wlad-purge
10.6.5-MDEV-36472-revert-MDEV-26356
10.7
10.7-mdev-29514
10.7-selectivity
10.7-selectivity-old
10.7-vicentiu-selectivity
10.7-wlad-async-log-io
10.8
10.8-selectivity
10.9
10.9-MDEV-16232
10.9-MDEV-5816
10.9-merge-30430
10.9-wlad
11.0
11.0-MDEV-26603
11.0-MDEV-27293
11.0-MDEV-30889
11.0-MDEV-34156
11.1
11.2
11.2-mdev-35046
11.2-nikita-optimizations
11.3
11.3-MDEV-21322-bnestere
11.3-MDEV-33465-mergefix
11.4
11.4-MDEV-21510-optimizer_trace_should_show_the_index_name
11.4-MDEV-31740
11.4-MDEV-33465-mergefix
11.4-MDEV-34431
11.4-MDEV-35398
11.4-MDEV-35905
11.4-MDEV-36096-partial_join_cost_assertion_failure
11.4-MDEV-36301
11.4-MDEV-36304
11.4-MDEV-36463-rename-expression_cache-to-subquery_cache
11.4-MDEV-36761-all-nulls
11.4-MDEV-36761-all-nulls-v2
11.4-MDEV-36861
11.4-MDEV-37244-spincontrol
11.4-MDEV-37412
11.4-MDEV-37723
11.4-MDEV-37843
11.4-MDEV-37907-new-mode
11.4-MDEV-new-mode-v2
11.4-bar
11.4-compatibility-new
11.4-macos-test-exclusion-mechanism
11.4-mdev-32777
11.4-mdev-33652
11.4-mdev-36389-indexed-text-column-wrong-result
11.4-mdev-37771-pseudo-slave
11.4-midenok-mysqltest
11.4-wlad
11.4-wlad-rebase
11.4-wlad-winarm64-ci
11.5
11.5-MDEV-33924
11.5-bar-MDEV-33281
11.6
11.6-MDEV-21322
11.6-MDEV-34179
11.6-MDEV-34551
11.7
11.7-MDEV-33756
11.7-mdev-35126-gis-wrong-result
11.7-mdev-35126-hf
11.8
11.8-MDEV-19574
11.8-MDEV-28730
11.8-MDEV-34703-followup
11.8-MDEV-35155
11.8-MDEV-37784
11.8-MDEV-37874
11.8-MDEV-37875
11.8-mdev-35510-asan-bootstrap-crash
11.8-mdev-35739-linestring-intersection
11.8-mdev-35848
11.8-mdev-36389-indexed-text-column-wrong-result
11.8-mdev-37029-vcol-row-in
11.8-mdev-38003-multi-delete-repl-failure
11.8-monty-MDEV-25292
11.8-sn
11.8-sn-av
11.8-sn-av2
11.8-wsrep-schema
12.0
12.0-MDEV-22250
12.0-mdev-36125-index-merge-hint-cleaner
12.0-nikita-global-tmp
12.1
12.1-MDEV-30645
12.1-MDEV-30645-1
12.1-MDEV-35617
12.1-MDEV-36483-dump-ddls-of-tables-views
12.1-MDEV-36511-dump-basic-statistics
12.1-MDEV-36511-dump-basic-statistics-review-input
12.1-MDEV-36511-review-input
12.1-MDEV-37207-dump-ddls-of-tables-for-multi-delete-doesnot-work
12.1-MDEV-37207-multi-delete-v2
12.2
12.2-MDEV-36523-load-basic-stats-back
12.2-MDEV-36523-load-basic-stats-back-review-input
12.2-MDEV-36523-load-basic-stats-back-review-input-2
12.2-MDEV-37220
12.2-MDEV-37789-mdev-35046
12.2-MDEV-37936-v2
12.2-mdev-36813-full-outer-join
12.2-mdev-37260-milestones-one-two-review-input
12.2-mdev-37260-qb-implict-names
12.3-MDEV-36761-new-mode
12.3-MDEV-37932-full-outer-join-syntax
12.3-MDEV-37933-outer-to-left-right-or-inner
12.3-MDEV-37995-name-resolution
12.3-MDEV-38045-impl-qb-name
12.3-mdev-38120-create-sql_json_lib-file
5.5
5.5-galera
DebuggingStuff
FUNDING_yml
MDEV-24176/10.3_old
MDEV-24298
MDEV-24676_cpp
MDEV-25674.ulong
MDEV-28302
MDEV-28926-query-optimizer-json
MDEV-29770/rm_table_variation
MDEV-31740
MDEV-32067
MDEV-32294-Work_In_Progress
MDEV-32551-bnestere
MDEV-34431
MDEV-35519
MDEV-35665
MDEV-35879
MDEV-36089-rowid-flt-v2
MDEV-36234-wlad
MDEV-36301
MDEV-36733-minimal
MDEV-36812
MDEV-36885
MDEV-37115
MDEV-37146
MDEV-37316
MDEV-37530
MDEV-37566
MDEV-37949
MDEV-38029
MDEV-38126
MDEV-4698
MDEV-742-xa_repl
a_simple_question
abychko-10.5-MDEV-26265
atomic
bb-10.10-MDEV-16329
bb-10.10-MDEV-16440
bb-10.10-MDEV-16440-test
bb-10.10-MDEV-23287
bb-10.10-MDEV-27902
bb-10.10-MDEV-28522
bb-10.10-MDEV-28542
bb-10.10-MDEV-28564
bb-10.10-MDEV-28632
bb-10.10-MDEV-28632-review
bb-10.10-MDEV-28656-galera
bb-10.10-MDEV-28771
bb-10.10-MDEV-28817
bb-10.10-MDEV-28869
bb-10.10-MDEV-28881
bb-10.10-MDEV-28883
bb-10.10-MDEV-28930
bb-10.10-MDEV-29021
bb-10.10-MDEV-29181
bb-10.10-MDEV-29947
bb-10.10-MDEV-29989
bb-10.10-MDEV-31173-galera
bb-10.10-MDEV-31757
bb-10.10-MDEV-32453
bb-10.10-MDEV-32726
bb-10.10-all-builders
bb-10.10-andrei
bb-10.10-anel-rpl_fix_assertion
bb-10.10-bar-uca
bb-10.10-buildpass
bb-10.10-columnstore
bb-10.10-danielblack-uca-dump-in-deb
bb-10.10-ddl-nikita
bb-10.10-elenst
bb-10.10-igor
bb-10.10-jan-test
bb-10.10-jan-test2
bb-10.10-marko
bb-10.10-mdev-27575
bb-10.10-mdev-27912
bb-10.10-mdev-28739
bb-10.10-mdev-28883
bb-10.10-mdev-29447
bb-10.10-mdev-29447-31338
bb-10.10-mdev-29502
bb-10.10-mdev-31117
bb-10.10-mdev-31117-merge
bb-10.10-mdev-31400
bb-10.10-mdev-31421
bb-10.10-mdev-31524
bb-10.10-mdev-31787
bb-10.10-mdev-31936
bb-10.10-mdev-31996
bb-10.10-mdev-32046
bb-10.10-mdev-32157
bb-10.10-mdev-32515-bootstrap
bb-10.10-mdev-32559
bb-10.10-mdev-32559-failure-demo
bb-10.10-mdev-32753
bb-10.10-mdev-7487
bb-10.10-mdev28929-v4
bb-10.10-midenok
bb-10.10-midenok-MDEV-20865
bb-10.10-midenok-MDEV-27180
bb-10.10-monty
bb-10.10-nikita
bb-10.10-release-fixssl
bb-10.10-release-rucha
bb-10.10-release-spider-fix
bb-10.10-release-ssl
bb-10.10-serg
bb-10.10-spetrunia
bb-10.10-spetrunia2
bb-10.10-spetrunia3
bb-10.10-ycp
bb-10.10-ycp-mdev-32485
bb-10.10-ycp-spider
bb-10.11-MDEV-16232
bb-10.11-MDEV-20586
bb-10.11-MDEV-24670-memory-pressure
bb-10.11-MDEV-26715
bb-10.11-MDEV-27871
bb-10.11-MDEV-27871-MDEV-31933
bb-10.11-MDEV-28522
bb-10.11-MDEV-28526
bb-10.11-MDEV-28602-wrong-result-with-outer-join-merged-derived-table-and-view
bb-10.11-MDEV-28883
bb-10.11-MDEV-28883-MDEV-29390-tests
bb-10.11-MDEV-29104
bb-10.11-MDEV-29360
bb-10.11-MDEV-29445-ahi-35049
bb-10.11-MDEV-29624
bb-10.11-MDEV-29638
bb-10.11-MDEV-29638-variant2
bb-10.11-MDEV-29638-variant3
bb-10.11-MDEV-29971
bb-10.11-MDEV-30073-8.2
bb-10.11-MDEV-30073-MDEV-32294
bb-10.11-MDEV-30136
bb-10.11-MDEV-30260-mergefix
bb-10.11-MDEV-30406
bb-10.11-MDEV-30411-time-side-by-size
bb-10.11-MDEV-30629
bb-10.11-MDEV-30822-galera
bb-10.11-MDEV-31887-Wrong-result-with-split-optimization
bb-10.11-MDEV-32898-pkgtest
bb-10.11-MDEV-33189
bb-10.11-MDEV-33480
bb-10.11-MDEV-33551-mergefix
bb-10.11-MDEV-33672-mergefix
bb-10.11-MDEV-33799-mergefix
bb-10.11-MDEV-33921-mergefix
bb-10.11-MDEV-33967-handersocket-binlog-pkgtest
bb-10.11-MDEV-34081
bb-10.11-MDEV-34191-systemd-disable-pkgtest
bb-10.11-MDEV-34348-merge-fix
bb-10.11-MDEV-34899
bb-10.11-MDEV-35049
bb-10.11-MDEV-35049-rebase
bb-10.11-MDEV-35072
bb-10.11-MDEV-35673
bb-10.11-MDEV-36319
bb-10.11-MDEV-36592
bb-10.11-MDEV-36765
bb-10.11-MDEV-37680-danblack-pkgtest
bb-10.11-MDEV-37710
bb-10.11-MDEV-5816
bb-10.11-MDEV-7487
bb-10.11-MDEV-7487-MDEV-29390-tests
bb-10.11-MDEV-7487-rebased
bb-10.11-MDEV-7487-rebased-against-11.0
bb-10.11-MDEV-7487-rebased-against-11.0-MDEV-29390-test
bb-10.11-MDEV-7487-rebased-against-11.0-MDEV-29390-test-2
bb-10.11-all-builders
bb-10.11-andrei
bb-10.11-appveyor-fix
bb-10.11-bar
bb-10.11-bar-MDEV-28767
bb-10.11-bar-MDEV-33392
bb-10.11-bar-MDEV-35427
bb-10.11-bar-MDEV-35468
bb-10.11-bar-MDEV-35538
bb-10.11-bar-MDEV-MDEV-35427
bb-10.11-bar-ts-with-tz
bb-10.11-bumpversion
bb-10.11-danblack-MDEV-35904-pkgtest
bb-10.11-danielblack-MDEV-24377-pr2009
bb-10.11-danielblack-MDEV-30205-usr-share-mariadb
bb-10.11-elenst
bb-10.11-fix-rocksdb
bb-10.11-fix-sql-command-flags
bb-10.11-georg
bb-10.11-hashicorp-fixes
bb-10.11-igor
bb-10.11-julius
bb-10.11-julius-galera
bb-10.11-knielsen
bb-10.11-libfmt
bb-10.11-lock-wait-galera
bb-10.11-mdev-22168-hf
bb-10.11-mdev-22979
bb-10.11-mdev-26137
bb-10.11-mdev-26178
bb-10.11-mdev-26247
bb-10.11-mdev-27260
bb-10.11-mdev-27419
bb-10.11-mdev-27419-demo
bb-10.11-mdev-27438-debug
bb-10.11-mdev-27575
bb-10.11-mdev-27912
bb-10.11-mdev-28739
bb-10.11-mdev-29447-31338
bb-10.11-mdev-29502
bb-10.11-mdev-29535
bb-10.11-mdev-29800-hf
bb-10.11-mdev-31117
bb-10.11-mdev-31400
bb-10.11-mdev-31421
bb-10.11-mdev-31516
bb-10.11-mdev-31524
bb-10.11-mdev-31721
bb-10.11-mdev-31787
bb-10.11-mdev-31788
bb-10.11-mdev-31850
bb-10.11-mdev-31996
bb-10.11-mdev-32157
bb-10.11-mdev-32238
bb-10.11-mdev-32524
bb-10.11-mdev-32559
bb-10.11-mdev-32804
bb-10.11-mdev-32986
bb-10.11-mdev-33539
bb-10.11-mdev-34064-ycp-demo
bb-10.11-mdev-34421
bb-10.11-mdev-35249-revert
bb-10.11-mdev-35330
bb-10.11-mdev-35622
bb-10.11-mdev-35807
bb-10.11-mdev-35856
bb-10.11-mdev-36230
bb-10.11-mdev-36325
bb-10.11-mdev-37252
bb-10.11-mdev-37568
bb-10.11-mdev-37682
bb-10.11-mdev16253-OLD-update-rocksdb-6.29fb
bb-10.11-mdev16253-update-rocksdb-6.29fb
bb-10.11-mdev31577
bb-10.11-mdev31577-v2
bb-10.11-merge
bb-10.11-midenok
bb-10.11-midenok-MDEV-20865
bb-10.11-midenok-MDEV-25292
bb-10.11-midenok-MDEV-25292-fixes
bb-10.11-midenok-MDEV-27180
bb-10.11-midenok-MDEV-37325
bb-10.11-midenok-MDEV-4991
bb-10.11-midenok2
bb-10.11-midenok3
bb-10.11-monty
bb-10.11-monty-merge
bb-10.11-monty2
bb-10.11-monty3
bb-10.11-new-innodb-defaults
bb-10.11-new-innodb-julius
bb-10.11-next-serg
bb-10.11-nikita
bb-10.11-no-capabilities-pkgtest
bb-10.11-oalter
bb-10.11-partexp-hf
bb-10.11-release
bb-10.11-release-spider-fixup
bb-10.11-rucha
bb-10.11-selectivity
bb-10.11-selectivity-rebase-nov
bb-10.11-selectivity-v1
bb-10.11-serg
bb-10.11-spetrunia
bb-10.11-spetrunia-tmp
bb-10.11-thiru
bb-10.11-tmp
bb-10.11-vicentiu-cleanups
bb-10.11-vicentiu-osx
bb-10.11-wlad
bb-10.11-wlad-MDEV-26714
bb-10.11-wlad-MDEV-29251
bb-10.11-wlad-aws-sdk
bb-10.11-ycp
bb-10.11-ycp-spider
bb-10.11.11-mdev16253-rocksdb-6.29fb
bb-10.11.7-todo-4858
bb-10.12-MDEV-28891
bb-10.12-MDEV-29269
bb-10.1_MDEV-14014
bb-10.2-14472
bb-10.2-25709
bb-10.2-27snc1
bb-10.2-KILL-as-TOI-galera
bb-10.2-MDEV-13569
bb-10.2-MDEV-14183-aria_pack
bb-10.2-MDEV-14938
bb-10.2-MDEV-16128
bb-10.2-MDEV-16664
bb-10.2-MDEV-17062
bb-10.2-MDEV-17323
bb-10.2-MDEV-17943
bb-10.2-MDEV-181777
bb-10.2-MDEV-18215-unknown-backup-options
bb-10.2-MDEV-18464
bb-10.2-MDEV-18546-nikita
bb-10.2-MDEV-18565
bb-10.2-MDEV-18838
bb-10.2-MDEV-18874
bb-10.2-MDEV-19129
bb-10.2-MDEV-19344
bb-10.2-MDEV-19741
bb-10.2-MDEV-19746
bb-10.2-MDEV-19950
bb-10.2-MDEV-20194-CHECK-row-size
bb-10.2-MDEV-20516
bb-10.2-MDEV-20787
bb-10.2-MDEV-20928
bb-10.2-MDEV-21039
bb-10.2-MDEV-21050-isnan-isinf-isfinite-ported
bb-10.2-MDEV-21335
bb-10.2-MDEV-21601
bb-10.2-MDEV-21618
bb-10.2-MDEV-21681-page-LSN-doesnt-match-cb
bb-10.2-MDEV-21758
bb-10.2-MDEV-21770
bb-10.2-MDEV-21910
bb-10.2-MDEV-21951
bb-10.2-MDEV-22021
bb-10.2-MDEV-22110-dont-log-unmodified-pages
bb-10.2-MDEV-22398-innodb_xa_rollback-fails
bb-10.2-MDEV-22543
bb-10.2-MDEV-22554-ib_error_flag
bb-10.2-MDEV-22726-aria-non-trans-log
bb-10.2-MDEV-22810-open_files_limit
bb-10.2-MDEV-22929-log_corrupted_pages
bb-10.2-MDEV-23101
bb-10.2-MDEV-23483
bb-10.2-MDEV-23484
bb-10.2-MDEV-23500
bb-10.2-MDEV-23536
bb-10.2-MDEV-23564
bb-10.2-MDEV-23600
bb-10.2-MDEV-23711-redo-log-overwrite
bb-10.2-MDEV-23746
bb-10.2-MDEV-23851
bb-10.2-MDEV-23857
bb-10.2-MDEV-23888
bb-10.2-MDEV-23925
bb-10.2-MDEV-23926
bb-10.2-MDEV-24169
bb-10.2-MDEV-24240
bb-10.2-MDEV-24443
bb-10.2-MDEV-24704
bb-10.2-MDEV-24719-last-skipped-lsn-check
bb-10.2-MDEV-24837
bb-10.2-MDEV-24853
bb-10.2-MDEV-24903
bb-10.2-MDEV-24978
bb-10.2-MDEV-25114
bb-10.2-MDEV-25114-galera-v2
bb-10.2-MDEV-25114-planE-galera
bb-10.2-MDEV-25302
bb-10.2-MDEV-25328
bb-10.2-MDEV-25328-plus-spaces
bb-10.2-MDEV-25328-plus-tests
bb-10.2-MDEV-25328-v2
bb-10.2-MDEV-25328-v3
bb-10.2-MDEV-25328-v4
bb-10.2-MDEV-25472
bb-10.2-MDEV-25607
bb-10.2-MDEV-25609
bb-10.2-MDEV-25768
bb-10.2-MDEV-25818
bb-10.2-MDEV-25994
bb-10.2-MDEV-26015
bb-10.2-MDEV-26064-galera
bb-10.2-MDEV-26127
bb-10.2-MDEV-26145
bb-10.2-MDEV-26377-final
bb-10.2-MDEV-26668-schema-mismatch
bb-10.2-MDEV-27025-MDEV-20605
bb-10.2-MDEV-27109
bb-10.2-MDEV-27148-mysqltest-reject
bb-10.2-MDEV-27181
bb-10.2-MDEV-27289-server-embedded-mtr
bb-10.2-MDEV-27462
bb-10.2-MDEV-27524-final
bb-10.2-MDEV-27575
bb-10.2-MDEV-27602
bb-10.2-MDEV-27602-mtr
bb-10.2-MDEV-27740-final
bb-10.2-MDEV-277400
bb-10.2-MDEV-27850
bb-10.2-MDEV-28294
bb-10.2-MDEV-28530
bb-10.2-MDEV26113
bb-10.2-Stepan-fixes
bb-10.2-alice
bb-10.2-anel-MDEV-1448-ctrlc
bb-10.2-comment-hf
bb-10.2-compatibility
bb-10.2-compatibility-build22257-opt-fixes
bb-10.2-compatibility-deadlock
bb-10.2-cpack_rpm-exclude-mysql-test-from-debuginfo
bb-10.2-daniel-getopt-sets-readable-output
bb-10.2-danielblack-MDEV-15393-skip-mysql.gtid_slave_pos-with-master-data
bb-10.2-danielblack-MDEV-16263-mysql_client_test-non-mtr-run
bb-10.2-danielblack-MDEV-21286-remove-bison-warnings
bb-10.2-danielblack-MDEV-23326-timezone-initialization-slow-on-aria
bb-10.2-danielblack-MDEV-24268-mtr-mysql_install_db
bb-10.2-danielblack-MDEV-26363
bb-10.2-danielblack-MDEV-28597-aria-double-free
bb-10.2-elenst
bb-10.2-ext2
bb-10.2-galera
bb-10.2-galera-jan
bb-10.2-group-min-max
bb-10.2-hf
bb-10.2-igor
bb-10.2-jan
bb-10.2-kevgs
bb-10.2-mariabackup-pwd
bb-10.2-mariabackup-remove-nolock
bb-10.2-mariarocks
bb-10.2-mariarocks-merge-pre
bb-10.2-mdev-13626
bb-10.2-mdev-26111
bb-10.2-mdev-26127
bb-10.2-mdev11934
bb-10.2-mdev13153
bb-10.2-mdev13330
bb-10.2-mdev13355
bb-10.2-mdev15245
bb-10.2-mdev16428
bb-10.2-mdev19608
bb-10.2-mdev20371
bb-10.2-mdev22779
bb-10.2-mdev25447
bb-10.2-mdev26047
bb-10.2-mdev26047-v2
bb-10.2-mdev9750
bb-10.2-midenok
bb-10.2-midenok-MDEV-20874
bb-10.2-midenok-MDEV-25794
bb-10.2-midenok-innodb
bb-10.2-midenok-tmp
bb-10.2-monty
bb-10.2-nikita
bb-10.2-nikita-MDEV-26205
bb-10.2-nikita-MDEV-26508
bb-10.2-psergey
bb-10.2-ramesh
bb-10.2-release-fix-mdev23811
bb-10.2-robert
bb-10.2-sachin
bb-10.2-semisync
bb-10.2-semisync_ali
bb-10.2-serg
bb-10.2-spider-extra-jacob
bb-10.2-ssl
bb-10.2-sujatha
bb-10.2-svoj
bb-10.2-sysprg
bb-10.2-varun
bb-10.2-vicentiu
bb-10.2-vicentiu-mdev-17964
bb-10.2-vicentiu3
bb-10.2.32-22529-22456
bb-10.2.36-MDEV-24449-MDEV-24709
bb-10.2.4-spider-extra-jacob
bb-10.2.7
bb-10.2gr
bb-10.3-10.3.23-MDEV-21109-wrong-page-no
bb-10.3-10.3.23-MDEV-22929
bb-10.3-16272
bb-10.3-17390
bb-10.3-20574
bb-10.3-21265
bb-10.3-KILL-as-TOI-galera
bb-10.3-MDEV-14500
bb-10.3-MDEV-14642
bb-10.3-MDEV-14959
bb-10.3-MDEV-14959.version
bb-10.3-MDEV-15058
bb-10.3-MDEV-15058-2
bb-10.3-MDEV-15447
bb-10.3-MDEV-16128
bb-10.3-MDEV-16246
bb-10.3-MDEV-16951
bb-10.3-MDEV-17516
bb-10.3-MDEV-18546-nikita
bb-10.3-MDEV-19415
bb-10.3-MDEV-19845
bb-10.3-MDEV-20100
bb-10.3-MDEV-20485
bb-10.3-MDEV-21027
bb-10.3-MDEV-21109-wrong-page-no
bb-10.3-MDEV-21117
bb-10.3-MDEV-21601
bb-10.3-MDEV-21770
bb-10.3-MDEV-21770-v2
bb-10.3-MDEV-21910
bb-10.3-MDEV-22543
bb-10.3-MDEV-23101
bb-10.3-MDEV-23483
bb-10.3-MDEV-23536
bb-10.3-MDEV-23851
bb-10.3-MDEV-24283
bb-10.3-MDEV-24387
bb-10.3-MDEV-25114
bb-10.3-MDEV-25609
bb-10.3-MDEV-26064-galera
bb-10.3-MDEV-26171-galera
bb-10.3-MDEV-26247
bb-10.3-MDEV-26633
bb-10.3-MDEV-26831-fallout
bb-10.3-MDEV-26915-galera
bb-10.3-MDEV-27524-tests
bb-10.3-MDEV-27575
bb-10.3-MDEV-28599
bb-10.3-MDEV-28656-galera
bb-10.3-MDEV-28669-galera
bb-10.3-MDEV-28739
bb-10.3-MDEV-28758
bb-10.3-MDEV-28758-galera
bb-10.3-MDEV-28798
bb-10.3-MDEV-28968-galera
bb-10.3-MDEV-29294
bb-10.3-MDEV-29433-lock_delete_updated
bb-10.3-MDEV-29644
bb-10.3-MDEV-30052-variant2
bb-10.3-MDEV-30157-galera
bb-10.3-MDEV-30608
bb-10.3-MDEV-31668
bb-10.3-TODO-3498-custom-galera
bb-10.3-abychko
bb-10.3-andrei
bb-10.3-anel-PR796
bb-10.3-bar-MDEV-9777
bb-10.3-cpp11
bb-10.3-danielblack-MDEV-16194-pkgtest-remove-offset
bb-10.3-danielblack-MDEV-18702
bb-10.3-danielblack-MDEV-24268-mtr-mysql_install_db
bb-10.3-danielblack-MDEV-27008-aarch-atomics
bb-10.3-danielblack-MDEV-29015-my_seek-avoid-wsl8443
bb-10.3-danielblack-alloca_h_service-pkgtest
bb-10.3-danielblack-rocksdb-featureinfo
bb-10.3-elenst
bb-10.3-findgssapi
bb-10.3-galera
bb-10.3-georg
bb-10.3-hf
bb-10.3-hf-2
bb-10.3-igor
bb-10.3-jani
bb-10.3-kevgs
bb-10.3-mariarocks
bb-10.3-mdev-24523
bb-10.3-mdev-26247
bb-10.3-mdev-26364
bb-10.3-mdev-26544_3
bb-10.3-mdev-27912
bb-10.3-mdev-29447
bb-10.3-mdev-29447-wip
bb-10.3-mdev-30464
bb-10.3-mdev12179
bb-10.3-mdev15101
bb-10.3-mdev17518
bb-10.3-mdev20109
bb-10.3-mdev21603
bb-10.3-mdev22866
bb-10.3-mdev26249
bb-10.3-mdev26337
bb-10.3-mdev26337-v1
bb-10.3-midenok
bb-10.3-midenok-MDEV-18706
bb-10.3-midenok-MDEV-21138
bb-10.3-midenok-MDEV-28931
bb-10.3-midenok2
bb-10.3-monty
bb-10.3-nikita
bb-10.3-nikita-mdev-24511
bb-10.3-nikita-old
bb-10.3-ramesh
bb-10.3-robert
bb-10.3-sachin
bb-10.3-sachin-rpl
bb-10.3-sachin-tmp
bb-10.3-serg
bb-10.3-spetrunia
bb-10.3-spider
bb-10.3-sujatha
bb-10.3-svoj
bb-10.3-sysprg
bb-10.3-sysprg-vcheck
bb-10.3-varun
bb-10.3-vicentiu
bb-10.3-vicentiu-dtoa
bb-10.3-vicentiu-json-review
bb-10.3-vicentiu-tmp-table
bb-10.3-vicentiu-travis
bb-10.3-vicentiu-travis2
bb-10.3.10-mdev21243
bb-10.3.11-xtrabackup_copy_logfile_failed-MDEV-18611
bb-10.3.16-MDEV-21109-wrong-page-no-assert
bb-10.3.16-MDEV-21109-wrong-page-no-log
bb-10.3.16-xtrabackup_copy_logfile_failed-MDEV-18611-dev
bb-10.3.17-MDEV-21109-wrong-page-no
bb-10.3.21-MDEV-21109-wrong-page-no-log
bb-10.4-10.4.14-MDEV-23711-redo-log-overwrite
bb-10.4-19049
bb-10.4-20131
bb-10.4-20574
bb-10.4-23089
bb-10.4-29882-galera
bb-10.4-31361-v3
bb-10.4-7409
bb-10.4-KILL-as-TOI-galera
bb-10.4-MDEV-13915
bb-10.4-MDEV-14101
bb-10.4-MDEV-15703-1
bb-10.4-MDEV-16249
bb-10.4-MDEV-16462
bb-10.4-MDEV-17520
bb-10.4-MDEV-17520-2
bb-10.4-MDEV-17571
bb-10.4-MDEV-17591
bb-10.4-MDEV-17943
bb-10.4-MDEV-18215-post-push-fix
bb-10.4-MDEV-18215-unknown-backup-options
bb-10.4-MDEV-18215-unknown-backup-options-2
bb-10.4-MDEV-18477
bb-10.4-MDEV-18565
bb-10.4-MDEV-18726
bb-10.4-MDEV-18973
bb-10.4-MDEV-18990
bb-10.4-MDEV-18994
bb-10.4-MDEV-19002
bb-10.4-MDEV-19003
bb-10.4-MDEV-19129
bb-10.4-MDEV-19190-nayuta
bb-10.4-MDEV-19210-environment-file-pkgtest
bb-10.4-MDEV-19520
bb-10.4-MDEV-19781
bb-10.4-MDEV-19803
bb-10.4-MDEV-19950
bb-10.4-MDEV-20100
bb-10.4-MDEV-20185
bb-10.4-MDEV-20230-ftwrl-wait-timeout
bb-10.4-MDEV-20494
bb-10.4-MDEV-20502
bb-10.4-MDEV-20793
bb-10.4-MDEV-20848
bb-10.4-MDEV-21007
bb-10.4-MDEV-21153
bb-10.4-MDEV-21335
bb-10.4-MDEV-21483
bb-10.4-MDEV-21675
bb-10.4-MDEV-21905-v2-galera
bb-10.4-MDEV-21910-v2
bb-10.4-MDEV-22021
bb-10.4-MDEV-22055
bb-10.4-MDEV-22063-galera
bb-10.4-MDEV-22203
bb-10.4-MDEV-22494
bb-10.4-MDEV-22596
bb-10.4-MDEV-22632
bb-10.4-MDEV-22666
bb-10.4-MDEV-22979
bb-10.4-MDEV-22983--option-help
bb-10.4-MDEV-23081
bb-10.4-MDEV-23101
bb-10.4-MDEV-23384
bb-10.4-MDEV-23483
bb-10.4-MDEV-23536
bb-10.4-MDEV-23557
bb-10.4-MDEV-23766
bb-10.4-MDEV-23851
bb-10.4-MDEV-23878
bb-10.4-MDEV-24119
bb-10.4-MDEV-24165
bb-10.4-MDEV-24255
bb-10.4-MDEV-24485
bb-10.4-MDEV-24596
bb-10.4-MDEV-24688
bb-10.4-MDEV-24912-postfix-galera
bb-10.4-MDEV-24964
bb-10.4-MDEV-24978
bb-10.4-MDEV-25047
bb-10.4-MDEV-25089-galera
bb-10.4-MDEV-25114
bb-10.4-MDEV-25869
bb-10.4-MDEV-26171-post-merge
bb-10.4-MDEV-26294-instant-alter-charset
bb-10.4-MDEV-26562-galera
bb-10.4-MDEV-27038-ro-mounts-pkgtest
bb-10.4-MDEV-27233
bb-10.4-MDEV-27233-2
bb-10.4-MDEV-27233-hf
bb-10.4-MDEV-27238
bb-10.4-MDEV-27260
bb-10.4-MDEV-27624
bb-10.4-MDEV-28294
bb-10.4-MDEV-28294-merge
bb-10.4-MDEV-28314
bb-10.4-MDEV-28377
bb-10.4-MDEV-28598
bb-10.4-MDEV-28621
bb-10.4-MDEV-28621-no-remove-unit
bb-10.4-MDEV-28621-reference-counter
bb-10.4-MDEV-28622
bb-10.4-MDEV-28641-galera
bb-10.4-MDEV-28656-galera
bb-10.4-MDEV-28798
bb-10.4-MDEV-28971-galera
bb-10.4-MDEV-29092
bb-10.4-MDEV-29179
bb-10.4-MDEV-29246-galera
bb-10.4-MDEV-29283
bb-10.4-MDEV-29289
bb-10.4-MDEV-29293-galera
bb-10.4-MDEV-29369
bb-10.4-MDEV-29456
bb-10.4-MDEV-29602
bb-10.4-MDEV-29640
bb-10.4-MDEV-29775-galera
bb-10.4-MDEV-29814-galera
bb-10.4-MDEV-29917-galera
bb-10.4-MDEV-29989
bb-10.4-MDEV-30334
bb-10.4-MDEV-30388-galera
bb-10.4-MDEV-30414-galera
bb-10.4-MDEV-30421-andrei
bb-10.4-MDEV-30430
bb-10.4-MDEV-30456-galera
bb-10.4-MDEV-30620
bb-10.4-MDEV-30732-galera
bb-10.4-MDEV-30771
bb-10.4-MDEV-30804-galera
bb-10.4-MDEV-30838-galera
bb-10.4-MDEV-30904-harmut-pkgtest
bb-10.4-MDEV-30955-galera
bb-10.4-MDEV-31004
bb-10.4-MDEV-31005
bb-10.4-MDEV-31062-galera
bb-10.4-MDEV-31062-v2-galera
bb-10.4-MDEV-31130
bb-10.4-MDEV-31173-galera
bb-10.4-MDEV-31185-pins
bb-10.4-MDEV-31327
bb-10.4-MDEV-31403
bb-10.4-MDEV-31439-rpm-conflicts-with-mysql-pkgtest
bb-10.4-MDEV-31477
bb-10.4-MDEV-31905-galera
bb-10.4-MDEV-31933
bb-10.4-MDEV-32017
bb-10.4-MDEV-32024-galera
bb-10.4-MDEV-32034
bb-10.4-MDEV-32130
bb-10.4-MDEV-32168-bnestere
bb-10.4-MDEV-32301
bb-10.4-MDEV-32308
bb-10.4-MDEV-32320
bb-10.4-MDEV-32351-pkgtest
bb-10.4-MDEV-32395
bb-10.4-MDEV-32517
bb-10.4-MDEV-32523
bb-10.4-MDEV-32549-galera
bb-10.4-MDEV-32628
bb-10.4-MDEV-32633-galera
bb-10.4-MDEV-32634-galera
bb-10.4-MDEV-32634-v2-galera
bb-10.4-MDEV-32635-galera
bb-10.4-MDEV-32673
bb-10.4-MDEV-32938-galera
bb-10.4-MDEV-33081
bb-10.4-MDEV-33138-galera
bb-10.4-MDEV-6268
bb-10.4-MDEV-7850
bb-10.4-MDEV-7850-bnestere
bb-10.4-MDEV14101
bb-10.4-MW-336
bb-10.4-all-builders
bb-10.4-andrei
bb-10.4-anel-mysql-secureinstall
bb-10.4-bar-MDEV-27666
bb-10.4-bar-MDEV-27771
bb-10.4-bar-MDEV-28498
bb-10.4-check-toku-ci-failure
bb-10.4-danielblack-atomic-rhel-aarch-fix
bb-10.4-danielblack-pr2435-libressl
bb-10.4-elenst
bb-10.4-elenst-no-mdev371
bb-10.4-galera
bb-10.4-galera-bug
bb-10.4-galera-tests
bb-10.4-georg
bb-10.4-hf
bb-10.4-igor
bb-10.4-igor-MDEV-32466
bb-10.4-igor-rebase-MDEV-32466
bb-10.4-igor2
bb-10.4-jan
bb-10.4-jan-fix
bb-10.4-jan-galera
bb-10.4-julius
bb-10.4-julius-galera
bb-10.4-kevgs
bb-10.4-knielsen
bb-10.4-lenas
bb-10.4-linuxjedi-MDEV-19210
bb-10.4-mdev-22534-demo-exists2in-loop
bb-10.4-mdev-24610
bb-10.4-mdev-26345
bb-10.4-mdev-27666-hf
bb-10.4-mdev-27902
bb-10.4-mdev-27902-gold
bb-10.4-mdev-28506
bb-10.4-mdev-28506-v2
bb-10.4-mdev-28509
bb-10.4-mdev-28856
bb-10.4-mdev-28992
bb-10.4-mdev-29363
bb-10.4-mdev-29363-cheap
bb-10.4-mdev-29363-no-prop-subquery
bb-10.4-mdev-29447
bb-10.4-mdev-29718-gold
bb-10.4-mdev-29962
bb-10.4-mdev-30014
bb-10.4-mdev-30073
bb-10.4-mdev-30073-3
bb-10.4-mdev-30073-3_MDEV-32466
bb-10.4-mdev-30073-4
bb-10.4-mdev-30073-5
bb-10.4-mdev-30370
bb-10.4-mdev-30727
bb-10.4-mdev-30727-demo
bb-10.4-mdev-31101
bb-10.4-mdev-31269
bb-10.4-mdev-31269-3906-fixed-by-mdev-30073
bb-10.4-mdev-31361
bb-10.4-mdev-31766-hf
bb-10.4-mdev-32401
bb-10.4-mdev-32424
bb-10.4-mdev-32849-check-ci
bb-10.4-mdev-32986-gold
bb-10.4-mdev-33008-gold
bb-10.4-mdev-33191-gold
bb-10.4-mdev-33434
bb-10.4-mdev-33441
bb-10.4-mdev-33679
bb-10.4-mdev-33706
bb-10.4-mdev-33728
bb-10.4-mdev-33892-hf
bb-10.4-mdev18608
bb-10.4-mdev19134
bb-10.4-mdev20109
bb-10.4-mdev20371
bb-10.4-mdev20501
bb-10.4-mdev20501-v2
bb-10.4-mdev21794
bb-10.4-mdev22377
bb-10.4-mdev22401
bb-10.4-mdev22993
bb-10.4-mdev26301-with-trace
bb-10.4-mdev27666-hf
bb-10.4-mdev28649-hf
bb-10.4-mdev302018-v2
bb-10.4-mdev30218-part2
bb-10.4-mdev30964
bb-10.4-mdev31121
bb-10.4-mdev31240
bb-10.4-mdev32301
bb-10.4-mdev32351-tests
bb-10.4-mdev9750
bb-10.4-mdev9750-v2
bb-10.4-midenok
bb-10.4-midenok-MDEV-25644
bb-10.4-midenok-MDEV-30421
bb-10.4-midenok-MDEV-30528
bb-10.4-midenok-MDEV-31042
bb-10.4-midenok-tmp
bb-10.4-midenok2
bb-10.4-monty
bb-10.4-multiple-user-binlog
bb-10.4-nayuta
bb-10.4-nikita
bb-10.4-osmirnov
bb-10.4-otto
bb-10.4-psergey
bb-10.4-ramesh
bb-10.4-release-mdev30218
bb-10.4-robert
bb-10.4-rucha
bb-10.4-sachin
bb-10.4-sachin2
bb-10.4-serg
bb-10.4-spetrunia
bb-10.4-spetrunia-tmp
bb-10.4-spider-ks
bb-10.4-sqlserv-bp-hf
bb-10.4-sujatha
bb-10.4-svoj
bb-10.4-sysprg
bb-10.4-sysprg-MDEV-20625
bb-10.4-sysprg-MDEV-20626
bb-10.4-tests-galera
bb-10.4-thiru
bb-10.4-vicentiu
bb-10.4-vicentiu-histograms
bb-10.4-vp-ks
bb-10.4-wlad
bb-10.4-wsrep
bb-10.4-wsrep-update
bb-10.4-ycp
bb-10.4-ycp-mdev-29963
bb-10.4-ycp-mdev-30014
bb-10.4-ycp-spider
bb-10.4-ycp-spider-fix
bb-10.4-ycp-spider-mdev-31117
bb-10.4-ycp-spider-mdev-31524
bb-10.4-ycp-spider-mdev-31524-fail
bb-10.4.20-MDEV-30567
bb-10.5-10.5.22-MDEV-24035-assertion
bb-10.5-10.5.6-MDEV-24197-debug-build
bb-10.5-19708
bb-10.5-23089
bb-10.5-KILL-as-TOI-galera
bb-10.5-MDEV-10962-deadlock-deletes
bb-10.5-MDEV-13362
bb-10.5-MDEV-13915-mergefix
bb-10.5-MDEV-14357
bb-10.5-MDEV-14479-table-locks
bb-10.5-MDEV-14479-table-locks-lock_rec_has_expl
bb-10.5-MDEV-15053
bb-10.5-MDEV-15053-2
bb-10.5-MDEV-15053-3
bb-10.5-MDEV-16039-nikita
bb-10.5-MDEV-16232
bb-10.5-MDEV-16641-test-unmask-mysql_client_test_tests
bb-10.5-MDEV-16978-without-overlaps
bb-10.5-MDEV-16983-period-fk
bb-10.5-MDEV-17395-replace
bb-10.5-MDEV-17943
bb-10.5-MDEV-18188
bb-10.5-MDEV-18215-unknown-backup-options
bb-10.5-MDEV-18582
bb-10.5-MDEV-18863
bb-10.5-MDEV-18976
bb-10.5-MDEV-18976-redolog-crc
bb-10.5-MDEV-19487
bb-10.5-MDEV-19935
bb-10.5-MDEV-20051
bb-10.5-MDEV-20100
bb-10.5-MDEV-20281
bb-10.5-MDEV-20297
bb-10.5-MDEV-20487
bb-10.5-MDEV-21175
bb-10.5-MDEV-21351
bb-10.5-MDEV-21452
bb-10.5-MDEV-21469-2022
bb-10.5-MDEV-21469-2023
bb-10.5-MDEV-21598
bb-10.5-MDEV-21916-try2
bb-10.5-MDEV-21988
bb-10.5-MDEV-22063-galera
bb-10.5-MDEV-22141
bb-10.5-MDEV-22232-galera
bb-10.5-MDEV-22387
bb-10.5-MDEV-22543
bb-10.5-MDEV-22726-aria-non-trans-log
bb-10.5-MDEV-22729
bb-10.5-MDEV-22922
bb-10.5-MDEV-22929-log_corrupted_pages
bb-10.5-MDEV-22979
bb-10.5-MDEV-23101
bb-10.5-MDEV-23299-danielblack-pr-1643
bb-10.5-MDEV-23399
bb-10.5-MDEV-23483
bb-10.5-MDEV-23651
bb-10.5-MDEV-23855
bb-10.5-MDEV-23955
bb-10.5-MDEV-24010
bb-10.5-MDEV-24142
bb-10.5-MDEV-24480
bb-10.5-MDEV-24514
bb-10.5-MDEV-24705-LSN-check
bb-10.5-MDEV-24819
bb-10.5-MDEV-24845-galera
bb-10.5-MDEV-24882-galera
bb-10.5-MDEV-24935
bb-10.5-MDEV-25031
bb-10.5-MDEV-25089-galera
bb-10.5-MDEV-25089-v2-galera
bb-10.5-MDEV-25113
bb-10.5-MDEV-25114
bb-10.5-MDEV-25148
bb-10.5-MDEV-25163
bb-10.5-MDEV-25594
bb-10.5-MDEV-25731-galera
bb-10.5-MDEV-25783
bb-10.5-MDEV-26206-post-push
bb-10.5-MDEV-26266-galera
bb-10.5-MDEV-26450
bb-10.5-MDEV-26516-galera
bb-10.5-MDEV-26826
bb-10.5-MDEV-26852
bb-10.5-MDEV-26929
bb-10.5-MDEV-27366
bb-10.5-MDEV-27366-2
bb-10.5-MDEV-27649-galera
bb-10.5-MDEV-27806-galera
bb-10.5-MDEV-27861-galera
bb-10.5-MDEV-27861-v2-galera
bb-10.5-MDEV-27861-v3-galera
bb-10.5-MDEV-27862-galera
bb-10.5-MDEV-28621-elimination-disabled
bb-10.5-MDEV-28621-no-remove-unit
bb-10.5-MDEV-28709-sup_X_lock-debug
bb-10.5-MDEV-28846
bb-10.5-MDEV-28953-galera
bb-10.5-MDEV-29027
bb-10.5-MDEV-29050-prepare-export-err
bb-10.5-MDEV-29293-galera
bb-10.5-MDEV-29344
bb-10.5-MDEV-29693-v2
bb-10.5-MDEV-29775-galera
bb-10.5-MDEV-29775-v2-galera
bb-10.5-MDEV-29880-galera
bb-10.5-MDEV-29967
bb-10.5-MDEV-29981-log-headers
bb-10.5-MDEV-30073-MDEV-32294
bb-10.5-MDEV-30415
bb-10.5-MDEV-30456-galera
bb-10.5-MDEV-30520-selinux-app-pkgtest
bb-10.5-MDEV-30605
bb-10.5-MDEV-30619-merge
bb-10.5-MDEV-30646
bb-10.5-MDEV-30658-lock_row_lock_current_waits
bb-10.5-MDEV-30686-v2-galera
bb-10.5-MDEV-30700-postfix
bb-10.5-MDEV-30710
bb-10.5-MDEV-30815
bb-10.5-MDEV-30822-galera
bb-10.5-MDEV-30822-v2-galera
bb-10.5-MDEV-31062-galera
bb-10.5-MDEV-31062-v2-galera
bb-10.5-MDEV-31177
bb-10.5-MDEV-31477
bb-10.5-MDEV-31892
bb-10.5-MDEV-32083-cve
bb-10.5-MDEV-32287
bb-10.5-MDEV-32294-WIP
bb-10.5-MDEV-32302
bb-10.5-MDEV-32401
bb-10.5-MDEV-32635-galera
bb-10.5-MDEV-32782-galera
bb-10.5-MDEV-32866
bb-10.5-MDEV-32996-galera
bb-10.5-MDEV-33035-galera
bb-10.5-MDEV-33036-galera
bb-10.5-MDEV-33138-galera
bb-10.5-MDEV-33216-galera
bb-10.5-MDEV-33509-galera
bb-10.5-MDEV-33658
bb-10.5-MDEV-33677-galera
bb-10.5-MDEV-33755
bb-10.5-MDEV-33897-galera
bb-10.5-MDEV-33928-galera
bb-10.5-MDEV-33952-galera
bb-10.5-MDEV-33967-handersocket-binlog-pkgtest
bb-10.5-MDEV-33988-delete-table-alias-pkgtest
bb-10.5-MDEV-33997-galera
bb-10.5-MDEV-34214-galera
bb-10.5-MDEV-34348
bb-10.5-MDEV-34508-ubsan-errors
bb-10.5-MDEV-34580
bb-10.5-MDEV-34594-galera
bb-10.5-MDEV-34594-v2-galera
bb-10.5-MDEV-34842-galera_3nodes-ipv6
bb-10.5-MDEV-34883
bb-10.5-MDEV-34926
bb-10.5-MDEV-34976-galera
bb-10.5-MDEV-34998-tests-galera
bb-10.5-MDEV-35018-galera
bb-10.5-MDEV-35018-v2-galera
bb-10.5-MDEV-35018-v3-galera
bb-10.5-MDEV-35090
bb-10.5-MDEV-35299
bb-10.5-MDEV-35343
bb-10.5-MDEV-35355-galera
bb-10.5-MDEV-35471-galera
bb-10.5-MDEV-35565
bb-10.5-MDEV-35673
bb-10.5-MDEV-35938
bb-10.5-MDEV-35969-galera
bb-10.5-MDEV-36116-galera
bb-10.5-MDEV-36117-galera
bb-10.5-MDEV-36280
bb-10.5-MDEV-36380
bb-10.5-MDEV-36628-galera
bb-10.5-MDEV_21469
bb-10.5-MENT-344-backup_to_s3
bb-10.5-TODO-3821
bb-10.5-abychko
bb-10.5-all-builders
bb-10.5-andrei
bb-10.5-anel-MDEV-24602-check_constraints
bb-10.5-anel-anonymous-user-windows-check
bb-10.5-anel-anonymous-user-windows-check-without-skip-resolve
bb-10.5-anel-rpl-fix-assertion
bb-10.5-aria
bb-10.5-bar
bb-10.5-bar-MDEV-10865
bb-10.5-bar-MDEV-20610
bb-10.5-bar-MDEV-25593
bb-10.5-bar-MDEV-30111
bb-10.5-bar-MDEV-33342
bb-10.5-bar-MDEV-34037
bb-10.5-bar-MDEV-34580
bb-10.5-bar-MDEV-34959
bb-10.5-bumpversion
bb-10.5-clustrixdb
bb-10.5-columnstore
bb-10.5-cs
bb-10.5-danielblack-MDEV-23607
bb-10.5-danielblack-MDEV-23892-pthread-not-aix-specific
bb-10.5-danielblack-MDEV-26891-delay-insert-virt-crash-pr1943
bb-10.5-danielblack-MDEV-28153-deb-explict-deps-salsa-postfix
bb-10.5-danielblack-MDEV-30222-mysqltest-popen-err-display
bb-10.5-danielblack-my_free_undef
bb-10.5-drrtuy
bb-10.5-elenst
bb-10.5-elenst-mdev22249
bb-10.5-galera
bb-10.5-galera-gtid
bb-10.5-hf
bb-10.5-igor
bb-10.5-jan
bb-10.5-julius
bb-10.5-julius-galera
bb-10.5-kevgs
bb-10.5-knielsen
bb-10.5-lateral-fixes
bb-10.5-limit-rows-examined
bb-10.5-mdbf-535-test
bb-10.5-mdev-24610
bb-10.5-mdev-25008
bb-10.5-mdev-25008-monty-patch
bb-10.5-mdev-25008-outer-lookup-keys
bb-10.5-mdev-25008-unit-distinct
bb-10.5-mdev-26247
bb-10.5-mdev-26345-alt
bb-10.5-mdev-26541
bb-10.5-mdev-27575
bb-10.5-mdev-27650
bb-10.5-mdev-27902
bb-10.5-mdev-27912
bb-10.5-mdev-28683
bb-10.5-mdev-28739
bb-10.5-mdev-29002-gold
bb-10.5-mdev-29360-v1
bb-10.5-mdev-29360-v2
bb-10.5-mdev-29363-cheap
bb-10.5-mdev-29447
bb-10.5-mdev-29447-31338
bb-10.5-mdev-29605
bb-10.5-mdev-29644
bb-10.5-mdev-29870
bb-10.5-mdev-29962
bb-10.5-mdev-30014
bb-10.5-mdev-30067
bb-10.5-mdev-30073-6
bb-10.5-mdev-30073-7
bb-10.5-mdev-30073-8
bb-10.5-mdev-30073-8.1
bb-10.5-mdev-30073-8.2
bb-10.5-mdev-30170-gold
bb-10.5-mdev-30370-22979-29904-27912
bb-10.5-mdev-30408
bb-10.5-mdev-30435-30981
bb-10.5-mdev-30576
bb-10.5-mdev-30649
bb-10.5-mdev-31101
bb-10.5-mdev-31117
bb-10.5-mdev-31117-merge
bb-10.5-mdev-31269
bb-10.5-mdev-31400
bb-10.5-mdev-31421
bb-10.5-mdev-31524
bb-10.5-mdev-31673
bb-10.5-mdev-31743
bb-10.5-mdev-31787
bb-10.5-mdev-31996
bb-10.5-mdev-32157
bb-10.5-mdev-32492
bb-10.5-mdev-32492-delete-trx-ha-if-mismatch-share
bb-10.5-mdev-32524
bb-10.5-mdev-33174-gold
bb-10.5-mdev-33220
bb-10.5-mdev-33679
bb-10.5-mdev-33679-print-item-equal
bb-10.5-mdev-33777
bb-10.5-mdev-34036
bb-10.5-mdev-34359
bb-10.5-mdev-34404
bb-10.5-mdev-34421
bb-10.5-mdev-34541
bb-10.5-mdev-34589-restore-dastatus-rollback
bb-10.5-mdev-34589-trans-rollback-pass-error
bb-10.5-mdev-34639
bb-10.5-mdev-34659
bb-10.5-mdev-34708
bb-10.5-mdev-34872
bb-10.5-mdev-34925
bb-10.5-mdev-35064
bb-10.5-mdev-35153-debug
bb-10.5-mdev-35249-revert
bb-10.5-mdev-35326
bb-10.5-mdev-35326-handle-select
bb-10.5-mdev-35452-remove-sgb
bb-10.5-mdev-35622
bb-10.5-mdev-35781
bb-10.5-mdev-35807
bb-10.5-mdev-35874
bb-10.5-mdev-36118
bb-10.5-mdev-36121
bb-10.5-mdev-36245-hf
bb-10.5-mdev-36307
bb-10.5-mdev-36324
bb-10.5-mdev-36335
bb-10.5-mdev-36442
bb-10.5-mdev-36452
bb-10.5-mdev-36454
bb-10.5-mdev-36476
bb-10.5-mdev-36477
bb-10.5-mdev-36478
bb-10.5-mdev-36633
bb-10.5-mdev15101
bb-10.5-mdev20854
bb-10.5-mdev22014
bb-10.5-mdev22331
bb-10.5-mdev23634
bb-10.5-mdev23662
bb-10.5-mdev24953
bb-10.5-mdev25069
bb-10.5-mdev25251
bb-10.5-mdev27382
bb-10.5-mdev7317
bb-10.5-mdev9750
bb-10.5-mdev_742
bb-10.5-ment-1591-debug-demo
bb-10.5-merge-jan
bb-10.5-merge-static-libs-danblack
bb-10.5-midenok
bb-10.5-midenok2
bb-10.5-monty
bb-10.5-my-error
bb-10.5-nikita
bb-10.5-nikita-MDEV-30046
bb-10.5-nikita-expr-arena-old
bb-10.5-nikita-msan
bb-10.5-oalter
bb-10.5-oalter-rebase
bb-10.5-pre_mdev-742
bb-10.5-ps-ks
bb-10.5-ramesh
bb-10.5-rasmus
bb-10.5-release-galera
bb-10.5-release-julius
bb-10.5-release-mdev30218
bb-10.5-release-mtr
bb-10.5-release-spider-fix
bb-10.5-remove-dont
bb-10.5-rex
bb-10.5-robert
bb-10.5-robert-build
bb-10.5-sachin
bb-10.5-serg
bb-10.5-shutdown
bb-10.5-spetrunia
bb-10.5-spider-fixup
bb-10.5-sqlser-hf
bb-10.5-sst-galera
bb-10.5-sujatha
bb-10.5-svoj
bb-10.5-svoj-MDEV-17084
bb-10.5-svoj-MDEV-17084-redo
bb-10.5-svoj-MDEV-19061
bb-10.5-svoj-MDEV-19439
bb-10.5-svoj-MDEV-20630
bb-10.5-svoj-MDEV-22593
bb-10.5-sysprg-MDEV-22554
bb-10.5-thiru
bb-10.5-tmp
bb-10.5-trigger
bb-10.5-upto
bb-10.5-varun
bb-10.5-vicentiu
bb-10.5-vicentiu-buildbot
bb-10.5-vicentiu-buildbot2
bb-10.5-vicentiu-intel-warnings
bb-10.5-vicentiu2
bb-10.5-voting
bb-10.5-wlad
bb-10.5-wlad-15053
bb-10.5-wlad-MDEV-21612
bb-10.5-wlad-constexpr
bb-10.5-wlad-schannel-openssl
bb-10.5-wlad-tpwin
bb-10.5-xa-prepare
bb-10.5-xpand
bb-10.5-ycp
bb-10.5-ycp-mdev-26345
bb-10.5-ycp-mdev-26345-1
bb-10.5-ycp-mdev-28413
bb-10.5-ycp-mdev-29502
bb-10.5-ycp-mdev-34849
bb-10.5-ycp-mdev-35874
bb-10.5-ycp-spider
bb-10.5.19-undo_truncate
bb-10.5.21-undo_truncate
bb-10.6-MDEV-10962-deadlock-deletes
bb-10.6-MDEV-15120_2
bb-10.6-MDEV-16437
bb-10.6-MDEV-16708-2
bb-10.6-MDEV-16708-3
bb-10.6-MDEV-16976
bb-10.6-MDEV-16983-period-fk
bb-10.6-MDEV-17843-lock_rec_queue_validate
bb-10.6-MDEV-18976
bb-10.6-MDEV-19177
bb-10.6-MDEV-20100
bb-10.6-MDEV-20154
bb-10.6-MDEV-20453
bb-10.6-MDEV-20552-remove-innobackupex
bb-10.6-MDEV-21192-galera
bb-10.6-MDEV-21423
bb-10.6-MDEV-21452
bb-10.6-MDEV-21469-rebase
bb-10.6-MDEV-21530
bb-10.6-MDEV-22063-galera
bb-10.6-MDEV-22232-galera
bb-10.6-MDEV-22265
bb-10.6-MDEV-22718
bb-10.6-MDEV-23238
bb-10.6-MDEV-23536
bb-10.6-MDEV-24062-galera
bb-10.6-MDEV-24142-2
bb-10.6-MDEV-24258
bb-10.6-MDEV-24269-galera
bb-10.6-MDEV-24341
bb-10.6-MDEV-24424
bb-10.6-MDEV-24509
bb-10.6-MDEV-24786
bb-10.6-MDEV-24818
bb-10.6-MDEV-24845-galera
bb-10.6-MDEV-24853
bb-10.6-MDEV-24882-galera
bb-10.6-MDEV-24946
bb-10.6-MDEV-25029
bb-10.6-MDEV-25089-galera
bb-10.6-MDEV-25099
bb-10.6-MDEV-25114
bb-10.6-MDEV-25488
bb-10.6-MDEV-25491
bb-10.6-MDEV-25506_FTS
bb-10.6-MDEV-25543
bb-10.6-MDEV-25611
bb-10.6-MDEV-25633
bb-10.6-MDEV-25683
bb-10.6-MDEV-25698-galera
bb-10.6-MDEV-25731-galera
bb-10.6-MDEV-25822
bb-10.6-MDEV-25906
bb-10.6-MDEV-25948-MDEV-25611
bb-10.6-MDEV-25973
bb-10.6-MDEV-26015
bb-10.6-MDEV-26049
bb-10.6-MDEV-26115
bb-10.6-MDEV-26142
bb-10.6-MDEV-26145
bb-10.6-MDEV-26149
bb-10.6-MDEV-26171-post-merge
bb-10.6-MDEV-26206-impl-gap-1
bb-10.6-MDEV-26209
bb-10.6-MDEV-26450
bb-10.6-MDEV-26782
bb-10.6-MDEV-27317-galera
bb-10.6-MDEV-27557-clust-mtr-savepoint
bb-10.6-MDEV-27736
bb-10.6-MDEV-27861-v2-galera
bb-10.6-MDEV-27862-galera
bb-10.6-MDEV-27871
bb-10.6-MDEV-27871-MDEV-31933
bb-10.6-MDEV-27983
bb-10.6-MDEV-28315
bb-10.6-MDEV-28422
bb-10.6-MDEV-28423-v2
bb-10.6-MDEV-28583
bb-10.6-MDEV-28621-delayed-elimination
bb-10.6-MDEV-28621-eliminate-in-optimization
bb-10.6-MDEV-28621-no-elimination
bb-10.6-MDEV-28621-v3-eliminate-carefully
bb-10.6-MDEV-28709-post-push-fix
bb-10.6-MDEV-28709-sup_X_lock-skip_gap_lock_inheritance_n_recs
bb-10.6-MDEV-28800
bb-10.6-MDEV-28953-galera
bb-10.6-MDEV-28968-galera
bb-10.6-MDEV-29050-prepare-export-err
bb-10.6-MDEV-29181
bb-10.6-MDEV-29293-galera
bb-10.6-MDEV-29336
bb-10.6-MDEV-29433-lock_delete_updated
bb-10.6-MDEV-29440
bb-10.6-MDEV-29593
bb-10.6-MDEV-29775-galera
bb-10.6-MDEV-29775-v2-galera
bb-10.6-MDEV-29849
bb-10.6-MDEV-29880-galera
bb-10.6-MDEV-30000
bb-10.6-MDEV-30086
bb-10.6-MDEV-30100-MDEV-25340
bb-10.6-MDEV-30133
bb-10.6-MDEV-30182
bb-10.6-MDEV-30260-mergefix
bb-10.6-MDEV-30289
bb-10.6-MDEV-30456-galera
bb-10.6-MDEV-30536-galera
bb-10.6-MDEV-30658-lock_row_lock_current_waits
bb-10.6-MDEV-30775-try_to_close
bb-10.6-MDEV-30802
bb-10.6-MDEV-30822-galera
bb-10.6-MDEV-30936
bb-10.6-MDEV-30996
bb-10.6-MDEV-30996_fts
bb-10.6-MDEV-31080
bb-10.6-MDEV-31380
bb-10.6-MDEV-31382
bb-10.6-MDEV-31449
bb-10.6-MDEV-31496
bb-10.6-MDEV-31826
bb-10.6-MDEV-31877
bb-10.6-MDEV-31888-galera
bb-10.6-MDEV-31905-galera
bb-10.6-MDEV-31949
bb-10.6-MDEV-31949-21469
bb-10.6-MDEV-31949_ver0
bb-10.6-MDEV-31949_ver0_opt
bb-10.6-MDEV-31983
bb-10.6-MDEV-31983-v2
bb-10.6-MDEV-31983-v3
bb-10.6-MDEV-32067
bb-10.6-MDEV-32080
bb-10.6-MDEV-32096-pkgtest
bb-10.6-MDEV-32253
bb-10.6-MDEV-32265
bb-10.6-MDEV-32297
bb-10.6-MDEV-32523
bb-10.6-MDEV-32549-galera
bb-10.6-MDEV-32554
bb-10.6-MDEV-32628-mergefix
bb-10.6-MDEV-32633-galera
bb-10.6-MDEV-32635-galera
bb-10.6-MDEV-32682
bb-10.6-MDEV-32738-galera
bb-10.6-MDEV-32788
bb-10.6-MDEV-32830-qa
bb-10.6-MDEV-32898-pkgtest
bb-10.6-MDEV-33036-galera
bb-10.6-MDEV-33136-galera
bb-10.6-MDEV-33138-galera
bb-10.6-MDEV-33189
bb-10.6-MDEV-33216-galera
bb-10.6-MDEV-33314
bb-10.6-MDEV-33509-galera
bb-10.6-MDEV-33802-unique-cursor-restore
bb-10.6-MDEV-33828-galera
bb-10.6-MDEV-33850-galera
bb-10.6-MDEV-33896-galera
bb-10.6-MDEV-33897-galera
bb-10.6-MDEV-33952-galera
bb-10.6-MDEV-33997-galera
bb-10.6-MDEV-34090
bb-10.6-MDEV-34122-fixup
bb-10.6-MDEV-34190-tmp
bb-10.6-MDEV-34218-galera
bb-10.6-MDEV-34348-merge-fix
bb-10.6-MDEV-34481
bb-10.6-MDEV-34647-galera
bb-10.6-MDEV-34822-galera
bb-10.6-MDEV-34924-galera
bb-10.6-MDEV-34958
bb-10.6-MDEV-35018-v3-galera
bb-10.6-MDEV-35207
bb-10.6-MDEV-35288
bb-10.6-MDEV-35506
bb-10.6-MDEV-35511
bb-10.6-MDEV-35570
bb-10.6-MDEV-35748-galera
bb-10.6-MDEV-35828
bb-10.6-MDEV-35944
bb-10.6-MDEV-36107
bb-10.6-MDEV-36117-galera
bb-10.6-MDEV-36234-pkgtest
bb-10.6-MDEV-36290-monty
bb-10.6-MDEV-36512-galera
bb-10.6-MDEV-36620-galera
bb-10.6-MDEV-36622-galera
bb-10.6-MDEV-36875
bb-10.6-MDEV-37541
bb-10.6-MDEV-37911
bb-10.6-MDEV-515
bb-10.6-MDEV-6536-addendum
bb-10.6-add-columnstore-mtr
bb-10.6-add-columnstore-mtr-pkgtest
bb-10.6-alice
bb-10.6-all-builders
bb-10.6-andrei
bb-10.6-andrei-MDEV-24660
bb-10.6-anel-rpl_fix_assertion
bb-10.6-avoid-abortive-socket-close
bb-10.6-bar
bb-10.6-bar-MDEV-28001
bb-10.6-bar-MDEV-30111
bb-10.6-bar-MDEV-33472
bb-10.6-bar-MDEV-33648
bb-10.6-bar-MDEV-34189
bb-10.6-bar-assign
bb-10.6-bumpversion
bb-10.6-cache-metadata
bb-10.6-choose_next_log
bb-10.6-cs
bb-10.6-danielblack-MDEV-14096-deprecate-year-parentheses
bb-10.6-danielblack-MDEV-25152
bb-10.6-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated
bb-10.6-danielblack-MDEV-25424-my_multi_malloc-large-use-my_large_malloc
bb-10.6-danielblack-MDEV-27955-postfix-func_json_notembedded
bb-10.6-danielblack-MDEV-28011-deb-autobake
bb-10.6-danielblack-MDEV-28153-deb-autobake
bb-10.6-danielblack-MDEV-28534-clang-12-innodb
bb-10.6-danielblack-MDEV-28782-tzinfo-works-in-bootstrap
bb-10.6-danielblack-MDEV-29141-rseg_ext_p2
bb-10.6-danielblack-MDEV-29678-uninit
bb-10.6-drrtuy
bb-10.6-elenst
bb-10.6-fake-select-number
bb-10.6-galera
bb-10.6-galera-jan
bb-10.6-georg
bb-10.6-hf
bb-10.6-hf-2
bb-10.6-ibuf
bb-10.6-igor
bb-10.6-iouring_required-memlock
bb-10.6-julius
bb-10.6-julius-galera
bb-10.6-knielsen
bb-10.6-mac
bb-10.6-marko
bb-10.6-master-timestamp
bb-10.6-mdev-26127
bb-10.6-mdev-26178
bb-10.6-mdev-26247
bb-10.6-mdev-26541
bb-10.6-mdev-27087-rucha
bb-10.6-mdev-27103-demo-ddl
bb-10.6-mdev-27438
bb-10.6-mdev-27912
bb-10.6-mdev-28739
bb-10.6-mdev-29027
bb-10.6-mdev-29447
bb-10.6-mdev-29447-31338
bb-10.6-mdev-29502
bb-10.6-mdev-29644
bb-10.6-mdev-29870
bb-10.6-mdev-30264
bb-10.6-mdev-30435-30981
bb-10.6-mdev-30436
bb-10.6-mdev-31117
bb-10.6-mdev-31400
bb-10.6-mdev-31421
bb-10.6-mdev-31516
bb-10.6-mdev-31524
bb-10.6-mdev-31524-post-merge-fix
bb-10.6-mdev-31577-test
bb-10.6-mdev-31721
bb-10.6-mdev-31787
bb-10.6-mdev-31788
bb-10.6-mdev-32157
bb-10.6-mdev-32524
bb-10.6-mdev-32907
bb-10.6-mdev-33191
bb-10.6-mdev-33242-gold
bb-10.6-mdev-33434
bb-10.6-mdev-33441
bb-10.6-mdev-34588
bb-10.6-mdev-34636
bb-10.6-mdev-34682
bb-10.6-mdev-34813
bb-10.6-mdev-35153-debug
bb-10.6-mdev-35249-revert
bb-10.6-mdev-35422
bb-10.6-mdev-35591-hf
bb-10.6-mdev-35713-hf
bb-10.6-mdev-35959
bb-10.6-mdev-36058-hf
bb-10.6-mdev-36221
bb-10.6-mdev-36678
bb-10.6-mdev-37166-hf
bb-10.6-mdev-37193
bb-10.6-mdev-37682
bb-10.6-mdev-7093
bb-10.6-mdev-7451-hf
bb-10.6-mdev21829
bb-10.6-mdev24325
bb-10.6-mdev24740
bb-10.6-mdev25075
bb-10.6-mdev25154
bb-10.6-mdev25362
bb-10.6-mdev25631
bb-10.6-mdev28749
bb-10.6-mdev30081-variant2
bb-10.6-mdev31067
bb-10.6-mdev31067-variant2
bb-10.6-mdev31067-variant3
bb-10.6-mdev32113
bb-10.6-mdev32113-variant1
bb-10.6-mdev32203
bb-10.6-mdev33752
bb-10.6-mdev33752-v2
bb-10.6-mdev34125-which-platforms
bb-10.6-mdev34720
bb-10.6-mdev34720-v2
bb-10.6-mdev34720-v3
bb-10.6-mdev36948-infer1
bb-10.6-mdev7317
bb-10.6-ment2045
bb-10.6-merge
bb-10.6-merge-galera
bb-10.6-merge-jan
bb-10.6-merge-julius
bb-10.6-midenok
bb-10.6-midenok-MDEV-10962
bb-10.6-midenok-MDEV-12483
bb-10.6-midenok-MDEV-12483-partitioning
bb-10.6-midenok-MDEV-16417-atomic
bb-10.6-midenok-MDEV-16686
bb-10.6-midenok-MDEV-18706
bb-10.6-midenok-MDEV-21053
bb-10.6-midenok-MDEV-21652
bb-10.6-midenok-MDEV-23639
bb-10.6-midenok-review
bb-10.6-midenok-review2
bb-10.6-midenok-tmp
bb-10.6-monty
bb-10.6-monty-xa
bb-10.6-monty2
bb-10.6-no-capabilities-pkgtest
bb-10.6-online-alter
bb-10.6-ramesh
bb-10.6-refactor-limit
bb-10.6-refactor-limit-review
bb-10.6-release
bb-10.6-release-julius
bb-10.6-release-mdev30218
bb-10.6-release-wlad
bb-10.6-remove-m_text_literal
bb-10.6-robert
bb-10.6-rucha
bb-10.6-sachin
bb-10.6-serg
bb-10.6-spetrunia
bb-10.6-spetrunia-tmp1
bb-10.6-spetrunia-tmp2
bb-10.6-spetrunia-tmp3
bb-10.6-sqlser-hf
bb-10.6-sst-galera
bb-10.6-sujatha
bb-10.6-sysschema
bb-10.6-thiru
bb-10.6-tmp
bb-10.6-todo-4509
bb-10.6-todo4799
bb-10.6-varun
bb-10.6-vicentiu-MDEV-17796-check
bb-10.6-vicentiu-uniques
bb-10.6-vicentiu-wip
bb-10.6-wlad-MDEV-22010
bb-10.6-wlad-MDEV-23959
bb-10.6-wlad-lto
bb-10.6-ycp
bb-10.6-ycp-fixup
bb-10.6-ycp-push
bb-10.6-ycp-spider
bb-10.6.11-pkgtest-MDEV-31185-pins
bb-10.6.12-DBS
bb-10.6.12-MDEV-30165
bb-10.6.18-TODO-4984
bb-10.6.8-MDEV-27701
bb-10.6.9-hash-join-improvements
bb-10.6_MDEV-18959
bb-10.6_MDEV-21117
bb-10.7-MDEV-18543-instant-import-bugs
bb-10.7-MDEV-22165
bb-10.7-MDEV-22441-scoped-variable
bb-10.7-MDEV-23766
bb-10.7-MDEV-24623
bb-10.7-MDEV-26238
bb-10.7-MDEV-26391-galera
bb-10.7-MDEV-26843
bb-10.7-MDEV-27575
bb-10.7-MDEV-27892
bb-10.7-MDEV-4742
bb-10.7-MDEV-4958-uuid
bb-10.7-TODO-3121
bb-10.7-danielblack-MDEV-26157-openmp-statistics-fork
bb-10.7-danielblack-mdev-12933-fixup
bb-10.7-elenst
bb-10.7-galera
bb-10.7-hf-mdev-19275
bb-10.7-hs
bb-10.7-igor
bb-10.7-kevgs
bb-10.7-mdev-26285
bb-10.7-mdev-26288
bb-10.7-mdev-27159
bb-10.7-mdev-27159-hf
bb-10.7-mdev-27159-insert-hf
bb-10.7-mdev-27831-hf
bb-10.7-mdev-7487
bb-10.7-mdev21130
bb-10.7-mdev23143
bb-10.7-mdev26519
bb-10.7-mdev27188
bb-10.7-mdev29677
bb-10.7-midenok
bb-10.7-midenok-MDEV-22166
bb-10.7-midenok-MDEV-22166-tmp
bb-10.7-midenok-MDEV-27180
bb-10.7-monty
bb-10.7-nayuta
bb-10.7-repl_tests
bb-10.7-robert
bb-10.7-selectivity
bb-10.7-serg
bb-10.7-sujatha
bb-10.7-upgrade-version
bb-10.7-vicentiu
bb-10.7-vicentiu-MDEV-26242
bb-10.8-C++-14
bb-10.8-C++-14-TODO-3121
bb-10.8-MCOL-4944
bb-10.8-MDEV-13915-mergefix
bb-10.8-MDEV-14425-flush_order_mutex
bb-10.8-MDEV-14481-async-recv
bb-10.8-MDEV-18477
bb-10.8-MDEV-19129
bb-10.8-MDEV-19308
bb-10.8-MDEV-22441-scoped-variable
bb-10.8-MDEV-25342-autosize-innodb-buffer-pool-chunk-size
bb-10.8-MDEV-25719
bb-10.8-MDEV-26238-my-print-defaults
bb-10.8-MDEV-26938
bb-10.8-MDEV-26971
bb-10.8-MDEV-27009-uca-1400
bb-10.8-MDEV-27036
bb-10.8-MDEV-27158-humanize-numbers-innodb
bb-10.8-MDEV-27204
bb-10.8-MDEV-27206
bb-10.8-MDEV-27208-crc32c
bb-10.8-MDEV-27233
bb-10.8-MDEV-27266-MDEV-27265-uca-performance
bb-10.8-MDEV-27849
bb-10.8-MDEV-29043
bb-10.8-MDEV-29934
bb-10.8-MDEV-5816
bb-10.8-MENT-662-tmp
bb-10.8-TODO-3121
bb-10.8-andrei
bb-10.8-bumpversion
bb-10.8-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated
bb-10.8-elenst
bb-10.8-georg
bb-10.8-igor
bb-10.8-mcs_lock
bb-10.8-mdev-27106
bb-10.8-mdev-27912
bb-10.8-mdev-29447
bb-10.8-mdev-30370-compare-tests
bb-10.8-mdev-5271
bb-10.8-mdev26996-no-sel-arg-ascending
bb-10.8-mdev27021
bb-10.8-midenok
bb-10.8-monty
bb-10.8-online-alter
bb-10.8-openssl3.0
bb-10.8-robert
bb-10.8-serg
bb-10.8-spetrunia
bb-10.8-vicentiu-mariadbd.pc
bb-10.8-wlad-MDEV-33387
bb-10.9-MDEV-13915-mergefix
bb-10.9-MDEV-17554-auto-create-partition
bb-10.9-MDEV-19281
bb-10.9-MDEV-19281-v2
bb-10.9-MDEV-19281-v3
bb-10.9-MDEV-19281-v4
bb-10.9-MDEV-19281-v5
bb-10.9-MDEV-21423-MDEV-26603
bb-10.9-MDEV-24560
bb-10.9-MDEV-26278
bb-10.9-MDEV-26562-galera
bb-10.9-MDEV-26603-async-redo-write
bb-10.9-MDEV-26971-JSON-status
bb-10.9-MDEV-26971-JSON-status-v2
bb-10.9-MDEV-27021-MDEV-10000-MDEV-27776
bb-10.9-MDEV-27021-MDEV-10000-show-analyze
bb-10.9-MDEV-27246-galera-allowlist
bb-10.9-MDEV-27657
bb-10.9-MDEV-27659
bb-10.9-MDEV-27699
bb-10.9-MDEV-27844
bb-10.9-MDEV-28015-galera
bb-10.9-MDEV-28275
bb-10.9-MDEV-28313-21423-26603
bb-10.9-MDEV-28423-galera
bb-10.9-MDEV-28423-v2
bb-10.9-MDEV-28583
bb-10.9-MDEV-28656-galera
bb-10.9-MDEV-29381
bb-10.9-MDEV-30100
bb-10.9-MDEV-30619-merge
bb-10.9-MDEV-31432
bb-10.9-MDEV-31432-v2
bb-10.9-MDEV-32008
bb-10.9-MDEV-5816-1
bb-10.9-all-builders
bb-10.9-anel-repl-slave_report-v2
bb-10.9-anel-rpl_fix_assert
bb-10.9-danielblack-MDEV-27791-test-postfix
bb-10.9-danielblack-MDEV-27791-test-postfix_2
bb-10.9-danielblack-deb-limited-columnstore-platforms
bb-10.9-danielblack-deb-pkg-fix-pr2112
bb-10.9-deb-autobake-no-lsb_release
bb-10.9-elenst
bb-10.9-georg
bb-10.9-mcs
bb-10.9-mdbf-535-test
bb-10.9-mdev-22979-27095-27233
bb-10.9-mdev-22979-27095-27233-query-ready
bb-10.9-mdev-22979-31400
bb-10.9-mdev-22979-31400-force-ci
bb-10.9-mdev-22979-mysql-func-udf
bb-10.9-mdev-27159
bb-10.9-mdev-27912
bb-10.9-mdev-29447
bb-10.9-mdev-29447-31338
bb-10.9-mdev-29644
bb-10.9-mdev-29644-post-merge-fix
bb-10.9-mdev-31400
bb-10.9-mdev-31401-demo-udf-initialized
bb-10.9-mdev-31421
bb-10.9-mdev-31524
bb-10.9-mdev29382
bb-10.9-midenok
bb-10.9-midenok-MDEV-28931
bb-10.9-midenok-tmp
bb-10.9-post-MDEV-26971
bb-10.9-spetrunia
bb-10.9-sysprg-hashicorp-stats
bb-10.9-vicentiu-reverse-privileges
bb-10.9-ycp-spider
bb-11-5-monty
bb-11-midenok
bb-11.0
bb-11.0-MDEV-16329-online-alter
bb-11.0-MDEV-27871
bb-11.0-MDEV-27871-MDEV-31933
bb-11.0-MDEV-29985
bb-11.0-MDEV-30032
bb-11.0-MDEV-30059
bb-11.0-MDEV-30205-pkgtest-usr-share-mariadb
bb-11.0-MDEV-30318
bb-11.0-MDEV-30318-v2
bb-11.0-MDEV-30944
bb-11.0-MDEV-31022
bb-11.0-MDEV-31022-variant2
bb-11.0-MDEV-31022-variant3
bb-11.0-MDEV-31022-variant4
bb-11.0-MDEV-31793
bb-11.0-MDEV-31793-fix-loosescan-derived
bb-11.0-MDEV-32335
bb-11.0-MDEV-32628-mergefix
bb-11.0-MDEV-33648
bb-11.0-MDEV-5816
bb-11.0-MDEV-8320
bb-11.0-all-builders
bb-11.0-analyze-fixes
bb-11.0-bar-MDEV-15750
bb-11.0-before-feb
bb-11.0-bumpversion
bb-11.0-danielblack-MDEV-30203-pkgtest-symlink-packages
bb-11.0-danielblack-MDEV-30203-pkgtest-symlink-packages-salsa
bb-11.0-danielblack-preview-MDEV-30203-MDEV-30574-MDEV-30571-fix-pkgtest
bb-11.0-danielblack-preview-MDEV-30203-fix
bb-11.0-danielblack-preview-MDEV-30203-fix-pkgtest
bb-11.0-danielblack-preview-MDEV-30203-pkgtest
bb-11.0-danielblack-rpm-fix
bb-11.0-galera-split-wsrep-provider-options
bb-11.0-igor
bb-11.0-jan23-rebase
bb-11.0-jan23-rebase-try2
bb-11.0-jan23-rebase-try3
bb-11.0-mdbf-535-do-not-merge
bb-11.0-mdev-22979
bb-11.0-mdev-22979-bootstrap-test-demo
bb-11.0-mdev-22979-create-handler-no-wait
bb-11.0-mdev-22979-init-query-in-spider-db-init
bb-11.0-mdev-22979-init-spider-last
bb-11.0-mdev-22979-init-spider-last-poc
bb-11.0-mdev-22979-old
bb-11.0-mdev-25292-ycp-spider-maint
bb-11.0-mdev-26137
bb-11.0-mdev-26137-unsquashed
bb-11.0-mdev-26137-wip-alter-import
bb-11.0-mdev-26137-wip-cfg-clone
bb-11.0-mdev-26137-wip-minimal-create-table
bb-11.0-mdev-26247
bb-11.0-mdev-26345
bb-11.0-mdev-27902
bb-11.0-mdev-27912
bb-11.0-mdev-28152
bb-11.0-mdev-28152-alter-value-type
bb-11.0-mdev-28152-longlong-hybrid-class-fields
bb-11.0-mdev-28152-round-2
bb-11.0-mdev-28152-squashed
bb-11.0-mdev-28526
bb-11.0-mdev-28739
bb-11.0-mdev-28992
bb-11.0-mdev-29002
bb-11.0-mdev-29269
bb-11.0-mdev-29363
bb-11.0-mdev-29363-adjust-extraction-flag
bb-11.0-mdev-29363-no-propagate-with-subquery
bb-11.0-mdev-29363-with-subquery-processor
bb-11.0-mdev-29447-31338
bb-11.0-mdev-29502
bb-11.0-mdev-29502-revert-20502
bb-11.0-mdev-29663
bb-11.0-mdev-29676
bb-11.0-mdev-29676-on-mdev-25292
bb-11.0-mdev-29718
bb-11.0-mdev-29962
bb-11.0-mdev-29962-funlck-demo
bb-11.0-mdev-30014
bb-11.0-mdev-30170
bb-11.0-mdev-30265
bb-11.0-mdev-31117
bb-11.0-mdev-31400
bb-11.0-mdev-31421
bb-11.0-mdev-31524
bb-11.0-mdev-31524-failure-why
bb-11.0-mdev-31586
bb-11.0-mdev-31787
bb-11.0-mdev-31996
bb-11.0-mdev-32238
bb-11.0-mdev-32524
bb-11.0-mdev-32524-wrong
bb-11.0-mdev-32609
bb-11.0-mdev-32804
bb-11.0-mdev-32901
bb-11.0-mdev-32901-v2
bb-11.0-mdev-33742
bb-11.0-mdev30310-updated
bb-11.0-mdev30596
bb-11.0-mdev30693
bb-11.0-mdev30956
bb-11.0-mdev31223
bb-11.0-merge-spider-fixup
bb-11.0-midenok
bb-11.0-midenok-MDEV-20865
bb-11.0-midenok-MDEV-25292
bb-11.0-midenok-MDEV-27180
bb-11.0-midenok-MDEV-30421
bb-11.0-midenok-mydumper
bb-11.0-monty
bb-11.0-oalter
bb-11.0-release-mdev30143
bb-11.0-serg
bb-11.0-spetrunia-tmp
bb-11.0-sysschema-optimizer_switch
bb-11.0-tmp
bb-11.0-ycp
bb-11.0-ycp-mdev-26151
bb-11.0-ycp-mdev-26151-exp
bb-11.0-ycp-mdev-26151-hypothesis
bb-11.0-ycp-mdev-26247
bb-11.0-ycp-mdev-26247-disable-gbh
bb-11.0-ycp-mdev-26247-first-table-holder-spider
bb-11.0-ycp-mdev-26247-optimized-away-const-table
bb-11.0-ycp-mdev-26247-remove-spdgbh-const-table-handling
bb-11.0-ycp-mdev-26247-spider-fields-wrong-spider
bb-11.0-ycp-mdev-26247-unsquashed
bb-11.0-ycp-mdev-28998
bb-11.0-ycp-mdev-29502
bb-11.0-ycp-mdev-29963
bb-11.0-ycp-mdev-30014
bb-11.0-ycp-mdev-31586
bb-11.0-ycp-mdev-31996
bb-11.0-ycp-spider
bb-11.0-ycp-spider-mdev-29502
bb-11.0-ycp-spider-mdev-31117
bb-11.0-ycp-spider-mdev-31524
bb-11.1-MDEV-16329-online-alter
bb-11.1-MDEV-26137
bb-11.1-MDEV-27871-MDEV-31933
bb-11.1-MDEV-29911
bb-11.1-MDEV-31005
bb-11.1-MDEV-31599
bb-11.1-MDEV-33533
bb-11.1-MDEV-33533-v2
bb-11.1-MDEV-34649
bb-11.1-all-builders
bb-11.1-bar
bb-11.1-bumpversion
bb-11.1-columnstore
bb-11.1-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated-pkgtest
bb-11.1-handle-instant-metadata
bb-11.1-igor
bb-11.1-mdev-22534
bb-11.1-mdev-22534-cleanup
bb-11.1-mdev-22534-cleanup2
bb-11.1-mdev-22534-poc
bb-11.1-mdev-22534-unsquashed-2
bb-11.1-mdev-22979-31400
bb-11.1-mdev-25008
bb-11.1-mdev-25080
bb-11.1-mdev-26137
bb-11.1-mdev-26137-round-9
bb-11.1-mdev-26137-squashed
bb-11.1-mdev-26137-unsquashed
bb-11.1-mdev-26178
bb-11.1-mdev-27201
bb-11.1-mdev-27419
bb-11.1-mdev-27912
bb-11.1-mdev-28363
bb-11.1-mdev-28522
bb-11.1-mdev-29447-31338
bb-11.1-mdev-29502
bb-11.1-mdev-29630
bb-11.1-mdev-29676
bb-11.1-mdev-30435-30981
bb-11.1-mdev-30920
bb-11.1-mdev-31117
bb-11.1-mdev-31400
bb-11.1-mdev-31421
bb-11.1-mdev-31586
bb-11.1-mdev-31788
bb-11.1-mdev-31902
bb-11.1-mdev-32157
bb-11.1-mdev-32238
bb-11.1-mdev-34002
bb-11.1-mdev-34757
bb-11.1-midenok
bb-11.1-monty
bb-11.1-release-fix-debian-columnstore-pkgtest
bb-11.1-remove-save-prep-leaf-tables
bb-11.1-serg
bb-11.1-ycp
bb-11.1-ycp-mdev-22534
bb-11.1-ycp-spider
bb-11.1-ycp-spider-maint
bb-11.2-MDEV-27871
bb-11.2-MDEV-30100
bb-11.2-MDEV-30145
bb-11.2-MDEV-30822-galera
bb-11.2-MDEV-30822-v2-galera
bb-11.2-MDEV-31005
bb-11.2-MDEV-31411
bb-11.2-MDEV-31431
bb-11.2-MDEV-31799
bb-11.2-MDEV-32123
bb-11.2-MDEV-32628-mergefix
bb-11.2-MDEV-33525
bb-11.2-MDEV-33921-mergefix
bb-11.2-MDEV-35072
bb-11.2-MDEV-5816
bb-11.2-bar
bb-11.2-bar-MDEV-33182
bb-11.2-bumpversion
bb-11.2-columnstore
bb-11.2-getcpu-counter
bb-11.2-growt
bb-11.2-innodb-preview
bb-11.2-mdev-22168-hf
bb-11.2-mdev-22534
bb-11.2-mdev-22534-demo-exists2in-loop
bb-11.2-mdev-22534-item-ref-propagate
bb-11.2-mdev-22534-item-ref-propagate-review-fixes
bb-11.2-mdev-22534-item-ref-propagate-unsquashed
bb-11.2-mdev-22534-unpatched-equal-fields
bb-11.2-mdev-22534-unsquashed
bb-11.2-mdev-26137-fix-import-recovery
bb-11.2-mdev-28856
bb-11.2-mdev-28856-static-fallback
bb-11.2-mdev-29502
bb-11.2-mdev-31117
bb-11.2-mdev-31400
bb-11.2-mdev-31524
bb-11.2-mdev-31586
bb-11.2-mdev-31788
bb-11.2-mdev-31788-merge-practice-run
bb-11.2-mdev-32046
bb-11.2-mdev-32157
bb-11.2-mdev-34659
bb-11.2-mdev-35073
bb-11.2-merge
bb-11.2-midenok-MDEV-25495
bb-11.2-midenok-MDEV-27180
bb-11.2-midenok-MDEV-4991
bb-11.2-oalter
bb-11.2-oalter-MDEV-31185
bb-11.2-opentables
bb-11.2-serg
bb-11.2-spetrunia-merge
bb-11.2-thiru
bb-11.2-vicentiu
bb-11.2-ycp
bb-11.2-ycp-mdev-15935
bb-11.2-ycp-mdev-28856
bb-11.2-ycp-mdev-28856-sysvar-option-same
bb-11.3-MDEV-25870
bb-11.3-MDEV-27247-restrict-domains
bb-11.3-MDEV-29167
bb-11.3-MDEV-30953-mariadb-server-galera-pkgtest
bb-11.3-MDEV-31496-sargable-casefold
bb-11.3-MDEV-31496-sargable-casefold-v2
bb-11.3-MDEV-31684
bb-11.3-MDEV-32184
bb-11.3-all-builders
bb-11.3-bar-MDEV-12252
bb-11.3-bar-MDEV-20034
bb-11.3-bar-MDEV-31431
bb-11.3-bar-MDEV-32148
bb-11.3-bumpversion
bb-11.3-elenst
bb-11.3-georg
bb-11.3-mdev-15935
bb-11.3-mdev-22534
bb-11.3-mdev-22534-item-ref-no-direct
bb-11.3-mdev-22534-ps-fix2
bb-11.3-mdev-27576
bb-11.3-mdev-28856
bb-11.3-mdev-28856-and-fixes
bb-11.3-mdev-28856-delete-all-rows
bb-11.3-mdev-31996
bb-11.3-mdev-32234
bb-11.3-mdev-32254
bb-11.3-mdev-32486
bb-11.3-mdev-32568
bb-11.3-mdev-32640
bb-11.3-mdev-32640-commented-global
bb-11.3-mdev19177-hf
bb-11.3-merge
bb-11.3-mini-MDEV-31431
bb-11.3-monty
bb-11.3-release-ycp-fix
bb-11.3-serg
bb-11.3-timestamp
bb-11.3-vicentiu
bb-11.3-ycp-mdev-15935
bb-11.3-ycp-mdev-28856
bb-11.4-MCOL-6069
bb-11.4-MDEV-18478
bb-11.4-MDEV-18478-v2
bb-11.4-MDEV-18478-v3
bb-11.4-MDEV-18478-v4
bb-11.4-MDEV-18478-v4-MDEV-12404
bb-11.4-MDEV-27871-MDEV-31933
bb-11.4-MDEV-29981-merge
bb-11.4-MDEV-30073-8.3
bb-11.4-MDEV-30260-mergefix
bb-11.4-MDEV-30366-bulk-results
bb-11.4-MDEV-30366-bulk-results-2
bb-11.4-MDEV-30469
bb-11.4-MDEV-30469-goose
bb-11.4-MDEV-30877-v3
bb-11.4-MDEV-31404
bb-11.4-MDEV-31855-ssl
bb-11.4-MDEV-31933
bb-11.4-MDEV-32216-parallel-mysqldump
bb-11.4-MDEV-32575
bb-11.4-MDEV-32694
bb-11.4-MDEV-32841
bb-11.4-MDEV-33436
bb-11.4-MDEV-33500-v2-mergefix
bb-11.4-MDEV-33640
bb-11.4-MDEV-34122-mergefix
bb-11.4-MDEV-34200
bb-11.4-MDEV-34322
bb-11.4-MDEV-34348-merge-fix
bb-11.4-MDEV-34408-effcplusplus_warning_test
bb-11.4-MDEV-34649
bb-11.4-MDEV-34779
bb-11.4-MDEV-34877
bb-11.4-MDEV-35342
bb-11.4-MDEV-35694-merge
bb-11.4-MDEV-35958
bb-11.4-MDEV-35969-galera
bb-11.4-MDEV-36321-review-input
bb-11.4-MDEV-36389-review-input
bb-11.4-MDEV-36462
bb-11.4-MDEV-36663-mergefix
bb-11.4-MDEV-36809
bb-11.4-MDEV-36843-galera
bb-11.4-MDEV-36861
bb-11.4-MDEV-37143
bb-11.4-MDEV-37680-danblack-pkgtest
bb-11.4-MDEV-37723-try2
bb-11.4-MDEV-37864
bb-11.4-MDEV-7850
bb-11.4-MDEV-7850-galera-testfix
bb-11.4-add-columnstore-mtr-pkgtest
bb-11.4-all-builders
bb-11.4-andrei
bb-11.4-anel-MDEV-31404
bb-11.4-anel-check-bb
bb-11.4-bar
bb-11.4-bar-MDEV-12252
bb-11.4-bar-MDEV-20034
bb-11.4-bar-MDEV-20912
bb-11.4-bar-MDEV-25829
bb-11.4-bar-MDEV-31340
bb-11.4-bar-MDEV-31531
bb-11.4-bar-MDEV-32380
bb-11.4-bar-MDEV-33386
bb-11.4-bar-MDEV-33428
bb-11.4-bar-MDEV-33729
bb-11.4-bar-MDEV-34085
bb-11.4-bar-MDEV-35688
bb-11.4-bar-MDEV-36047
bb-11.4-bar-MDEV-36053
bb-11.4-bar-MDEV-36213
bb-11.4-bar-MDEV-36216
bb-11.4-bar-MDEV-36361
bb-11.4-bar-MDEV-36390
bb-11.4-bar-MDEV-36565
bb-11.4-bar-m35677
bb-11.4-bumpversion
bb-11.4-compatibility
bb-11.4-danblack-MCOL-5825-selinux-test-pkgtest
bb-11.4-elenst
bb-11.4-georg
bb-11.4-julius-galera
bb-11.4-knielsen
bb-11.4-mdev-15696
bb-11.4-mdev-27186
bb-11.4-mdev-27260
bb-11.4-mdev-27576-preview
bb-11.4-mdev-27998
bb-11.4-mdev-28105
bb-11.4-mdev-28152
bb-11.4-mdev-28861
bb-11.4-mdev-28861-old
bb-11.4-mdev-28861-warning-demo
bb-11.4-mdev-31788
bb-11.4-mdev-32627
bb-11.4-mdev-32627-empty-check-ci
bb-11.4-mdev-32627-empty-check-ci-2
bb-11.4-mdev-32640
bb-11.4-mdev-32856-preview
bb-11.4-mdev-32999
bb-11.4-mdev-33190-hf
bb-11.4-mdev-33608
bb-11.4-mdev-34272
bb-11.4-mdev-34272-options
bb-11.4-mdev-34272-socket-length
bb-11.4-mdev-35783-debug
bb-11.4-mdev-35840
bb-11.4-mdev-36323
bb-11.4-mdev-37193
bb-11.4-mdev-37484
bb-11.4-mdev-37484-spider-federatedx
bb-11.4-mdev-37810
bb-11.4-mdev12404-asserts
bb-11.4-merge
bb-11.4-midenok
bb-11.4-midenok-MDEV-16417
bb-11.4-midenok-MDEV-20865
bb-11.4-midenok-MDEV-30973
bb-11.4-monty
bb-11.4-nikita
bb-11.4-nikita-merge
bb-11.4-no-capabilities-pkgtest
bb-11.4-parallel-mysqldump
bb-11.4-pr2726-MDEV-19210-environment-file-pkgtest
bb-11.4-release
bb-11.4-release-julius
bb-11.4-serg
bb-11.4-sts-crd
bb-11.4-testMDEV-32441
bb-11.4-thiru
bb-11.4-timestamp
bb-11.4-timestamp-windows
bb-11.4-timofey1
bb-11.4-vec
bb-11.4-vec-intel
bb-11.4-vec-vicentiu
bb-11.4-vec-vicentiu-hugo
bb-11.4-wlad
bb-11.4-wlad-MDEV-33474
bb-11.4-ycp-fix
bb-11.4-ycp-fixup
bb-11.4.3-mdev-34925
bb-11.4.6-histogram-getter
bb-11.5-MDEV-18478
bb-11.5-MDEV-31005
bb-11.5-MDEV-32854
bb-11.5-MDEV-33144-slow-query-log-always-write-time
bb-11.5-MDEV-33188-multithreaded-dump
bb-11.5-MDEV-33625
bb-11.5-MDEV-33677-galera
bb-11.5-MDEV-33988-delete-table-alias-pkgtest
bb-11.5-all-builders
bb-11.5-andrei
bb-11.5-bar
bb-11.5-bar-MDEV-11339
bb-11.5-bar-MDEV-12668
bb-11.5-bar-MDEV-19123
bb-11.5-bar-MDEV-20610
bb-11.5-bar-MDEV-25829
bb-11.5-bar-MDEV-30716
bb-11.5-bar-MDEV-31340
bb-11.5-bar-MDEV-31531
bb-11.5-bar-MDEV-33281
bb-11.5-bar-MDEV-33281-v2
bb-11.5-bar-MDEV-33621
bb-11.5-bar-MDEV-33696
bb-11.5-bar-MDEV-33827
bb-11.5-bar-MDEV-34025
bb-11.5-bar-preview
bb-11.5-bumpversion
bb-11.5-elenst
bb-11.5-hints
bb-11.5-hints-bar-parser-v2
bb-11.5-hints-bar-parser-v3
bb-11.5-mdev-22168
bb-11.5-mdev-28152
bb-11.5-mdev-30929-sleep
bb-11.5-mdev-30929-wait-and-die
bb-11.5-mdev-30929-wait-and-retry
bb-11.5-mdev-31609
bb-11.5-mdev-31789
bb-11.5-mdev-31789-gold
bb-11.5-mdev-33734
bb-11.5-mdev-33739
bb-11.5-mdev-33836
bb-11.5-mdev-34404
bb-11.5-mdev-34518
bb-11.5-mdev-34745-init-val
bb-11.5-mdev12404-extras
bb-11.5-midenok
bb-11.5-monty
bb-11.5-monty2
bb-11.5-opentables
bb-11.5-opentables-2
bb-11.5-opentables-further
bb-11.5-opentables-mysyshash
bb-11.5-opentables-testlab
bb-11.5-serg
bb-11.5-timestamp
bb-11.5-ycp-mtr-ubsan-overflow
bb-11.6-2-hf
bb-11.6-MDEV-12320
bb-11.6-MDEV-19191-fk_partitioning
bb-11.6-MDEV-27293-sysver
bb-11.6-MDEV-31809-galera
bb-11.6-MDEV-32618-auth-plugin
bb-11.6-MDEV-33697
bb-11.6-MDEV-33748
bb-11.6-MDEV-33748-2
bb-11.6-MDEV-33856-bnestere
bb-11.6-MDEV-33856-seconds_behind_master
bb-11.6-MDEV-34551
bb-11.6-MDEV-34649
bb-11.6-MDEV-34704
bb-11.6-all-builders
bb-11.6-bar
bb-11.6-bar-34817
bb-11.6-bar-MDEV-12252
bb-11.6-bar-MDEV-15751
bb-11.6-bar-MDEV-19123
bb-11.6-bar-MDEV-27277
bb-11.6-bar-MDEV-34829
bb-11.6-bar-MDEV-34922
bb-11.6-bar-MDEV-35041
bb-11.6-bumpversion
bb-11.6-fix-is-test
bb-11.6-hf
bb-11.6-hints-max-exec-time-v2
bb-11.6-hints-max-exec-time-v3
bb-11.6-hints-max-exec-time-v3-review
bb-11.6-hints-v2
bb-11.6-hints-v2-input
bb-11.6-hints-v2-input2
bb-11.6-mdev-15696
bb-11.6-mdev-22168-hf
bb-11.6-mdev-22168-test-hf
bb-11.6-mdev-25008
bb-11.6-mdev-28009
bb-11.6-mdev-32492-27902-29962
bb-11.6-mdev-34518
bb-11.6-mdev-34757
bb-11.6-mdev-35041
bb-11.6-mdev20250-hf
bb-11.6-midenok
bb-11.6-midenok-MDEV-16417
bb-11.6-monty
bb-11.6-parsec
bb-11.6-pkgtest
bb-11.6-release-spider-ptr-fix
bb-11.6-remove-save-prep-leaf-tables
bb-11.6-serg
bb-11.6-vicentiu
bb-11.6-vicentiu-wip
bb-11.6-wlad
bb-11.7-MDEV-15751-timestamp
bb-11.7-MDEV-19191-fk_partitioning
bb-11.7-MDEV-20153
bb-11.7-MDEV-27293-sysver
bb-11.7-MDEV-30908-session-user
bb-11.7-MDEV-31005-fix
bb-11.7-MDEV-31466
bb-11.7-MDEV-33144-slow-query-log-always-write-time
bb-11.7-MDEV-33710-uuid
bb-11.7-MDEV-33756
bb-11.7-MDEV-34930
bb-11.7-MDEV-35793
bb-11.7-MDEV-35939
bb-11.7-MDEV-36057
bb-11.7-MDEV-6017-variant3
bb-11.7-all-builders
bb-11.7-bar-MDEV-12252-sp-row
bb-11.7-bar-MDEV-34317-ora-record
bb-11.7-bar-MDEV-34817
bb-11.7-bar-MDEV-35229
bb-11.7-bar-MDEV-35250
bb-11.7-bnestere
bb-11.7-bumpversion
bb-11.7-check-table
bb-11.7-cset-narrowing-on
bb-11.7-knielsen
bb-11.7-mdev-15696
bb-11.7-mdev-15696-before-squash
bb-11.7-mdev-24813-debug
bb-11.7-mdev-25008
bb-11.7-mdev-28009
bb-11.7-mdev-30576
bb-11.7-mdev-34120-gis-functions
bb-11.7-mdev-34872
bb-11.7-mdev-34915
bb-11.7-mdev-34915-old-format
bb-11.7-mdev-35318
bb-11.7-mdev-35318-just-reprepare
bb-11.7-mdev-35318-own-reprepare-system
bb-11.7-mdev-35557
bb-11.7-mdev-35662
bb-11.7-mdev-36080
bb-11.7-merge
bb-11.7-parsec
bb-11.7-serg
bb-11.7-spetrunia-tmp
bb-11.7-wlad
bb-11.7-xaxa
bb-11.7-xaxaxa
bb-11.7.release
bb-11.8-MDEV-10164
bb-11.8-MDEV-14091
bb-11.8-MDEV-30877
bb-11.8-MDEV-30877-v2
bb-11.8-MDEV-30877-v3
bb-11.8-MDEV-31933
bb-11.8-MDEV-33603-nossl-socket
bb-11.8-MDEV-33677-galera
bb-11.8-MDEV-34551
bb-11.8-MDEV-34699-vector-arm
bb-11.8-MDEV-34724
bb-11.8-MDEV-34822-galera
bb-11.8-MDEV-34979
bb-11.8-MDEV-35155
bb-11.8-MDEV-35450-vec_distance
bb-11.8-MDEV-35694-merge
bb-11.8-MDEV-36079
bb-11.8-MDEV-36390
bb-11.8-MDEV-36398
bb-11.8-MDEV-36474
bb-11.8-MDEV-36527-galera
bb-11.8-MDEV-37463
bb-11.8-MDEV-37732
bb-11.8-MDEV-6017-variant3
bb-11.8-MDEV-7850-opt
bb-11.8-MDEV-9101_err
bb-11.8-MDEV-9158-file-key-manager
bb-11.8-MDEV30877
bb-11.8-add-columnstore-mtr-pkgtest
bb-11.8-all-builders
bb-11.8-bar-MDEV-10862-opt-params
bb-11.8-bar-MDEV-22217-utf8mb4
bb-11.8-bar-MDEV-31736-format_bytes
bb-11.8-bar-MDEV-34189
bb-11.8-bar-MDEV-34317
bb-11.8-bar-MDEV-36322
bb-11.8-bar-MDEV-37849
bb-11.8-bar-MDEV-MDEV-26115
bb-11.8-bumpversion
bb-11.8-check-table
bb-11.8-dbart
bb-11.8-identity
bb-11.8-innodb-ahi-cursor
bb-11.8-knielsen
bb-11.8-mdev-22491
bb-11.8-mdev-30469
bb-11.8-mdev-34680-custom-hf
bb-11.8-mdev-34680-hf
bb-11.8-mdev-34911
bb-11.8-mdev-34911-plus-cleanup
bb-11.8-mdev-34911-review
bb-11.8-mdev-35323
bb-11.8-mdev-35662
bb-11.8-mdev-35866-rnd-next-twice
bb-11.8-mdev-36080
bb-11.8-mdev-36087
bb-11.8-mdev-36758
bb-11.8-mdev-36791
bb-11.8-mdev-37723
bb-11.8-mdev-37810
bb-11.8-midenok
bb-11.8-midenok-merge
bb-11.8-midenok-merge2
bb-11.8-monty
bb-11.8-monty-fix-get-examined-rows
bb-11.8-monty-mdl_name
bb-11.8-monty2
bb-11.8-monty3
bb-11.8-nikita-global-tmp
bb-11.8-no-parameterless-new
bb-11.8-release
bb-11.8-serg
bb-11.8-sn
bb-11.8-sn-av
bb-11.8-sn-av2
bb-11.8-wlad
bb-11.9-mdev-22168-hf
bb-12.0-MDEV-10164
bb-12.0-MDEV-20022
bb-12.0-MDEV-20065-galera
bb-12.0-MDEV-20299-authorization
bb-12.0-MDEV-20299-sudo
bb-12.0-MDEV-29981-merge
bb-12.0-MDEV-33834-audit
bb-12.0-MDEV-34822-fk-ist
bb-12.0-MDEV-35856-index-hints-v2-ycp-cleanup
bb-12.0-MDEV-36077-galera
bb-12.0-MDEV-36484-rename
bb-12.0-MDEV-36675-is-error
bb-12.0-MDEV-37035-timeout
bb-12.0-bar-MDEV-20022
bb-12.0-bar-MDEV-20022-v1
bb-12.0-bar-MDEV-20034
bb-12.0-bar-MDEV-34319
bb-12.0-bar-MDEV-36503
bb-12.0-bar-MDEV-36705
bb-12.0-bar-MDEV-36716
bb-12.0-bumpversion
bb-12.0-mdev-21376-hf
bb-12.0-mdev-22491-35866-no-36032
bb-12.0-mdev-22491-36032-35866
bb-12.0-mdev-32732
bb-12.0-mdev-32732-demo-remove-null-range
bb-12.0-mdev-34120-gis-functions
bb-12.0-mdev-34680-hf
bb-12.0-mdev-34680x2-hf
bb-12.0-mdev-34712
bb-12.0-mdev-35866
bb-12.0-mdev-36032
bb-12.0-mdev-36032-check-on-writing
bb-12.0-mdev-37099-hf
bb-12.0-mdev-37131-hf
bb-12.0-nikita-autoinc-lite
bb-12.0-nikita-global-tmp
bb-12.0-release
bb-12.0-serg
bb-12.0-unstable-join-order
bb-12.1-MDEV-20065-galera
bb-12.1-MDEV-20065-v2-galera
bb-12.1-MDEV-31949_part_III
bb-12.1-MDEV-32830_xa
bb-12.1-MDEV-35617
bb-12.1-MDEV-35617-drop-user
bb-12.1-MDEV-36077-galera
bb-12.1-MDEV-36077-v2-galera
bb-12.1-MDEV-36205-subdist
bb-12.1-MDEV-36483-review-input
bb-12.1-MDEV-9804-sha2
bb-12.1-andrei
bb-12.1-bar-MDEV-20022
bb-12.1-bar-MDEV-33830
bb-12.1-bar-MDEV-33830-oldway
bb-12.1-bar-MDEV-36053
bb-12.1-bar-MDEV-36053-v2
bb-12.1-bar-MDEV-37319
bb-12.1-bar-MDEV-37408
bb-12.1-bar-MDEV-37430
bb-12.1-bar-MDEV-37863
bb-12.1-bumpver
bb-12.1-bumpversion
bb-12.1-columnstore-23.10
bb-12.1-elenst
bb-12.1-elenst-MDEV-19749-MDL
bb-12.1-elenst-MDEV-36205-subdist
bb-12.1-mdev-28792
bb-12.1-mdev-36132
bb-12.1-mdev-36132-base
bb-12.1-mdev-36132-covering
bb-12.1-mdev-36132-group-by
bb-12.1-mdev-36132-keyread-with-vcol
bb-12.1-mdev-36132-replace-all-fields-item
bb-12.1-mdev-36132-subst
bb-12.1-mdev-36132-subst-covering
bb-12.1-mdev-36132-try-fix-covering
bb-12.1-mdev-36132-wip
bb-12.1-mdev-36132-wip-fixes
bb-12.1-mdev-37178
bb-12.1-mdev-37252
bb-12.1-mdev-37422
bb-12.1-mdev-37422-dedup-1
bb-12.1-mdev-37422-reinit-rollup
bb-12.1-mdev-37422-v2
bb-12.1-mdev-37422-v3
bb-12.1-mdev-37435
bb-12.1-mdev-38040
bb-12.1-mdev-38040-demo
bb-12.1-monty
bb-12.1-monty-MDEV-20023
bb-12.1-release
bb-12.1-serg
bb-12.1-spetrunia
bb-12.1-ycp-fixup
bb-12.2-MDEV-37082
bb-12.2-bar-MDEV-10152
bb-12.2-bar-MDEV-20022
bb-12.2-frm-staging
bb-12.2-mdev-36055
bb-12.2-mdev-36055-basic
bb-12.2-mdev-36055-check-mdev-36331
bb-12.2-mdev-36055-graph
bb-12.2-mdev-36055-limit-heuristic-pruning
bb-12.2-mdev-36055-prune-level-0
bb-12.2-mdev-37261-hf
bb-12.2-nikita-global-tmp
bb-12.2-release
bb-12.2-serg
bb-12.3-MDEV-10267-ngram
bb-12.3-MDEV-34723-work_in_progress
bb-14005-hf
bb-19248-libmariadb
bb-19248-libmariadb.bak.1
bb-MDEV-17856
bb-MDEV-21092-21095-29997-optimizer-trace-updates
bb-MDEV-24-monty
bb-MDEV-36234-wlad
bb-MDEV-7487-rebased-against-11.0.1
bb-MDEV-7487-rebased-against-11.0.1-MDEV-29390-test
bb-MDEV-9804-wolfssl-fixes
bb-MDEV14101
bb-ahi-monty
bb-hf-10.4-mdev7974
bb-hf-sup25102
bb-json_depth-rucha
bb-linuxjedi-mdev-33479
bb-main-MDEV-13817
bb-main-MDEV-13817-2
bb-main-MDEV-13817-2-ycp-review
bb-main-MDEV-13817-review-input
bb-main-MDEV-31741
bb-main-MDEV-33387
bb-main-MDEV-36830
bb-main-MDEV-37339
bb-main-MDEV-37339-2
bb-main-all-builders
bb-main-mdev-27260
bb-main-mdev-27260-any-item-processor
bb-main-mdev-27260-unsquashed
bb-main-mdev-30847
bb-main-mdev-32907
bb-main-mdev-37110
bb-main-mdev-37111
bb-main-mdev-37114
bb-main-mdev-37193
bb-main-mdev-37193-demo
bb-main-mdev-37193-unsquashed
bb-main-mdev-37330
bb-main-mdev-37330-assert
bb-main-mdev-37435
bb-main-mdev-38111
bb-main-mdev-9826-option-2
bb-main-mdev-9826-v2
bb-main-mdev-9826-v3
bb-main-midenok-MDEV-16417
bb-main-midenok-MDEV-16417-rebase
bb-main-midenok-MDEV-16417-refactorings
bb-main-midenok-MDEV-19191
bb-main-midenok-MDEV-25292
bb-main-midenok-MDEV-37008
bb-main-monty
bb-main-release
bb-main-thiru
bb-main-vicentiu-test-bb
bb-main-vicentiu-uniques
bb-main-vicentiu-uniques-rebase
bb-main-wlad-denies
bb-main-ycp
bb-maria-s3
bb-mcs-10.9
bb-mdev-10.5-mdev-32180
bb-mdev-14472
bb-mdev-31766-hf
bb-mdev-36132-demo
bb-mdev21211-hf
bb-nikita-MDEV-16440
bb-opt-hints-1
bb-opt-hints-1-cleanup
bb-pr-689
bb-pr-774
bb-sup37463
bb-wip-11.4-mdev-12404
bb-wlad-main
bb_mdev14101
chk-11.0-merge
clone_changes_thiru
clone_history
codership-10.4-MDEV-21697
codership-10.4-MDEV-22227
codership-sst-ssl-fixes-10.2
columnstore_cache
detached
fk_in_progress
fk_list_span
for_vanislavskiy
for_vanislavskiy_speedup
hf-10.11.11-mdev16253-rocksdb-6.29fb
hf-10.5-10.5.22-MDEV-25163
hf-10.6-10.6.10-auth-pam
hf-10.6-10.6.11-pkgtest-MDEV-31185-pins
hf-10.6-10.6.12-MDEV-30165
hf-s25102
howard0su-10.2
https/jira.mariadb.org/browse/MDEV-11588
ib_fix_plugin_init
jan-MDEV-29171-galera
kakurin_sampling
knielsen-binlog-in-engine-xa
knielsen-mdev36934-10.11
knielsen-mdev36934-10.6
knielsen_alt_domain_wait
knielsen_binlog_in_engine
knielsen_binlog_in_engine_11.8
knielsen_catalog_rpl
knielsen_detect_non_trans_optimistic
knielsen_fixes_12.0
knielsen_mdev22351
knielsen_mdev24948
knielsen_mdev31949_review
knielsen_mdev32020
knielsen_mdev32673
knielsen_mdev35643
knielsen_mdev35643_11.4
knielsen_mdev36137_10.11
knielsen_mdev36137_10.4
knielsen_mdev37606_dll_crash_safe_slave
knielsen_rpl_fixes_10.6
knielsen_rpl_fixes_11.8
knielsen_rpl_print_deadlocks
knielsen_rpl_print_deadlocks-10.5
knielsen_start_alter
knielsen_xa_sched_minimal_fix
leblanc-10.5-cs
main
main-MDEV-19574
main-MDEV-28730
main-MDEV-31741
main-MDEV-32570
main-MDEV-34705-bnestere-mtr-additions
main-MDEV-35248
main-MDEV-36290
main-MDEV-36733
main-MDEV-37487-mysqlbinlog_slave_consistency
main-spetrunia-tmp
main-vicentiu
main-wlad-denies
maria-s3
mdev-13625
mdev-13626
mdev-17856.tmp
mdev-18983
mdev-18983.px5.bak
mdev-19248
mdev-23077
mdev-24813
mdev-35474
mdev-35599
mdev-35599.dup_bounds_error
mdev-35879.test
mdev-35948-replicate
mdev-36245-hf
mdev-36839
mdev-37102
mdev-37116
merge-10.11-MDEV-33668
midenok-tmp
nc-10.11-merge-spider
nikita-11.4-MDEV-33049
nikita-autoinc
nikita-autoinc-lite
nikita/MDEV-25774
nikita/periods-fk-rebase
nm/period-fk-fallback
nm/period-fk-linear
nm/replace
nm/versioning-combinatoin
nm/without-overlaps-rebased
nn-10.10-merge
nn-10.11-merge
nn-10.5-merge
nn-10.6-merge
nn-11.0-merge
nn-11.1-merge
nn-11.2-merge
nn-11.3-merge
ok-10.2-connect-no-new-files-in-stable-releases
orig-12.0-mdev-36167-gis-assertion-reset-field
origin/bb-10.3-MDEV-21117
pkcg
preview-12.0-preview
preview-12.1-preview
preview-12.2-preview
prot-st-10.2-vicentiu
px5-rpl-filter
px5-rpl-filter.sysvar-member.bak
px5-rpl-filter.tmp
px5.mdev-35758
px5.mysqld_error_find_printf_error
px5.pull_request_template
px5.sss_inc_vars
px5.yes_san
qa-11.7-MDEV-32014
qa-11.7-MDEV-34857
queue-v1
raw-10.6-MDEV-16983-period-fk
review-11.4-MDEV-33049
review__knielsen_xa_sched_minimal_fix
rpl_start-stop_inc
scope_exit
selectivity-10.7-rbz
st-10.11-MDEV-31953
st-10.11-MDEV-34422
st-10.11-julius
st-10.11-knielsen
st-10.11-merge-draft
st-10.11-merge-wip
st-10.11-wlad
st-10.2-danielblack-MDEV-27279-mariadb-upgrade-check-if-needed
st-10.4-anel-MDEV-22486-mysql_secure_installation
st-10.4-julius
st-10.4-merge-julius
st-10.5-MDEV-10962-deadlock-deletes
st-10.5-julius
st-10.5-vicentiu
st-10.6-MDEV-10962-deadlock-deletes
st-10.6-MDEV-29575-is_crash
st-10.6-julius
st-10.6-julius-galera
st-10.6-julius-v2
st-10.6-merge-julius
st-10.6-vicentiu
st-11.1-merge-fix
st-11.2-thiru
st-11.4-MDEV-34388
st-11.4-julius
st-11.4-merge-julius
st-11.4-merge-spider-fixup
st-11.4-wlad
st-11.6-vlad-test
st-11.6-wlad
st-12.0-merge-julius
st-12.1-MDEV-33966
sup-37643-hf
svoj-szworkshop
svoj-workshop
szworkshop
tmp_sachin
tst-10.8-elenst
vice-1
vicentiu-deny-command
vicentiu-docker
vicentiu-filter-2
vicentiu-tmp
wip-11.4-mdev-12404
xx.x-mdev-12513-INTERVAL-data-type
base_4_16217
beta-3.23.23
clone-4.0.25-build
clone-4.0.26-build
clone-4.0.27-build
clone-4.0.28-build
clone-4.0.29-build
clone-4.0.30-build
clone-4.1.12-build
clone-4.1.13-build
clone-4.1.14-build
clone-4.1.15-build
clone-4.1.16-build
clone-4.1.17-build
clone-4.1.18-build
clone-4.1.19-build
clone-4.1.21-build
clone-4.1.22-build
clone-4.1.23-build
clone-4.1.24-build
clone-4.1.25-build
clone-5.0.10-build
clone-5.0.11-build
clone-5.0.12-build
clone-5.0.13-build
clone-5.0.14-build
clone-5.0.15-build
clone-5.0.16-build
clone-5.0.17-build
clone-5.0.18-build
clone-5.0.19-build
clone-5.0.20-build
clone-5.0.21-build
clone-5.0.23-build
clone-5.0.24-build
clone-5.0.25-build
clone-5.0.26-build
clone-5.0.3-build
clone-5.0.30-build
clone-5.0.32-build
clone-5.0.34-build
clone-5.0.36-build
clone-5.0.37-build
clone-5.0.38-build
clone-5.0.4-build
clone-5.0.40-build
clone-5.0.41-build
clone-5.0.42-build
clone-5.0.44-build
clone-5.0.45-build
clone-5.0.46-build
clone-5.0.48-build
clone-5.0.5-build
clone-5.0.50-build
clone-5.0.51-build
clone-5.0.52-build
clone-5.0.54-build
clone-5.0.56-build
clone-5.0.58-build
clone-5.0.6-build
clone-5.0.60-build
clone-5.0.60sp1-build
clone-5.0.62-build
clone-5.0.64-build
clone-5.0.66-build
clone-5.0.66sp1-build
clone-5.0.67-build
clone-5.0.68-build
clone-5.0.7-build
clone-5.0.70-build
clone-5.0.72-build
clone-5.0.72sp1-build
clone-5.0.74-build
clone-5.0.74sp1-build
clone-5.0.75-build
clone-5.0.76-build
clone-5.0.78-build
clone-5.0.79-build
clone-5.0.8-build
clone-5.0.80-build
clone-5.0.81-build
clone-5.0.82-build
clone-5.0.83-build
clone-5.0.84-build
clone-5.0.85-build
clone-5.0.86-build
clone-5.0.87-build
clone-5.0.88-build
clone-5.0.89-build
clone-5.0.9-build
clone-5.0.90-build
clone-5.0.91-build
clone-5.0.92-build
clone-5.0.93-build
clone-5.0.94-build
clone-5.0.95-build
clone-5.0.96-build
clone-5.1.0-build
clone-5.1.1-build
clone-5.1.10-build
clone-5.1.11-build
clone-5.1.12-build
clone-5.1.13-build
clone-5.1.14-build
clone-5.1.15-build
clone-5.1.16-build
clone-5.1.17-build
clone-5.1.18-build
clone-5.1.19-build
clone-5.1.20-build
clone-5.1.21-build
clone-5.1.22-build
clone-5.1.23-build
clone-5.1.23a-maria-alpha-build
clone-5.1.24-build
clone-5.1.25-build
clone-5.1.26-build
clone-5.1.27-build
clone-5.1.28-build
clone-5.1.29-build
clone-5.1.3-build
clone-5.1.30-build
clone-5.1.31-build
clone-5.1.31-pv-0.2.0-build
clone-5.1.32-build
clone-5.1.33-build
clone-5.1.34-build
clone-5.1.35-build
clone-5.1.36-build
clone-5.1.37-build
clone-5.1.38-build
clone-5.1.39-build
clone-5.1.4-build
clone-5.1.40-build
clone-5.1.41-build
clone-5.1.42-build
clone-5.1.43-build
clone-5.1.44-build
clone-5.1.45-build
clone-5.1.46-build
clone-5.1.47-build
clone-5.1.48-build
clone-5.1.49-build
clone-5.1.5-build
clone-5.1.50-build
clone-5.1.51-build
clone-5.1.52-build
clone-5.1.53-build
clone-5.1.54-build
clone-5.1.55-build
clone-5.1.56-build
clone-5.1.57-build
clone-5.1.58-build
clone-5.1.59-build
clone-5.1.6-build
clone-5.1.60-build
clone-5.1.61-build
clone-5.1.62-build
clone-5.1.63-build
clone-5.1.65-build
clone-5.1.66-build
clone-5.1.67-build
clone-5.1.68-build
clone-5.1.69-build
clone-5.1.7-build
clone-5.1.70-build
clone-5.1.71-build
clone-5.1.72-build
clone-5.1.73-build
clone-5.1.8-build
clone-5.4.0-build
clone-5.4.1-build
clone-5.4.2-build
clone-5.4.3-build
clone-5.5.0-build
clone-5.5.1-build
clone-5.5.10-build
clone-5.5.11-build
clone-5.5.12-build
clone-5.5.13-build
clone-5.5.14-build
clone-5.5.15-build
clone-5.5.17-build
clone-5.5.18-build
clone-5.5.19-build
clone-5.5.2-m2-build
clone-5.5.20-build
clone-5.5.21-build
clone-5.5.22-build
clone-5.5.23-build
clone-5.5.24-build
clone-5.5.25-build
clone-5.5.27-build
clone-5.5.28-build
clone-5.5.29-build
clone-5.5.3-build
clone-5.5.30-build
clone-5.5.31-build
clone-5.5.32-build
clone-5.5.33-build
clone-5.5.34-build
clone-5.5.35-build
clone-5.5.36-build
clone-5.5.5-m3-build
clone-5.5.6-m3-build
clone-5.5.7-rc-build
clone-5.5.8-build
clone-5.5.9-build
import-bdb-4.3.28
import-bdb-4.4.16
import-readline-5.0
import-zlib-1.2.3
mariadb-10.0.0
mariadb-10.0.1
mariadb-10.0.10
mariadb-10.0.11
mariadb-10.0.12
mariadb-10.0.13
mariadb-10.0.14
mariadb-10.0.15
mariadb-10.0.16
mariadb-10.0.17
mariadb-10.0.18
mariadb-10.0.19
mariadb-10.0.2
mariadb-10.0.20
mariadb-10.0.21
mariadb-10.0.22
mariadb-10.0.23
mariadb-10.0.24
mariadb-10.0.25
mariadb-10.0.26
mariadb-10.0.27
mariadb-10.0.28
mariadb-10.0.29
mariadb-10.0.3
mariadb-10.0.30
mariadb-10.0.31
mariadb-10.0.32
mariadb-10.0.33
mariadb-10.0.34
mariadb-10.0.35
mariadb-10.0.36
mariadb-10.0.37
mariadb-10.0.38
mariadb-10.0.4
mariadb-10.0.5
mariadb-10.0.6
mariadb-10.0.7
mariadb-10.0.8
mariadb-10.0.9
mariadb-10.1.0
mariadb-10.1.1
mariadb-10.1.10
mariadb-10.1.11
mariadb-10.1.12
mariadb-10.1.13
mariadb-10.1.14
mariadb-10.1.15
mariadb-10.1.16
mariadb-10.1.17
mariadb-10.1.18
mariadb-10.1.19
mariadb-10.1.2
mariadb-10.1.20
mariadb-10.1.21
mariadb-10.1.22
mariadb-10.1.23
mariadb-10.1.24
mariadb-10.1.25
mariadb-10.1.26
mariadb-10.1.27
mariadb-10.1.28
mariadb-10.1.29
mariadb-10.1.3
mariadb-10.1.30
mariadb-10.1.31
mariadb-10.1.32
mariadb-10.1.33
mariadb-10.1.34
mariadb-10.1.35
mariadb-10.1.36
mariadb-10.1.37
mariadb-10.1.38
mariadb-10.1.39
mariadb-10.1.4
mariadb-10.1.40
mariadb-10.1.41
mariadb-10.1.42
mariadb-10.1.43
mariadb-10.1.44
mariadb-10.1.45
mariadb-10.1.46
mariadb-10.1.47
mariadb-10.1.48
mariadb-10.1.5
mariadb-10.1.6
mariadb-10.1.7
mariadb-10.1.8
mariadb-10.1.9
mariadb-10.10.1
mariadb-10.10.2
mariadb-10.10.2-release
mariadb-10.10.3
mariadb-10.10.4
mariadb-10.10.5
mariadb-10.10.6
mariadb-10.10.7
mariadb-10.11.1
mariadb-10.11.10
mariadb-10.11.11
mariadb-10.11.12
mariadb-10.11.13
mariadb-10.11.14
mariadb-10.11.15
mariadb-10.11.2
mariadb-10.11.3
mariadb-10.11.4
mariadb-10.11.5
mariadb-10.11.6
mariadb-10.11.7
mariadb-10.11.8
mariadb-10.11.9
mariadb-10.2.0
mariadb-10.2.1
mariadb-10.2.10
mariadb-10.2.11
mariadb-10.2.12
mariadb-10.2.13
mariadb-10.2.14
mariadb-10.2.15
mariadb-10.2.16
mariadb-10.2.17
mariadb-10.2.18
mariadb-10.2.19
mariadb-10.2.2
mariadb-10.2.20
mariadb-10.2.21
mariadb-10.2.22
mariadb-10.2.23
mariadb-10.2.24
mariadb-10.2.25
mariadb-10.2.26
mariadb-10.2.27
mariadb-10.2.28
mariadb-10.2.29
mariadb-10.2.3
mariadb-10.2.30
mariadb-10.2.31
mariadb-10.2.32
mariadb-10.2.33
mariadb-10.2.34
mariadb-10.2.35
mariadb-10.2.36
mariadb-10.2.37
mariadb-10.2.38
mariadb-10.2.39
mariadb-10.2.4
mariadb-10.2.40
mariadb-10.2.41
mariadb-10.2.42
mariadb-10.2.43
mariadb-10.2.44
mariadb-10.2.5
mariadb-10.2.6
mariadb-10.2.7
mariadb-10.2.8
mariadb-10.2.9
mariadb-10.3.0
mariadb-10.3.1
mariadb-10.3.10
mariadb-10.3.11
mariadb-10.3.12
mariadb-10.3.13
mariadb-10.3.14
mariadb-10.3.15
mariadb-10.3.16
mariadb-10.3.17
mariadb-10.3.18
mariadb-10.3.19
mariadb-10.3.2
mariadb-10.3.20
mariadb-10.3.21
mariadb-10.3.22
mariadb-10.3.23
mariadb-10.3.24
mariadb-10.3.25
mariadb-10.3.26
mariadb-10.3.27
mariadb-10.3.28
mariadb-10.3.29
mariadb-10.3.3
mariadb-10.3.30
mariadb-10.3.31
mariadb-10.3.32
mariadb-10.3.33
mariadb-10.3.34
mariadb-10.3.35
mariadb-10.3.36
mariadb-10.3.37
mariadb-10.3.38
mariadb-10.3.39
mariadb-10.3.4
mariadb-10.3.5
mariadb-10.3.6
mariadb-10.3.7
mariadb-10.3.8
mariadb-10.3.9
mariadb-10.4.0
mariadb-10.4.1
mariadb-10.4.10
mariadb-10.4.11
mariadb-10.4.12
mariadb-10.4.13
mariadb-10.4.14
mariadb-10.4.15
mariadb-10.4.16
mariadb-10.4.17
mariadb-10.4.18
mariadb-10.4.19
mariadb-10.4.2
mariadb-10.4.20
mariadb-10.4.21
mariadb-10.4.22
mariadb-10.4.23
mariadb-10.4.24
mariadb-10.4.25
mariadb-10.4.26
mariadb-10.4.27
mariadb-10.4.28
mariadb-10.4.29
mariadb-10.4.3
mariadb-10.4.30
mariadb-10.4.31
mariadb-10.4.32
mariadb-10.4.33
mariadb-10.4.34
mariadb-10.4.4
mariadb-10.4.5
mariadb-10.4.6
mariadb-10.4.7
mariadb-10.4.8
mariadb-10.4.9
mariadb-10.5.0
mariadb-10.5.1
mariadb-10.5.10
mariadb-10.5.11
mariadb-10.5.12
mariadb-10.5.13
mariadb-10.5.14
mariadb-10.5.15
mariadb-10.5.16
mariadb-10.5.17
mariadb-10.5.18
mariadb-10.5.19
mariadb-10.5.2
mariadb-10.5.20
mariadb-10.5.21
mariadb-10.5.22
mariadb-10.5.23
mariadb-10.5.24
mariadb-10.5.25
mariadb-10.5.26
mariadb-10.5.27
mariadb-10.5.28
mariadb-10.5.29
mariadb-10.5.3
mariadb-10.5.4
mariadb-10.5.5
mariadb-10.5.6
mariadb-10.5.7
mariadb-10.5.8
mariadb-10.5.9
mariadb-10.6.0
mariadb-10.6.1
mariadb-10.6.10
mariadb-10.6.11
mariadb-10.6.12
mariadb-10.6.13
mariadb-10.6.14
mariadb-10.6.15
mariadb-10.6.16
mariadb-10.6.17
mariadb-10.6.18
mariadb-10.6.19
mariadb-10.6.2
mariadb-10.6.20
mariadb-10.6.21
mariadb-10.6.22
mariadb-10.6.23
mariadb-10.6.24
mariadb-10.6.3
mariadb-10.6.4
mariadb-10.6.5
mariadb-10.6.6
mariadb-10.6.7
mariadb-10.6.8
mariadb-10.6.9
mariadb-10.7.1
mariadb-10.7.2
mariadb-10.7.3
mariadb-10.7.4
mariadb-10.7.5
mariadb-10.7.6
mariadb-10.7.7
mariadb-10.7.8
mariadb-10.8.1
mariadb-10.8.2
mariadb-10.8.3
mariadb-10.8.4
mariadb-10.8.5
mariadb-10.8.6
mariadb-10.8.7
mariadb-10.8.8
mariadb-10.9.1
mariadb-10.9.2
mariadb-10.9.3
mariadb-10.9.4
mariadb-10.9.5
mariadb-10.9.6
mariadb-10.9.7
mariadb-10.9.8
mariadb-11.0.1
mariadb-11.0.2
mariadb-11.0.3
mariadb-11.0.4
mariadb-11.0.5
mariadb-11.0.6
mariadb-11.1.1
mariadb-11.1.1-23.02.3-2
mariadb-11.1.2
mariadb-11.1.3
mariadb-11.1.4
mariadb-11.1.5
mariadb-11.1.6
mariadb-11.2.1
mariadb-11.2.2
mariadb-11.2.3
mariadb-11.2.4
mariadb-11.2.5
mariadb-11.2.6
mariadb-11.3.0
mariadb-11.3.1
mariadb-11.3.2
mariadb-11.4.0
mariadb-11.4.1
mariadb-11.4.2
mariadb-11.4.3
mariadb-11.4.4
mariadb-11.4.5
mariadb-11.4.6
mariadb-11.4.7
mariadb-11.4.8
mariadb-11.4.9
mariadb-11.5.0
mariadb-11.5.1
mariadb-11.5.2
mariadb-11.6.0
mariadb-11.6.1
mariadb-11.6.2
mariadb-11.7.0
mariadb-11.7.1
mariadb-11.7.2
mariadb-11.8.0
mariadb-11.8.1
mariadb-11.8.2
mariadb-11.8.3
mariadb-11.8.4
mariadb-11.8.5
mariadb-12.0.1
mariadb-12.0.2
mariadb-12.1.1
mariadb-12.1.2
mariadb-5.1.38-beta
mariadb-5.1.39-beta
mariadb-5.1.41
mariadb-5.1.41-rc
mariadb-5.1.42
mariadb-5.1.42-rc
mariadb-5.1.44
mariadb-5.1.44a
mariadb-5.1.44b
mariadb-5.1.47
mariadb-5.1.49
mariadb-5.1.50
mariadb-5.1.51
mariadb-5.1.53
mariadb-5.1.55
mariadb-5.1.61
mariadb-5.1.62
mariadb-5.1.66
mariadb-5.1.67
mariadb-5.2.0-beta
mariadb-5.2.1-beta
mariadb-5.2.10
mariadb-5.2.11
mariadb-5.2.12
mariadb-5.2.13
mariadb-5.2.14
mariadb-5.2.2-gamma
mariadb-5.2.3
mariadb-5.2.4
mariadb-5.2.5
mariadb-5.2.6
mariadb-5.2.7
mariadb-5.2.8
mariadb-5.2.9
mariadb-5.3.0-beta
mariadb-5.3.1
mariadb-5.3.10
mariadb-5.3.11
mariadb-5.3.12
mariadb-5.3.2-beta
mariadb-5.3.3-rc
mariadb-5.3.4
mariadb-5.3.5-ga
mariadb-5.3.6
mariadb-5.3.7
mariadb-5.3.8
mariadb-5.3.9
mariadb-5.5.20-alpha
mariadb-5.5.21-beta
mariadb-5.5.22-rc
mariadb-5.5.23
mariadb-5.5.24
mariadb-5.5.25
mariadb-5.5.27
mariadb-5.5.28
mariadb-5.5.28a
mariadb-5.5.29
mariadb-5.5.30
mariadb-5.5.31
mariadb-5.5.32
mariadb-5.5.33
mariadb-5.5.33a
mariadb-5.5.34
mariadb-5.5.35
mariadb-5.5.36
mariadb-5.5.37
mariadb-5.5.38
mariadb-5.5.39
mariadb-5.5.40
mariadb-5.5.41
mariadb-5.5.42
mariadb-5.5.43
mariadb-5.5.44
mariadb-5.5.45
mariadb-5.5.46
mariadb-5.5.47
mariadb-5.5.48
mariadb-5.5.49
mariadb-5.5.50
mariadb-5.5.51
mariadb-5.5.52
mariadb-5.5.53
mariadb-5.5.54
mariadb-5.5.55
mariadb-5.5.56
mariadb-5.5.57
mariadb-5.5.58
mariadb-5.5.59
mariadb-5.5.60
mariadb-5.5.61
mariadb-5.5.62
mariadb-5.5.63
mariadb-5.5.64
mariadb-5.5.65
mariadb-5.5.66
mariadb-5.5.67
mariadb-5.5.68
mariadb-galera-10.0.10
mariadb-galera-10.0.11
mariadb-galera-10.0.12
mariadb-galera-10.0.13
mariadb-galera-10.0.14
mariadb-galera-10.0.15
mariadb-galera-10.0.16
mariadb-galera-10.0.17
mariadb-galera-10.0.19
mariadb-galera-10.0.20
mariadb-galera-10.0.21
mariadb-galera-10.0.22
mariadb-galera-10.0.23
mariadb-galera-10.0.24
mariadb-galera-10.0.25
mariadb-galera-10.0.26
mariadb-galera-10.0.27
mariadb-galera-10.0.28
mariadb-galera-10.0.29
mariadb-galera-10.0.30
mariadb-galera-10.0.31
mariadb-galera-10.0.32
mariadb-galera-10.0.33
mariadb-galera-10.0.34
mariadb-galera-10.0.35
mariadb-galera-10.0.36
mariadb-galera-10.0.37
mariadb-galera-10.0.38
mariadb-galera-10.0.7
mariadb-galera-10.0.7a
mariadb-galera-5.5.25
mariadb-galera-5.5.28a
mariadb-galera-5.5.29
mariadb-galera-5.5.32
mariadb-galera-5.5.32a
mariadb-galera-5.5.34
mariadb-galera-5.5.35
mariadb-galera-5.5.36
mariadb-galera-5.5.36a
mariadb-galera-5.5.37
mariadb-galera-5.5.38
mariadb-galera-5.5.39
mariadb-galera-5.5.40
mariadb-galera-5.5.41
mariadb-galera-5.5.42
mariadb-galera-5.5.43
mariadb-galera-5.5.44
mariadb-galera-5.5.45
mariadb-galera-5.5.46
mariadb-galera-5.5.47
mariadb-galera-5.5.48
mariadb-galera-5.5.49
mariadb-galera-5.5.50
mariadb-galera-5.5.51
mariadb-galera-5.5.52
mariadb-galera-5.5.53
mariadb-galera-5.5.54
mariadb-galera-5.5.55
mariadb-galera-5.5.56
mariadb-galera-5.5.57
mariadb-galera-5.5.58
mariadb-galera-5.5.59
mariadb-galera-5.5.60
mariadb-galera-5.5.61
mariadb-galera-5.5.62
mariadb-galera-5.5.63
mariadb-merge-mysql-5.1.34plus
mariadb-merge-mysql-5.1.38minus
mariadb-merge-mysql-5.1.39
mariadb-merge-mysql-5.1.41
mariadb-merge-mysql-5.1.42
mariadb-merge-mysql-5.1.44
mariadb-merge-mysql-5.1.46
mysql-3.23.22-beta
mysql-3.23.24-beta
mysql-3.23.27-beta
mysql-3.23.28-gamma
mysql-3.23.29a-gamma
mysql-3.23.30-gamma
mysql-3.23.31
mysql-3.23.32
mysql-3.23.33
mysql-3.23.34
mysql-3.23.35
mysql-3.23.36
mysql-3.23.37
mysql-3.23.38
mysql-3.23.39
mysql-3.23.41
mysql-3.23.42
mysql-3.23.44
mysql-3.23.45
mysql-3.23.46
mysql-3.23.47
mysql-3.23.48
mysql-3.23.50
mysql-3.23.51
mysql-3.23.52
mysql-3.23.53
mysql-3.23.54
mysql-3.23.55
mysql-3.23.56
mysql-3.23.57
mysql-3.23.58
mysql-4.0.1
mysql-4.0.10
mysql-4.0.11
mysql-4.0.12
mysql-4.0.13
mysql-4.0.14
mysql-4.0.15
mysql-4.0.16
mysql-4.0.17
mysql-4.0.18
mysql-4.0.19
mysql-4.0.2
mysql-4.0.20
mysql-4.0.21
mysql-4.0.22
mysql-4.0.23
mysql-4.0.24
mysql-4.0.25
mysql-4.0.26
mysql-4.0.27
mysql-4.0.28
mysql-4.0.3
mysql-4.0.30
mysql-4.0.4
mysql-4.0.5
mysql-4.0.6
mysql-4.0.7
mysql-4.0.8
mysql-4.0.9
mysql-4.1.0
mysql-4.1.1
mysql-4.1.10
mysql-4.1.10a
mysql-4.1.10b
mysql-4.1.11
mysql-4.1.12
mysql-4.1.13
mysql-4.1.13a
mysql-4.1.14
mysql-4.1.15
mysql-4.1.16
mysql-4.1.18
mysql-4.1.19
mysql-4.1.2
mysql-4.1.20
mysql-4.1.21
mysql-4.1.22
mysql-4.1.23
mysql-4.1.24
mysql-4.1.3
mysql-4.1.4
mysql-4.1.5
mysql-4.1.6
mysql-4.1.7
mysql-4.1.8
mysql-4.1.9
mysql-5.0.0
mysql-5.0.1
mysql-5.0.10
mysql-5.0.10a
mysql-5.0.11
mysql-5.0.12
mysql-5.0.13
mysql-5.0.14
mysql-5.0.15
mysql-5.0.16
mysql-5.0.16a
mysql-5.0.17
mysql-5.0.17b
mysql-5.0.18
mysql-5.0.19
mysql-5.0.19a
mysql-5.0.2
mysql-5.0.2-alpha
mysql-5.0.20
mysql-5.0.20a
mysql-5.0.21
mysql-5.0.22
mysql-5.0.23
mysql-5.0.24
mysql-5.0.24a
mysql-5.0.25
mysql-5.0.26
mysql-5.0.27
mysql-5.0.28
mysql-5.0.3
mysql-5.0.30
mysql-5.0.32
mysql-5.0.33
mysql-5.0.34
mysql-5.0.36
mysql-5.0.37
mysql-5.0.38
mysql-5.0.4
mysql-5.0.40
mysql-5.0.41
mysql-5.0.42
mysql-5.0.44
mysql-5.0.45
mysql-5.0.46
mysql-5.0.48
mysql-5.0.5
mysql-5.0.50
mysql-5.0.51
mysql-5.0.51a
mysql-5.0.52
mysql-5.0.54
mysql-5.0.54a
mysql-5.0.56
mysql-5.0.58
mysql-5.0.6
mysql-5.0.60
mysql-5.0.60sp1
mysql-5.0.62
mysql-5.0.64
mysql-5.0.66
mysql-5.0.66a
mysql-5.0.66sp1
mysql-5.0.67
mysql-5.0.68
mysql-5.0.7
mysql-5.0.70
mysql-5.0.72
mysql-5.0.72sp1
mysql-5.0.74
mysql-5.0.74sp1
mysql-5.0.75
mysql-5.0.76
mysql-5.0.77
mysql-5.0.78
mysql-5.0.79
mysql-5.0.8
mysql-5.0.80
mysql-5.0.81
mysql-5.0.82
mysql-5.0.82sp1
mysql-5.0.83
mysql-5.0.84
mysql-5.0.84sp1
mysql-5.0.85
mysql-5.0.86
mysql-5.0.87
mysql-5.0.87sp1
mysql-5.0.88
mysql-5.0.9
mysql-5.0.90
mysql-5.0.91
mysql-5.0.92
mysql-5.0.93
mysql-5.0.94
mysql-5.0.95
mysql-5.0.96
mysql-5.1.11
mysql-5.1.12
mysql-5.1.13
mysql-5.1.14
mysql-5.1.15
mysql-5.1.16
mysql-5.1.17
mysql-5.1.18
mysql-5.1.18-ndb-6.2.1
mysql-5.1.19
mysql-5.1.20
mysql-5.1.20-beta
mysql-5.1.21
mysql-5.1.22
mysql-5.1.23
mysql-5.1.23a-maria-alpha
mysql-5.1.24
mysql-5.1.25
mysql-5.1.26
mysql-5.1.28
mysql-5.1.29
mysql-5.1.3
mysql-5.1.30
mysql-5.1.31
mysql-5.1.31sp1
mysql-5.1.32
mysql-5.1.33
mysql-5.1.34
mysql-5.1.34sp1
mysql-5.1.35
mysql-5.1.36
mysql-5.1.37
mysql-5.1.37sp1
mysql-5.1.38
mysql-5.1.39
mysql-5.1.4
mysql-5.1.40
mysql-5.1.40sp1
mysql-5.1.41
mysql-5.1.42
mysql-5.1.43
mysql-5.1.43sp1
mysql-5.1.44
mysql-5.1.45
mysql-5.1.46
mysql-5.1.46sp1
mysql-5.1.47
mysql-5.1.48
mysql-5.1.49
mysql-5.1.49sp1
mysql-5.1.5
mysql-5.1.5-for-windows
mysql-5.1.50
mysql-5.1.51
mysql-5.1.52
mysql-5.1.52sp1
mysql-5.1.53
mysql-5.1.54
mysql-5.1.55
mysql-5.1.56
mysql-5.1.57
mysql-5.1.58
mysql-5.1.59
mysql-5.1.6
mysql-5.1.60
mysql-5.1.61
mysql-5.1.62
mysql-5.1.63
mysql-5.1.65
mysql-5.1.66
mysql-5.1.67
mysql-5.1.68
mysql-5.1.69
mysql-5.1.69-retag
mysql-5.1.7
mysql-5.1.70
mysql-5.1.71
mysql-5.1.72
mysql-5.1.73
mysql-5.1.9
mysql-5.4.1
mysql-5.4.2
mysql-5.4.3
mysql-5.5.0
mysql-5.5.1-m2
mysql-5.5.10
mysql-5.5.11
mysql-5.5.12
mysql-5.5.13
mysql-5.5.14
mysql-5.5.15
mysql-5.5.16
mysql-5.5.17
mysql-5.5.18
mysql-5.5.19
mysql-5.5.2-m2
mysql-5.5.20
mysql-5.5.21
mysql-5.5.22
mysql-5.5.23
mysql-5.5.24
mysql-5.5.25
mysql-5.5.27
mysql-5.5.28
mysql-5.5.29
mysql-5.5.3-m3
mysql-5.5.30
mysql-5.5.31
mysql-5.5.32
mysql-5.5.33
mysql-5.5.34
mysql-5.5.35
mysql-5.5.36
mysql-5.5.37
mysql-5.5.38
mysql-5.5.39
mysql-5.5.40
mysql-5.5.41
mysql-5.5.42
mysql-5.5.43
mysql-5.5.44
mysql-5.5.45
mysql-5.5.46
mysql-5.5.47
mysql-5.5.48
mysql-5.5.49
mysql-5.5.5-m3
mysql-5.5.50
mysql-5.5.51
mysql-5.5.52
mysql-5.5.53
mysql-5.5.54
mysql-5.5.55
mysql-5.5.56
mysql-5.5.57
mysql-5.5.58
mysql-5.5.59
mysql-5.5.6-rc
mysql-5.5.60
mysql-5.5.61
mysql-5.5.62
mysql-5.5.7
mysql-5.5.8
mysql-5.5.9
mysql_4.0
percona-xtradb-1.0.2-1
serg-5.1.64
tokudb-7.1.0
tokudb-7.1.5
tokudb-7.1.5-rc.1
tokudb-7.1.5-rc.2
tokudb-7.1.5-rc.3
tokudb-7.1.5-rc.4
tokudb-ps-1
tokudb-ps-2
tokumx-1.0.0-rc.0
tokumx-1.0.0-rc.2
tokumx-1.0.0-rc.4
tokumx-1.0.0-rc.5
tokumx-1.0.0-rc.6
tokumx-1.0.2
tokumx-1.0.4
tokumx-1.0.4-rc.0
tokumx-1.0.4-rc.1
tokumx-1.0.4-rc.2
tokumx-1.1.0
tokumx-1.1.1
tokumx-1.1.1-rc.0
tokumx-1.2.0-rc.2
tokumx-1.3.0-rc.0
tokumx-1.3.0-rc.1
tokumx-1.4.0+hotfix.0
${ noResults }
40 Commits (e58f200a3df514dede23874d6874e8ad295a5eea)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
a7c9bf2ccf |
Bug#51295 Build warnings in mdl.cc
Before this fix, the performance schema instrumentation in mdl.h / mdl.cc was incomplete, causing: - build warnings, - no data collection for the performance schema This fix: - added instrumentation helpers for the new preferred reader read write lock, mysql_prlock_* - implemented completely the performance schema instrumentation of mdl.h / mdl.cc |
16 years ago |
|
|
6b5c4a9ef6 |
Fix for bug #51105 "MDL deadlock in rqg_mdl_stability test
on Windows". On platforms where read-write lock implementation does not prefer readers by default (Windows, Solaris) server might have deadlocked while detecting MDL deadlock. MDL deadlock detector relies on the fact that read-write locks which are used in its implementation prefer readers (see new comment for MDL_lock::m_rwlock for details). So far MDL code assumed that default implementation of read/write locks for the system has this property. Indeed, this turned out ot be wrong, for example, for Windows or Solaris. Thus MDL deadlock detector might have deadlocked on these systems. This fix simply adds portable implementation of read/write lock which prefer readers and changes MDL code to use this new type of synchronization primitive. No test case is added as existing rqg_mdl_stability test can serve as one. config.h.cmake: Check for presence of pthread_rwlockattr_setkind_np to be able to determine if system natively supports read-write locks for which we can specify if readers or writers should be preferred. configure.cmake: Check for presence of pthread_rwlockattr_setkind_np to be able to determine if system natively supports read-write locks for which we can specify if readers or writers should be preferred. configure.in: Check for presence of pthread_rwlockattr_setkind_np to be able to determine if system natively supports read-write locks for which we can specify if readers or writers should be preferred. include/my_pthread.h: Added support for portable read-write locks which prefer readers. To do so extended existing my_rw_lock_t implementation to support selection of whom to prefer depending on a flag. mysys/thr_rwlock.c: Extended existing my_rw_lock_t implementation to support selection of whom to prefer depending on a flag. Added rw_pr_init() function implementing initialization of read-write locks preferring readers. sql/mdl.cc: Use portable read-write locks which prefer readers instead of relying on that system implementation of read-write locks has this property (this was true for Linux/NPTL but was false, for example, for Windows and Solaris). Added comment explaining why preferring readers is important for MDL deadlock detector (thanks to Serg for example!). sql/mdl.h: Use portable read-write locks which prefer readers instead of relying on that system implementation of read-write locks has this property (this was true for Linux/NPTL but was false, for example, for Windows and Solaris). |
16 years ago |
|
|
03672b9696 |
Fix for bug #51093 "Crash (possibly stack overflow) in
MDL_lock::find_deadlock". On some platforms deadlock detector in metadata locking subsystem under certain conditions might have exhausted stack space causing server crashes. Particularly this caused failures of rqg_mdl_stability test on Solaris in PushBuild. During search for deadlock MDL deadlock detector could sometimes encounter loop in the waiters graph in which MDL_context which has started search for a deadlock does not participate. In such case our algorithm will continue looping assuming that either this deadlock will be resolved by MDL_context which has created it (i.e. by one of loop participants) or maximum search depth will be reached. Since max search depth was set to 1000 in the latter case on platforms where each iteration of deadlock search algorithm needs more than DEFAULT_STACK_SIZE/1000 bytes of stack (around 192 bytes for 32-bit and around 256 bytes for 64-bit platforms) we might have exhausted stack space. This patch solves this problem by reducing maximum search depth for MDL deadlock detector to 32. This should be safe at the moment as it is unlikely that each iteration of the current deadlock detector algorithm will consume more than 1K of stack (thus total amount of stack required can't be more than 32K) and we require at least 80K of stack in order to open any table. Also this value should be (hopefully) big enough to not cause too much false deadlock errors (there is an anecdotal evidence that real-life deadlocks are typically shorter than that). Additional reasearch should be conducted in future in order to determine the more optimal value of maximum search depth. This patch does not include test case as existing rqg_mdl_stability test can serve as one. |
16 years ago |
|
|
eb0f09712e |
Fix for bug #51134 "Crash in MDL_lock::destroy on a concurrent
DDL workload". When a RENAME TABLE or LOCK TABLE ... WRITE statement which mentioned the same table several times were aborted during the process of acquring metadata locks (due to deadlock which was discovered or because of KILL statement) server might have crashed. When attempt to acquire all locks requested had failed we went through the list of requests and released locks which we have managed to acquire by that moment one by one. Since in the scenario described above list of requests contained duplicates this led to releasing the same ticket twice and a crash as result. This patch solves the problem by employing different approach to releasing locks in case of failure to acquire all locks requested. Now we take a MDL savepoint before starting acquiring locks and simply rollback to it if things go bad. mysql-test/r/lock_multi.result: Updated test results (see lock_multi.test). mysql-test/t/lock_multi.test: Added test case for bug #51134 "Crash in MDL_lock::destroy on a concurrent DDL workload". sql/mdl.cc: MDL_context::acquire_locks(): When attempt to acquire all locks requested has failed do not go through the list of requests and release locks which we have managed to acquire one by one. Since list of requests can contain duplicates such approach may lead to releasing the same ticket twice and a crash as result. Instead use the following approach - take a MDL savepoint before starting acquiring locks and simply rollback to it if things go bad. |
16 years ago |
|
|
3d6a89e792 |
Bug #45225 Locking: hang if drop table with no timeout
This patch introduces timeouts for metadata locks. The timeout is specified in seconds using the new dynamic system variable "lock_wait_timeout" which has both GLOBAL and SESSION scopes. Allowed values range from 1 to 31536000 seconds (= 1 year). The default value is 1 year. The new server parameter "lock-wait-timeout" can be used to set the default value parameter upon server startup. "lock_wait_timeout" applies to all statements that use metadata locks. These include DML and DDL operations on tables, views, stored procedures and stored functions. They also include LOCK TABLES, FLUSH TABLES WITH READ LOCK and HANDLER statements. The patch also changes thr_lock.c code (table data locks used by MyISAM and other simplistic engines) to use the same system variable. InnoDB row locks are unaffected. One exception to the handling of the "lock_wait_timeout" variable is delayed inserts. All delayed inserts are executed with a timeout of 1 year regardless of the setting for the global variable. As the connection issuing the delayed insert gets no notification of delayed insert timeouts, we want to avoid unnecessary timeouts. It's important to note that the timeout value is used for each lock acquired and that one statement can take more than one lock. A statement can therefore block for longer than the lock_wait_timeout value before reporting a timeout error. When lock timeout occurs, ER_LOCK_WAIT_TIMEOUT is reported. Test case added to lock_multi.test. include/my_pthread.h: Added macros for comparing two timespec structs. include/thr_lock.h: Introduced timeouts for thr_lock.c locks. mysql-test/r/mysqld--help-notwin.result: Updated result file with the new server variable. mysql-test/r/mysqld--help-win.result: Updated result file with the new server variable. mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result: Added basic test for the new server variable. mysql-test/suite/sys_vars/t/lock_wait_timeout_basic.test: Added basic test for the new server variable. mysys/thr_lock.c: Introduced timeouts for thr_lock.c locks. sql/mdl.cc: Introduced timeouts for metadata locks. sql/mdl.h: Introduced timeouts for metadata locks. sql/sql_base.cc: Introduced timeouts in tdc_wait_for_old_versions(). sql/sql_class.h: Added new server variable lock_wait_timeout. sql/sys_vars.cc: Added new server variable lock_wait_timeout. |
16 years ago |
|
|
96344befd3 |
Fix for bug #50998 "Deadlock in MDL code during test
rqg_mdl_stability". When start of statement's waiting on a metadata lock created more than one loop in waiters graph server might have entered deadlock condition. The problem was that in the case described above MDL deadlock detector had to perform several searches for deadlock but forgot to reset Deadlock_detection_context before performing new search. Failure to do so has broken assumption in code resposible for choosing victim that if Deadlock_detection_context::victim is set we also have read lock on m_waiting_for_lock for this context. As result this lock could have been unlocked more times than it was acquired which corrupted rwlock's state which led to server deadlock. This fix ensures that such reset is done before each attempt to find a deadlock. mysql-test/r/mdl_sync.result: Added test for bug #50998 "Deadlock in MDL code during test rqg_mdl_stability" as well as coverage for the case when addition of statement waiting for metadata lock adds several loops in the waiters graph and therefore several searches for deadlock should be performed by MDL deadlock detector. mysql-test/t/mdl_sync.test: Added test for bug #50998 "Deadlock in MDL code during test rqg_mdl_stability" as well as coverage for the case when addition of statement waiting for metadata lock adds several loops in the waiters graph and therefore several searches for deadlock should be performed by MDL deadlock detector. sql/mdl.cc: Ensure that in cases when MDL deadlock detector had to perform several searches for deadlock because several loops in waiters graph are possible we reset Deadlock_detection_context before performing each search. Failure to do so has broken assumption in code resposible for choosing victim that if Deadlock_detection_context::victim is set we also have read lock on m_waiting_for_lock for this context. As result this lock could have been unlocked more times than it was acquired which corrupted rwlock's state (no one was able to acquire write lock on it anymore). |
16 years ago |
|
|
95c2386148 |
Bug #50912 Assertion `ticket->m_type >= mdl_request->type'
failed on HANDLER + I_S This assert was triggered when an I_S query tried to acquire a metadata lock on a table which was already locked by a HANDLER statement in the same connection. First the HANDLER took a MDL_SHARED lock. Afterwards, the I_S query requested a MDL_SHARED_HIGH_PRIO lock. The existing MDL_SHARED ticket is found in find_ticket() since it satisfies ticket->has_stronger_or_equal_type(mdl_request->type) as MDL_SHARED and MDL_SHARED_HIGH_PRIO have equal strengths, just different priority. However, two asserts later check lock type strengths using relational operators (>= and <=) rather than MDL_ticket::has_stronger_or_equal_type(). These asserts are triggered since MDL_SHARED >= MDL_SHARED_HIGH_PRIORITY is false (mapped to 1 and 2 respectively). This patch updates the asserts to use MDL_ticket::has_stronger_or_equal_type() rather than relational operators to check lock type strength. Test case added to include/handler.inc. |
16 years ago |
|
|
a6f804228d |
A post-merge fix for next-mr -> next-4284 merge:
Make all mutexes and conditions of type mysql_mutex_t, mysql_cond_t, since it's now the expectation of THD::awake(). |
16 years ago |
|
|
f1f0228f84 |
Improve concurrency in metadata locking subsystem by
moving calculation of hash value when looking up MDL_lock objects in MDL_map out of critical section. |
16 years ago |
|
|
f677e97746 |
A follow-up for the patch which implemented new
type-of-operation-aware metadata locks and added a wait-for graph based deadlock detector to the MDL subsystem (this patch fixed bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table"). Removed unused and redundant method. |
16 years ago |
|
|
e89c08b670 |
Fix for sporadical crashes of lock_multi_bug38499.test
caused by patch which implemented new type-of-operation-aware metadata locks and added a wait-for graph based deadlock detector to the MDL subsystem (this patch fixed bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table"). Crashes were caused by a race in MDL_context::try_acquire_lock(). This method added MDL_ticket to the list of granted tickets and released lock protecting list before setting MDL_ticket::m_lock. Thus some other thread was able to see ticket without properly set m_lock member for some short period of time. If this thread called method involving this member during this period crash happened. This fix ensures that MDL_ticket::m_lock is set in all cases when ticket is added to granted/pending lists in MDL_lock. sql/mdl.cc: We must set MDL_ticket::m_lock member before adding ticket to the list of granted tickets, since such tickets can be accessed by other threads which might call methods using this member. Added assert which ensures that all MDL_tickets which are added to the granted/pending lists have properly set MDL_ticket::m_lock member. sql/mdl.h: Adjusted comment describing MDL_ticket::m_lock member to reflect current reality. Added accessor method for this member. |
16 years ago |
|
|
83d5384931 |
Fix a Windows compilation warning (req_count is later used
in a pointer arithmetics expression). |
16 years ago |
|
|
eba5d30e67 |
Implement new type-of-operation-aware metadata locks.
Add a wait-for graph based deadlock detector to the MDL subsystem. Fixes bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table". The first bug manifested itself as an unwarranted abort of a transaction with ER_LOCK_DEADLOCK error by a concurrent ALTER statement, when this transaction tried to repeat use of a table, which it has already used in a similar fashion before ALTER started. The second bug showed up as a deadlock between table-level locks and InnoDB row locks, which was "detected" only after innodb_lock_wait_timeout timeout. A transaction would start using the table and modify a few rows. Then ALTER TABLE would come in, and start copying rows into a temporary table. Eventually it would stumble on the modified records and get blocked on a row lock. The first transaction would try to do more updates, and get blocked on thr_lock.c lock. This situation of circular wait would only get resolved by a timeout. Both these bugs stemmed from inadequate solutions to the problem of deadlocks occurring between different locking subsystems. In the first case we tried to avoid deadlocks between metadata locking and table-level locking subsystems, when upgrading shared metadata lock to exclusive one. Transactions holding the shared lock on the table and waiting for some table-level lock used to be aborted too aggressively. We also allowed ALTER TABLE to start in presence of transactions that modify the subject table. ALTER TABLE acquires TL_WRITE_ALLOW_READ lock at start, and that block all writes against the table (naturally, we don't want any writes to be lost when switching the old and the new table). TL_WRITE_ALLOW_READ lock, in turn, would block the started transaction on thr_lock.c lock, should they do more updates. This, again, lead to the need to abort such transactions. The second bug occurred simply because we didn't have any mechanism to detect deadlocks between the table-level locks in thr_lock.c and row-level locks in InnoDB, other than innodb_lock_wait_timeout. This patch solves both these problems by moving lock conflicts which are causing these deadlocks into the metadata locking subsystem, thus making it possible to avoid or detect such deadlocks inside MDL. To do this we introduce new type-of-operation-aware metadata locks, which allow MDL subsystem to know not only the fact that transaction has used or is going to use some object but also what kind of operation it has carried out or going to carry out on the object. This, along with the addition of a special kind of upgradable metadata lock, allows ALTER TABLE to wait until all transactions which has updated the table to go away. This solves the second issue. Another special type of upgradable metadata lock is acquired by LOCK TABLE WRITE. This second lock type allows to solve the first issue, since abortion of table-level locks in event of DDL under LOCK TABLES becomes also unnecessary. Below follows the list of incompatible changes introduced by this patch: - From now on, ALTER TABLE and CREATE/DROP TRIGGER SQL (i.e. those statements that acquire TL_WRITE_ALLOW_READ lock) wait for all transactions which has *updated* the table to complete. - From now on, LOCK TABLES ... WRITE, REPAIR/OPTIMIZE TABLE (i.e. all statements which acquire TL_WRITE table-level lock) wait for all transaction which *updated or read* from the table to complete. As a consequence, innodb_table_locks=0 option no longer applies to LOCK TABLES ... WRITE. - DROP DATABASE, DROP TABLE, RENAME TABLE no longer abort statements or transactions which use tables being dropped or renamed, and instead wait for these transactions to complete. - Since LOCK TABLES WRITE now takes a special metadata lock, not compatible with with reads or writes against the subject table and transaction-wide, thr_lock.c deadlock avoidance algorithm that used to ensure absence of deadlocks between LOCK TABLES WRITE and other statements is no longer sufficient, even for MyISAM. The wait-for graph based deadlock detector of MDL subsystem may sometimes be necessary and is involved. This may lead to ER_LOCK_DEADLOCK error produced for multi-statement transactions even if these only use MyISAM: session 1: session 2: begin; update t1 ... lock table t2 write, t1 write; -- gets a lock on t2, blocks on t1 update t2 ... (ER_LOCK_DEADLOCK) - Finally, support of LOW_PRIORITY option for LOCK TABLES ... WRITE was abandoned. LOCK TABLE ... LOW_PRIORITY WRITE from now on has the same priority as the usual LOCK TABLE ... WRITE. SELECT HIGH PRIORITY no longer trumps LOCK TABLE ... WRITE in the wait queue. - We do not take upgradable metadata locks on implicitly locked tables. So if one has, say, a view v1 that uses table t1, and issues: LOCK TABLE v1 WRITE; FLUSH TABLE t1; -- (or just 'FLUSH TABLES'), an error is produced. In order to be able to perform DDL on a table under LOCK TABLES, the table must be locked explicitly in the LOCK TABLES list. mysql-test/include/handler.inc: Adjusted test case to trigger an execution path on which bug 41110 "crash with handler command when used concurrently with alter table" and bug 41112 "crash in mysql_ha_close_table/get_lock_data with alter table" were originally discovered. Left old test case which no longer triggers this execution path for the sake of coverage. Added test coverage for HANDLER SQL statements and type-aware metadata locks. Added a test for the global shared lock and HANDLER SQL. Updated tests to take into account that the old simple deadlock detection heuristics was replaced with a graph-based deadlock detector. mysql-test/r/debug_sync.result: Updated results (see debug_sync.test). mysql-test/r/handler_innodb.result: Updated results (see handler.inc test). mysql-test/r/handler_myisam.result: Updated results (see handler.inc test). mysql-test/r/innodb-lock.result: Updated results (see innodb-lock.test). mysql-test/r/innodb_mysql_lock.result: Updated results (see innodb_mysql_lock.test). mysql-test/r/lock.result: Updated results (see lock.test). mysql-test/r/lock_multi.result: Updated results (see lock_multi.test). mysql-test/r/lock_sync.result: Updated results (see lock_sync.test). mysql-test/r/mdl_sync.result: Updated results (see mdl_sync.test). mysql-test/r/sp-threads.result: SHOW PROCESSLIST output has changed due to the fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/r/truncate_coverage.result: Updated results (see truncate_coverage.test). mysql-test/suite/funcs_1/datadict/processlist_val.inc: SELECT FROM I_S.PROCESSLIST output has changed due to fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/suite/funcs_1/r/processlist_val_no_prot.result: SELECT FROM I_S.PROCESSLIST output has changed due to fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/suite/rpl/t/rpl_sp.test: Updated to a new SHOW PROCESSLIST state name. mysql-test/t/debug_sync.test: Use LOCK TABLES READ instead of LOCK TABLES WRITE as the latter no longer allows to trigger execution path involving waiting on thr_lock.c lock and therefore reaching debug sync-point covered by this test. mysql-test/t/innodb-lock.test: Adjusted test case to the fact that innodb_table_locks=0 option is no longer supported, since LOCK TABLES WRITE handles all its conflicts within MDL subsystem. mysql-test/t/innodb_mysql_lock.test: Added test for bug #37346 "innodb does not detect deadlock between update and alter table". mysql-test/t/lock.test: Added test coverage which checks the fact that we no longer support DDL under LOCK TABLES on tables which were locked implicitly. Adjusted existing test cases accordingly. mysql-test/t/lock_multi.test: Added test for bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock". Adjusted other test cases to take into account the fact that waiting for LOCK TABLES ... WRITE now happens within MDL subsystem. mysql-test/t/lock_sync.test: Since LOCK TABLES ... WRITE now takes SNRW metadata lock for tables locked explicitly we have to implicitly lock InnoDB tables (through view) to trigger the table-level lock conflict between TL_WRITE and TL_WRITE_ALLOW_WRITE. mysql-test/t/mdl_sync.test: Added basic test coverage for type-of-operation-aware metadata locks. Also covered with tests some use cases involving HANDLER statements in which a deadlock could arise. Adjusted existing tests to take type-of-operation-aware MDL into account. mysql-test/t/multi_update.test: Update to a new SHOW PROCESSLIST state name. mysql-test/t/truncate_coverage.test: Adjusted test case after making LOCK TABLES WRITE to wait until transactions that use the table to be locked are completed. Updated to the changed name of DEBUG_SYNC point. sql/handler.cc: Global read lock functionality has been moved into a class. sql/lock.cc: Global read lock functionality has been moved into a class. Updated code to use the new MDL API. sql/mdl.cc: Introduced new type-of-operation aware metadata locks. To do this: - Changed MDL_lock to use one list for waiting requests and one list for granted requests. For each list, added a bitmap that holds information what lock types a list contains. Added a helper class MDL_lock::List to manipulate with granted and waited lists while keeping the bitmaps in sync with list contents. - Changed lock-compatibility functions to use bitmaps that define compatibility. - Introduced a graph based deadlock detector inspired by waiting_threads.c from Maria implementation. - Now that we have a deadlock detector, and no longer have a global lock to protect individual lock objects, but rather use an rw lock per object, removed redundant code for upgrade, and the global read lock. Changed the MDL API to no longer require the caller to acquire the global intention exclusive lock by means of a separate method. Removed a few more methods that became redundant. - Removed deadlock detection heuristic, it has been made obsolete by the deadlock detector. - With operation-type-aware metadata locks, MDL subsystem has become aware of potential conflicts between DDL and open transactions. This made it possible to remove calls to mysql_abort_transactions_with_shared_lock() from acquisition paths for exclusive lock and lock upgrade. Now we can simply wait for these transactions to complete without fear of deadlock. Function mysql_lock_abort() has also become unnecessary for all conflicting cases except when a DDL conflicts with a connection that has an open HANDLER. sql/mdl.h: Introduced new type-of-operation aware metadata locks. Introduced a graph based deadlock detector and supporting methods. Added comments. God rid of redundant API calls. Renamed m_lt_or_ha_sentinel to m_trans_sentinel, since now it guards the global read lock as well as LOCK TABLES and HANDLER locks. sql/mysql_priv.h: Moved the global read lock functionality into a class. Added MYSQL_OPEN_FORCE_SHARED_MDL flag which forces open_tables() to take MDL_SHARED on tables instead of metadata locks specified in the parser. We use this to allow PREPARE run concurrently in presence of LOCK TABLES ... WRITE. Added signature for find_table_for_mdl_ugprade(). sql/set_var.cc: Global read lock functionality has been moved into a class. sql/sp_head.cc: When creating TABLE_LIST elements for prelocking or system tables set the type of request for metadata lock according to the operation that will be performed on the table. sql/sql_base.cc: - Updated code to use the new MDL API. - In order to avoid locks starvation we take upgradable locks all at once. As result implicitly locked tables no longer get an upgradable lock. Consequently DDL and FLUSH TABLES for such tables is prohibited. find_write_locked_table() was replaced by find_table_for_mdl_upgrade() function. open_table() was adjusted to return TABLE instance with upgradable ticket when necessary. - We no longer wait for all locks on OT_WAIT back off action -- only on the lock that caused the wait conflict. Moreover, now we distinguish cases when we have to wait due to conflict in MDL and old version of table in TDC. - Upate mysql_notify_threads_having_share_locks() to only abort thr_lock.c waits of threads that have open HANDLERs, since lock conflicts with only these threads now can lead to deadlocks not detectable by the MDL deadlock detector. - Remove mysql_abort_transactions_with_shared_locks() which is no longer needed. sql/sql_class.cc: Global read lock functionality has been moved into a class. Re-arranged code in THD::cleanup() to simplify assert. sql/sql_class.h: Introduced class to incapsulate global read lock functionality. Now sentinel in MDL subsystem guards the global read lock as well as LOCK TABLES and HANDLER locks. Adjusted code accordingly. sql/sql_db.cc: Global read lock functionality has been moved into a class. sql/sql_delete.cc: We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result TRUNCATE TABLE is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_handler.cc: Inform MDL_context about presence of open HANDLERs. Since HANLDERs break MDL protocol by acquiring table-level lock while holding only S metadata lock on a table MDL subsystem should take special care about such contexts (Now this is the only case when mysql_lock_abort() is used). sql/sql_parse.cc: Global read lock functionality has been moved into a class. Do not take upgradable metadata locks when opening tables for CREATE TABLE SELECT as it is not necessary and limits concurrency. When initializing TABLE_LIST objects before adding them to the table list set the type of request for metadata lock according to the operation that will be performed on the table. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result FLUSH TABLES is no longer allowed for such tables. sql/sql_prepare.cc: Use MYSQL_OPEN_FORCE_SHARED_MDL flag when opening tables during PREPARE. This allows PREPARE to run concurrently in presence of LOCK TABLES ... WRITE. sql/sql_rename.cc: Global read lock functionality has been moved into a class. sql/sql_show.cc: Updated code to use the new MDL API. sql/sql_table.cc: Global read lock functionality has been moved into a class. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result DROP TABLE is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_trigger.cc: Global read lock functionality has been moved into a class. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result CREATE/DROP TRIGGER is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_view.cc: Global read lock functionality has been moved into a class. Fixed results of wrong merge that led to misuse of GLR API. CREATE VIEW statement is not a commit statement. sql/table.cc: When resetting TABLE_LIST objects for PS or SP re-execution set the type of request for metadata lock according to the operation that will be performed on the table. Do the same in auxiliary function initializing metadata lock requests in a table list. sql/table.h: When initializing TABLE_LIST objects set the type of request for metadata lock according to the operation that will be performed on the table. sql/transaction.cc: Global read lock functionality has been moved into a class. |
16 years ago |
|
|
6ddd01c27a |
Patch that changes metadata locking subsystem to use mutex per lock and
condition variable per context instead of one mutex and one conditional variable for the whole subsystem. This should increase concurrency in this subsystem. It also opens the way for further changes which are necessary to solve such bugs as bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table". Two other notable changes done by this patch: - MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. - Instead of using separate MDL_context for opening system tables/tables for purposes of I_S we now create MDL savepoint in the main context before opening tables and rollback to this savepoint after closing them. This means that it is now possible to get ER_LOCK_DEADLOCK error even not inside a transaction. This might happen in unlikely case when one runs DDL on one of system tables while also running DDL on some other tables. Cases when this ER_LOCK_DEADLOCK error is not justified will be addressed by advanced deadlock detector for MDL subsystem which we plan to implement. mysql-test/include/handler.inc: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/handler_innodb.result: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/handler_myisam.result: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/mdl_sync.result: Adjusted mdl_sync.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/t/mdl_sync.test: Adjusted mdl_sync.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. sql/events.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/ha_ndbcluster.cc: Since manipulations with open table state no longer install proxy MDL_context it does not make sense to perform them in order to satisfy assert in mysql_rm_tables_part2(). Removed them per agreement with Cluster team. This has not broken test suite since scenario in which deadlock can occur and assertion fails is not covered by tests. sql/lock.cc: MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/log.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/mdl.cc: Changed metadata locking subsystem to use mutex per lock and condition variable per context instead of one mutex and one conditional variable for the whole subsystem. Changed approach to handling of global metadata locks. Instead of implicitly acquiring intention exclusive locks when user requests per-object upgradeable or exclusive locks now we require them to be acquired explicitly in the same way as ordinary metadata locks. In fact global lock are now ordinary metadata locks in new GLOBAL namespace. To implement these changes: - Removed LOCK_mdl mutex and COND_mdl condition variable. - Introduced MDL_lock::m_mutex mutexes which protect individual lock objects. - Replaced mdl_locks hash with MDL_map class, which has hash for MDL_lock objects as a member and separate mutex which protects this hash. Methods of this class allow to find(), find_or_create() or remove() MDL_lock objects in concurrency-friendly fashion (i.e. for most common operation, find_or_create(), we don't acquire MDL_lock::m_mutex while holding MDL_map::m_mutex. Thanks to MikaelR for this idea and benchmarks!). Added three auxiliary members to MDL_lock class (m_is_destroyed, m_ref_usage, m_ref_release) to support this concurrency-friendly behavior. - Introduced MDL_context::m_ctx_wakeup_cond condition variable to be used for waiting until this context's pending request can be satisfied or its thread has to perform actions to resolve potential deadlock. Context which want to wait add ticket corresponding to the request to an appropriate queue of waiters in MDL_lock object so they can be noticed when other contexts change state of lock and be awaken by them by signalling on MDL_context::m_ctx_wakeup_cond. As consequence MDL_ticket objects has to be used for any waiting in metadata locking subsystem including one which happens in MDL_context::wait_for_locks() method. Another consequence is that MDL_context is no longer copyable and can't be saved/restored when working with system tables. - Made MDL_lock an abstract class, which delegates specifying exact compatibility matrix to its descendants. Added MDL_global_lock child class for global lock (The old is_lock_type_compatible() method became can_grant_lock() method of this class). Added MDL_object_lock class to represent per-object lock (The old MDL_lock::can_grant_lock() became its method). Choice between two classes happens based on MDL namespace in MDL_lock::create() method. - Got rid of MDL_lock::type member as its meaning became ambigous for global locks. - To simplify waking up of contexts waiting for lock split waiting queue in MDL_lock class in two queues. One for pending requests for exclusive (including intention exclusive) locks and another for requests for shared locks. - Added virtual wake_up_waiters() method to MDL_lock, MDL_global_lock and MDL_object_lock classes which allows to wake up waiting contexts after state of lock changes. Replaced old duplicated code with calls to this method. - Adjusted MDL_context::try_acquire_shared_lock()/exclusive_lock()/ global_shared_lock(), MDL_ticket::upgrade_shared_lock_to_exclusive_lock() and MDL_context::release_ticket() methods to use MDL_map and MDL_lock::m_mutex instead of single LOCK_mdl mutex and wake up waiters according to the approach described above. The latter method also was renamed to MDL_context::release_lock(). - Changed MDL_context::try_acquire_shared_lock()/exclusive_lock() and release_lock() not to handle global locks. They are now supposed to be taken explicitly like ordinary metadata locks. - Added helper MDL_context::try_acquire_global_intention_exclusive_lock() and acquire_global_intention_exclusive_lock() methods. - Moved common code from MDL_context::acquire_global_shared_lock() and acquire_global_intention_exclusive_lock() to new method - MDL_context::acquire_lock_impl(). - Moved common code from MDL_context::try_acquire_shared_lock(), try_acquire_global_intention_exclusive_lock()/exclusive_lock() to MDL_context::try_acquire_lock_impl(). - Since acquiring of several exclusive locks can no longer happen under single LOCK_mdl mutex the approach to it had to be changed. Now we do it in one by one fashion. This is done in alphabetical order to avoid deadlocks. Changed MDL_context::acquire_exclusive_locks() accordingly (as part of this change moved code responsible for acquiring single exclusive lock to new MDL_context::acquire_exclusive_lock_impl() method). - Since we no longer have single LOCK_mdl mutex which protects all MDL_context::m_is_waiting_in_mdl members using these members to determine if we have really awaken context holding conflicting shared lock became inconvinient. Got rid of this member and changed notify_shared_lock() helper function and process of acquiring of/upgrading to exclusive lock not to rely on such information. Now in MDL_context::acquire_exclusive_lock_impl() and MDL_ticket::upgrade_shared_lock_to_exclusive_lock() we simply re-try to wake up threads holding conflicting shared locks after small time out. - Adjusted MDL_context::can_wait_lead_to_deadlock() and MDL_ticket::has_pending_conflicting_lock() to use per-lock mutexes instead of LOCK_mdl. To do this introduced MDL_lock::has_pending_exclusive_lock() method. sql/mdl.h: Changed metadata locking subsystem to use mutex per lock and condition variable per context instead of one mutex and one conditional variable for the whole subsystem. In order to implement this change: - Added MDL_key::cmp() method to be able to sort MDL_key objects alphabetically. Changed length fields in MDL_key class to uint16 as 16-bit is enough for length of any key. - Changed MDL_ticket::get_ctx() to return pointer to non-const object in order to be able to use MDL_context::awake() method for such contexts. - Got rid of unlocked versions of can_wait_lead_to_deadlock()/ has_pending_conflicting_lock() methods in MDL_context and MDL_ticket. We no longer has single mutex which protects all locks. Thus one always has to use versions of these methods which acquire per-lock mutexes. - MDL_request_list type of list now counts its elements. - Added MDL_context::m_ctx_wakeup_cond condition variable to be used for waiting until this context's pending request can be satisfied or its thread has to perform actions to resolve potential deadlock. Added awake() method to wake up context from such wait. Addition of condition variable made MDL_context uncopyable. As result we no longer can save/restore MDL_context when working with system tables. Instead we create MDL savepoint before opening those tables and rollback to it once they are closed. - MDL_context::release_ticket() became release_lock() method. - Added auxiliary MDL_context::acquire_exclusive_lock_impl() method which does all necessary work to acquire exclusive lock on one object but should not be used directly as it does not enforce any asserts ensuring that no deadlocks are possible. - Since we no longer need to know if thread trying to acquire exclusive lock managed to wake up any threads having conflicting shared locks (as, anyway, we will try to wake up such threads again shortly) - MDL_context::m_is_waiting_in_mdl member became unnecessary and notify_shared_lock() no longer needs to be friend of MDL_context. Changed approach to handling of global metadata locks. Instead of implicitly acquiring intention exclusive locks when user requests per-object upgradeable or exclusive locks now we require them to be acquired explicitly in the same way as ordinary metadata locks. - Added new GLOBAL namespace for such locks. - Added new type of lock to be requested MDL_INTENTION_EXCLISIVE. - Added MDL_context::try_acquire_global_intention_exclusive_lock() and acquire_global_intention_exclusive_lock() methods. - Moved common code from MDL_context::acquire_global_shared_lock() and acquire_global_intention_exclusive_lock() to new method - MDL_context::acquire_lock_impl(). - Moved common code from MDL_context::try_acquire_shared_lock(), try_acquire_global_intention_exclusive_lock()/exclusive_lock() to MDL_context::try_acquire_lock_impl(). - Added helper MDL_context::is_global_lock_owner() method to be able easily to find what kind of global lock this context holds. - MDL_context::m_has_global_shared_lock became unnecessary as global read lock is now represented by ordinary ticket. - Removed assert in MDL_context::set_lt_or_ha_sentinel() which became false for cases when we execute LOCK TABLES under global read lock mode. sql/mysql_priv.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result calls opening/closing system tables were changed to use Open_tables_backup instead of Open_table_state class as well. sql/sp.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sp.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_base.cc: close_thread_tables(): Since we no longer use separate MDL_context for opening system tables we need to avoid releasing all transaction locks when closing system table. Releasing metadata lock on system table is now responsibility of THD::restore_backup_open_tables_state(). open_table_get_mdl_lock(), Open_table_context::recover_from_failed_open(): MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object upgradable or exclusive metadata lock is acquired. So this have to be done explicitly from these calls. Changed Open_table_context class to store MDL_request object for global intention exclusive lock acquired when opening tables. open_table(): Do not release metadata lock if we have failed to open table as this lock might have been acquired by one of previous statements in transaction, and therefore should not be released. open_system_tables_for_read()/close_system_tables()/ open_performance_schema_table(): Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. close_performance_schema_table(): Got rid of duplicated code. sql/sql_class.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. Also releasing metadata lock on system table is now responsibility of THD::restore_backup_open_tables_state(). Adjusted assert in THD::cleanup() to take into account fact that now we also use MDL sentinel for global read lock. sql/sql_class.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. As result: - 'mdl_context' member was moved out of Open_tables_state to THD class. enter_locked_tables_mode()/leave_locked_tables_mode() had to follow. - Methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. Changed Open_table_context class to store MDL_request object for global intention exclusive lock acquired when opening tables. sql/sql_delete.cc: MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/sql_help.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_parse.cc: Adjusted assert reload_acl_and_cache() to the fact that global read lock now takes full-blown metadata lock. sql/sql_plist.h: Added support for element counting to I_P_List list template. One can use policy classes to specify if such counting is needed or not needed for particular list. sql/sql_show.cc: Instead of using separate MDL_context for opening tables for I_S purposes we now create MDL savepoint in the main context before opening tables and rollback to this savepoint after closing them. To support this and similar change for system tables methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing tables for I_S purposes was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_table.cc: mysql_rm_tables_part2(): Since now global intention exclusive metadata lock is ordinary metadata lock we no longer can rely that by releasing MDL locks on all tables we will release all locks acquired by this routine. So in non-LOCK-TABLES mode we have to release all locks acquired explicitly. prepare_for_repair(), mysql_alter_table(): MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/tztime.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. Also changed code not to use special mechanism for open system tables when it is not really necessary. |
16 years ago |
|
|
0228c98936 |
Implementation of simple deadlock detection for metadata locks.
This change is supposed to reduce number of ER_LOCK_DEADLOCK errors which occur when multi-statement transaction encounters conflicting metadata lock in cases when waiting is possible. The idea is not to fail ER_LOCK_DEADLOCK error immediately when we encounter conflicting metadata lock. Instead we release all metadata locks acquired by current statement and start to wait until conflicting lock go away. To avoid deadlocks we use simple empiric which aborts waiting with ER_LOCK_DEADLOCK error if it turns out that somebody is waiting for metadata locks owned by this transaction. This patch also fixes bug #46273 "MySQL 5.4.4 new MDL: Bug#989 is not fully fixed in case of ALTER". The bug was that concurrent execution of UPDATE or MULTI-UPDATE statement as a part of multi-statement transaction that already has used table being updated and ALTER TABLE statement might have resulted of loss of isolation between this transaction and ALTER TABLE statement, which manifested itself as changes performed by ALTER TABLE becoming visible in transaction and wrong binary log order as a consequence. This problem occurred when UPDATE or MULTI-UPDATE's wait in mysql_lock_tables() call was aborted due to metadata lock upgrade performed by concurrent ALTER TABLE. After such abort all metadata locks held by transaction were released but transaction silently continued to be executed as if nothing has happened. We solve this problem by changing our code not to release all locks in such case. Instead we release only locks which were acquired by current statement and then try to reacquire them by restarting open/lock tables process. We piggyback on simple deadlock detector implementation since this change has to be done anyway for it. mysql-test/include/handler.inc: After introduction of basic deadlock detector for metadata locks it became necessary to change parts of test for HANDLER statements which covered some of scenarios in which ER_LOCK_DEADLOCK error was detected in absence of real deadlock (with new deadlock detector this no longer happens). Also adjusted test to the fact that HANDLER READ for the table no longer will be blocked by ALTER TABLE for the same table which awaits for metadata lock upgrade (this is due to removal of mysql_lock_abort() from wait_while_table_is_used()). mysql-test/r/handler_innodb.result: After introduction of basic deadlock detector for metadata locks it became necessary to change parts of test for HANDLER statements which covered some of scenarios in which ER_LOCK_DEADLOCK error was detected in absence of real deadlock (with new deadlock detector this no longer happens). Also adjusted test to the fact that HANDLER READ for the table no longer will be blocked by ALTER TABLE for the same table which awaits for metadata lock upgrade (this is due to removal of mysql_lock_abort() from wait_while_table_is_used()). mysql-test/r/handler_myisam.result: After introduction of basic deadlock detector for metadata locks it became necessary to change parts of test for HANDLER statements which covered some of scenarios in which ER_LOCK_DEADLOCK error was detected in absence of real deadlock (with new deadlock detector this no longer happens). Also adjusted test to the fact that HANDLER READ for the table no longer will be blocked by ALTER TABLE for the same table which awaits for metadata lock upgrade (this is due to removal of mysql_lock_abort() from wait_while_table_is_used()). mysql-test/r/mdl_sync.result: Added test coverage for basic deadlock detection in metadata locking subsystem and for bug #46273 "MySQL 5.4.4 new MDL: Bug#989 is not fully fixed in case of ALTER". mysql-test/r/sp-lock.result: Adjusted test coverage for metadata locking for stored routines since after introduction of basic deadlock detector for metadata locks number of scenarios in which ER_LOCK_DEADLOCK error in absence of deadlock has decreased. mysql-test/t/mdl_sync.test: Added test coverage for basic deadlock detection in metadata locking subsystem and for bug #46273 "MySQL 5.4.4 new MDL: Bug#989 is not fully fixed in case of ALTER". mysql-test/t/sp-lock.test: Adjusted test coverage for metadata locking for stored routines since after introduction of basic deadlock detector for metadata locks number of scenarios in which ER_LOCK_DEADLOCK error in absence of deadlock has decreased. sql/log_event_old.cc: close_tables_for_reopen() now takes one more argument which specifies at which point it should stop releasing metadata locks acquired by this connection. sql/mdl.cc: Changed metadata locking subsystem to support basic deadlock detection with a help of the following simple empiric -- we assume that there is a deadlock if there is a connection which has to wait for a metadata lock which is currently acquired by some connection which is itself waiting to be able to acquire some shared metadata lock. To implement this change: - Added MDL_context::can_wait_lead_to_deadlock()/_impl() methods which allow to find out if there is someone waiting for metadata lock which is held by the connection and therefore deadlocks are possible if this connection is going to wait for some metadata lock. To do this added version of MDL_ticket::has_pending_conflicting_lock() method which assumes that its caller already owns LOCK_mdl mutex. - Changed MDL_context::wait_for_locks() to use one of the above methods to check if somebody is waiting for metadata lock owned by this context (and therefore deadlock is possible) and emit ER_LOCK_DEADLOCK error in this case. Also now we mark context of connections waiting inside of this method by setting MDL_context::m_is_waiting_in_mdl member. Thanks to this such connection could be waken up if some other connection starts waiting for one of its metadata locks and so a deadlock can occur. - Adjusted notify_shared_lock() to wake up connections which wait inside MDL_context::wait_for_locks() while holding shared metadata lock. - Changed MDL_ticket::upgrade_shared_lock_to_exclusive() to add temporary ticket for exclusive lock to MDL_lock::waiting queue, so request for metadata lock upgrade can be properly detected by our empiric. Also now this method invokes a callback which forces transactions holding shared metadata lock on the table to call MDL_context:: can_wait_lead_to_deadlock() method even if they don't need any new metadata locks. Thanks to this such transactions can detect deadlocks/ livelocks between MDL and table-level locks. Also reduced timeouts between calls to notify_shared_lock() in MDL_ticket::upgrade_shared_lock_to_exclusive() and MDL_context::acquire_exclusive_locks(). This was necessary to get rid of call to mysql_lock_abort() in wait_while_table_is_used(). (Now we instead rely on notify_shared_lock() timely calling mysql_lock_abort_for_thread() for the table on which lock is being upgraded/acquired). sql/mdl.h: - Added a version of MDL_ticket::has_pending_conflicting_lock() method to be used in situations when caller already has acquired LOCK_mdl mutex. - Added MDL_context::can_wait_lead_to_deadlock()/_impl() methods which allow to find out if there is someone waiting for metadata lock which is held by this connection and thus deadlocks are possible if this connections will start waiting for some metadata lock. - Added MDL_context::m_is_waiting_in_mdl member to mark connections waiting in MDL_context::wait_for_locks() method of metadata locking subsystem. Added getter method for this private member to make it accessible in notify_shared_lock() auxiliary so we can wake-up such connections if they hold shared metadata locks. - Finally, added mysql_abort_transactions_with_shared_lock() callback to be able force transactions which don't need any new metadata locks still call MDL_context::can_wait_lead_to_deadlock() and detect some of deadlocks between metadata locks and table-level locks. sql/mysql_priv.h: close_tables_for_reopen() now takes one more argument which specifies at which point it should stop releasing metadata locks acquired by this connection. sql/sql_base.cc: Changed approach to metadata locking for multi-statement transactions. We no longer fail ER_LOCK_DEADLOCK error immediately when we encounter conflicting metadata lock. Instead we release all metadata locks acquired by current statement and start to wait until conflicting locks to go away by calling MDL_context::wait_for_locks() method. To avoid deadlocks the latter implements simple empiric which aborts waiting with ER_LOCK_DEADLOCK error if it turns out that somebody is waiting for metadata locks owned by this transaction. To implement the change described above: - Introduced Open_table_context::m_start_of_statement_svp member to store state of metadata locks at the start of the statement. - Changed Open_table_context::request_backoff_action() not to fail with ER_LOCK_DEADLOCK immediately if back-off is requested due to conflicting metadata lock. - Added new argument for close_tables_for_reopen() procedure which allows to specify subset of metadata locks to be released. - Changed open_tables() not to release all metadata locks acquired by current transaction when metadata lock conflict is discovered. Instead we release only locks acquired by current statement. - Changed open_ltable() and open_and_lock_tables_derived() not to emit ER_LOCK_DEADLOCK error when mysql_lock_tables() is aborted in multi-statement transaction when somebody tries to acquire exclusive metadata lock on the table. Instead we release metadata locks acquired by current statement and try to wait until they can be re-acquired. - Adjusted tdc_wait_for_old_versions() to check if there is someone waiting for one of metadata locks held by this connection and run deadlock detection in order to avoid deadlocks in some situations. - Added mysql_abort_transactions_with_shared_lock() callback which allows to force transactions holding shared metadata lock on the table to call MDL_context::can_wait_lead_to_deadlock() even if they don't need any new metadata locks so they can detect potential deadlocks between metadata locking subsystem and table-level locks. - Adjusted wait_while_table_is_used() not to set TABLE::version to 0 as it is now done only when necessary by the above-mentioned callback. Also removed unnecessary call to mysql_lock_abort(). Instead we rely on code performing metadata lock upgrade aborting waits on the table-level lock for this table by calling mysql_lock_abort_for_thread() (invoked by mysql_notify_thread_having_shared_lock()). In future this should allow to reduce number of scenarios in which we produce ER_LOCK_DEADLOCK error even though no real deadlock exists. sql/sql_class.h: Introduced Open_table_context::m_start_of_statement_svp member to store state of metadata locks at the start of the statement. Replaced Open_table_context::m_can_deadlock member with m_has_locks member to reflect the fact that we no longer unconditionally emit ER_LOCK_DEADLOCK error for transaction having some metadata locks when conflicting metadata lock is discovered. sql/sql_insert.cc: close_tables_for_reopen() now takes one more argument which specifies at which point it should stop releasing metadata locks acquired by this connection. sql/sql_plist.h: Made I_P_List_iterator<T, B> usable with const lists. sql/sql_show.cc: close_tables_for_reopen() now takes one more argument which specifies at which point it should stop releasing metadata locks acquired by this connection. sql/sql_update.cc: Changed UPDATE and MULTI-UPDATE code not to release all metadata locks when calls to mysql_lock_tables() are aborted. Instead we release only locks which are acquired by this statement and then try to reacquire them by calling open_tables(). This solves bug #46273 "MySQL 5.4.4 new MDL: Bug#989 is not fully fixed in case of ALTER". |
16 years ago |
|
|
dfdbc84585 |
A prerequisite patch for the fix for Bug#46224
"HANDLER statements within a transaction might lead to deadlocks". Introduce a notion of a sentinel to MDL_context. A sentinel is a ticket that separates all tickets in the context into two groups: before and after it. Currently we can have (and need) only one designated sentinel -- it separates all locks taken by LOCK TABLE or HANDLER statement, which must survive COMMIT and ROLLBACK and all other locks, which must be released at COMMIT or ROLLBACK. The tricky part is maintaining the sentinel up to date when someone release its corresponding ticket. This can happen, e.g. if someone issues DROP TABLE under LOCK TABLES (generally, see all calls to release_all_locks_for_name()). MDL_context::release_ticket() is modified to take care of it. ****** A fix and a test case for Bug#46224 "HANDLER statements within a transaction might lead to deadlocks". An attempt to mix HANDLER SQL statements, which are transaction- agnostic, an open multi-statement transaction, and DDL against the involved tables (in a concurrent connection) could lead to a deadlock. The deadlock would occur when HANDLER OPEN or HANDLER READ would have to wait on a conflicting metadata lock. If the connection that issued HANDLER statement also had other metadata locks (say, acquired in scope of a transaction), a classical deadlock situation of mutual wait could occur. Incompatible change: entering LOCK TABLES mode automatically closes all open HANDLERs in the current connection. Incompatible change: previously an attempt to wait on a lock in a connection that has an open HANDLER statement could wait indefinitely/deadlock. After this patch, an error ER_LOCK_DEADLOCK is produced. The idea of the fix is to merge thd->handler_mdl_context with the main mdl_context of the connection, used for transactional locks. This makes deadlock detection possible, since all waits with locks are "visible" and available to analysis in a single MDL context of the connection. Since HANDLER locks and transactional locks have a different life cycle -- HANDLERs are explicitly open and closed, and so are HANDLER locks, explicitly acquired and released, whereas transactional locks "accumulate" till the end of a transaction and are released only with COMMIT, ROLLBACK and ROLLBACK TO SAVEPOINT, a concept of "sentinel" was introduced to MDL_context. All locks, HANDLER and others, reside in the same linked list. However, a selected element of the list separates locks with different life cycle. HANDLER locks always reside at the end of the list, after the sentinel. Transactional locks are prepended to the beginning of the list, before the sentinel. Thus, ROLLBACK, COMMIT or ROLLBACK TO SAVEPOINT, only release those locks that reside before the sentinel. HANDLER locks must be released explicitly as part of HANDLER CLOSE statement, or an implicit close. The same approach with sentinel is also employed for LOCK TABLES locks. Since HANDLER and LOCK TABLES statement has never worked together, the implementation is made simple and only maintains one sentinel, which is used either for HANDLER locks, or for LOCK TABLES locks. mysql-test/include/handler.inc: Add test coverage for Bug#46224 "HANDLER statements within a transaction might lead to deadlocks". Extended HANDLER coverage to cover a mix of HANDLER, transactions and DDL statements. mysql-test/r/handler_innodb.result: Update results (Bug#46224). mysql-test/r/handler_myisam.result: Update results (Bug#46224). sql/lock.cc: Remove thd->some_tables_deleted, it's never used. sql/log_event.cc: No need to check for thd->locked_tables_mode, it's done inside release_transactional_locks(). sql/mdl.cc: Implement the concept of HANDLER and LOCK TABLES "sentinel". Implement a method to clone an acquired ticket. Do not return tickets beyond the sentinel when acquiring locks, create a copy. Remove methods to merge and backup MDL_context, they are now not used (Hurra!). This opens a path to a proper constructor and destructor of class MDL_context (to be done in a separate patch). Modify find_ticket() to provide information about where the ticket position is with regard to the sentinel. sql/mdl.h: Add declarations necessary for the implementation of the concept of "sentinel", a dedicated ticket separating transactional and non-transactional locks. sql/mysql_priv.h: Add mark_tmp_table_for_reuse() declaration, a function to "close" a single session (temporary) table. sql/sql_base.cc: Remove thd->some_tables_deleted. Modify deadlock-prevention asserts and deadlock detection heuristics to take into account that from now on HANDLER locks reside in the same locking context. Add broadcast_refresh() to mysql_notify_thread_having_shared_lock(): this is necessary for the case when a thread having a shared lock is asleep in tdc_wait_for_old_versions(). This situation is only possible with HANDLER t1 OPEN; FLUSH TABLE (since all over code paths that lead to tdc_wait_for_old_versions() always have an empty MDL_context). Previously the server would simply deadlock in this situation. sql/sql_class.cc: Remove now unused member "THD::some_tables_deleted". Move mysql_ha_cleanup() a few lines above in THD::cleanup() to make sure that all handlers are closed when it's time to destroy the MDL_context of this connection. Remove handler_mdl_context and handler_tables. sql/sql_class.h: Remove THD::handler_tables, THD::handler_mdl_context, THD::some_tables_deleted. sql/sql_handler.cc: Remove thd->handler_tables. Remove thd->handler_mdl_context. Rewrite mysql_ha_open() to have no special provision for MERGE tables, now that we don't have to manipulate with thd->handler_tables it's easy to do. Remove dead code. Fix a bug in mysql_ha_flush() when we would always flush a temporary HANDLER when mysql_ha_flush() is called (actually mysql_ha_flush() never needs to flush temporary tables). sql/sql_insert.cc: Update a comment, no more thd->some_tables_deleted. sql/sql_parse.cc: Implement an incompatible change: entering LOCK TABLES closes active HANDLERs, if any. Now that we have a sentinel, we don't need to check for thd->locked_tables_mode when releasing metadata locks in COMMIT/ROLLBACK. sql/sql_plist.h: Add new (now necessary) methods to the list class. sql/sql_prepare.cc: Make sure we don't release HANDLER locks when rollback to a savepoint, set to not keep locks taken at PREPARE. sql/sql_servers.cc: Update to a new signature of MDL_context::release_all_locks(). sql/sql_table.cc: Remove thd->some_tables_deleted. sql/transaction.cc: Add comments. Make sure rollback to (MDL) savepoint works under LOCK TABLES and with HANDLER tables. |
16 years ago |
|
|
6d4e09d68e |
Bug #48541 Deadlock between LOCK_open and LOCK_mdl
The reason for the deadlock was an improper exit from MDL_context::wait_for_locks() which caused mysys_var->current_mutex to remain LOCK_mdl even though LOCK_mdl was no longer held by that connection. This could for example lead to a deadlock in the following way: 1) INSERT DELAYED tries to open a table but fails, and trying to recover it calls wait_for_locks(). 2) Due to a pending exclusive request, wait_for_locks() fails and exits without resetting mysys_var->current_mutex for the delayed insert handler thread. So it continues to point to LOCK_mdl. 3) The handler thread manages to open a table. 4) A different connection takes LOCK_open and tries to take LOCK_mdl. 5) FLUSH TABLES from a third connection notices that the handler thread has a table open, and tries to kill it. This involves locking mysys_var->current_mutex while having LOCK_open locked. Since current_mutex mistakenly points to LOCK_mdl, we have a deadlock. This patch makes sure MDL_EXIT_COND() is called before exiting wait_for_locks(). This clears mysys->current_mutex which resolves the issue. An assert is added to recover_from_failed_open_table_attempt() after wait_for_locks() is called, to check that current_mutex is indeed reset. With this assert in place, existing tests in (e.g.) mdl_sync.test will fail without this patch. |
16 years ago |
|
|
5e1dfa4c06 |
Backport of revno: 2617.71.1
Bug#42546 Backup: RESTORE fails, thinking it finds an existing table The problem occured when a MDL locking conflict happened for a non-existent table between a CREATE and a INSERT statement. The code for CREATE interpreted this lock conflict to mean that the table existed, which meant that the statement failed when it should not have. The problem could occur for CREATE TABLE, CREATE TABLE LIKE and ALTER TABLE RENAME. This patch fixes the problem for CREATE TABLE and CREATE TABLE LIKE. It is based on code backported from the mysql-6.1-fk tree written by Dmitry Lenev. CREATE now uses normal open_and_lock_tables() code to acquire exclusive locks. This means that for the test case in the bug description, CREATE will wait until INSERT completes so that it can get the exclusive lock. This resolves the reported bug. The patch also prohibits CREATE TABLE and CREATE TABLE LIKE under LOCK TABLES. Note that this is an incompatible change and must be reflected in the documentation. Affected test cases have been updated. mdl_sync.test contains tests for CREATE TABLE and CREATE TABLE LIKE. Fixing the issue for ALTER TABLE RENAME is beyond the scope of this patch. ALTER TABLE cannot be prohibited from working under LOCK TABLES as this could seriously impact customers and a proper fix would require a significant rewrite. |
16 years ago |
|
|
f26f632b44 |
Backport of:
------------------------------------------------------------ revno: 2617.68.25 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-next-bg-pre2-2 timestamp: Wed 2009-09-16 18:26:50 +0400 message: Follow-up for one of pre-requisite patches for fixing bug #30977 "Concurrent statement using stored function and DROP FUNCTION breaks SBR". Made enum_mdl_namespace enum part of MDL_key class and removed MDL_ prefix from the names of enum members. In order to do the latter changed name of PROCEDURE symbol to PROCEDURE_SYM (otherwise macro which was automatically generated for this symbol conflicted with MDL_key::PROCEDURE enum member). |
16 years ago |
|
|
634a810942 |
Backport of:
------------------------------------------------------------ revno: 2617.68.24 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-next-bg-pre2-2 timestamp: Wed 2009-09-16 17:25:29 +0400 message: Pre-requisite patch for fixing bug #30977 "Concurrent statement using stored function and DROP FUNCTION breaks SBR". Added MDL_request for stored routine as member to Sroutine_hash_entry in order to be able perform metadata locking for stored routines in future (Sroutine_hash_entry is an equivalent of TABLE_LIST class for stored routines). (WL#4284, follow up fixes). sql/mdl.cc: Introduced version of MDL_request::init() method which initializes lock request using pre-built MDL key. MDL_key::table_name/table_name_length() getters were renamed to reflect the fact that MDL_key objects are now created not only for tables. sql/mdl.h: Extended enum_mdl_namespace enum with values which correspond to namespaces for stored functions and triggers. Renamed MDL_key::table_name/table_name_length() getters to MDL_key::name() and name_length() correspondingly to reflect the fact that MDL_key objects are now created not only for tables. Added MDL_key::mdl_namespace() getter. Also added version of MDL_request::init() method which initializes lock request using pre-built MDL key. sql/sp.cc: Added MDL_request for stored routine as member to Sroutine_hash_entry. Changed code to use MDL_key from this request as a key for LEX::sroutines set. Removed separate "key" member from Sroutine_hash_entry as it became unnecessary. sql/sp.h: Added MDL_request for stored routine as member to Sroutine_hash_entry in order to be able perform metadata locking for stored routines in future (Sroutine_hash_entry is an equivalent of TABLE_LIST class for stored routines). Removed Sroutine_hash_entry::key member as now we can use MDL_key from this request as a key for LEX::sroutines set. sql/sp_head.cc: Removed sp_name::m_sroutines_key member and set_routine_type() method. Since key for routine in LEX::sroutines set has no longer sp_name::m_qname as suffix we won't save anything by creating it at sp_name construction time. Adjusted sp_name constructor used for creating temporary objects for lookups in SP-cache to accept MDL_key as parameter and to avoid any memory allocation. Finally, removed sp_head::m_soutines_key member for reasons similar to why sp_name::m_sroutines_key was removed sql/sp_head.h: Removed sp_name::m_sroutines_key member and set_routine_type() method. Since key for routine in LEX::sroutines set has no longer sp_name::m_qname as suffix we won't save anything by creating it at sp_name construction time. Adjusted sp_name constructor used for creating temporary objects for lookups in SP-cache to accept MDL_key as parameter and to avoid any memory allocation. Finally, removed sp_head::m_soutines_key member for reasons similar to why sp_name::m_sroutines_key was removed. sql/sql_base.cc: Adjusted code to the fact that we now use MDL_key from Sroutine_hash_entry::mdl_request as a key for LEX::sroutines set. MDL_key::table_name/table_name_length() getters were renamed to reflect the fact that MDL_key objects are now created not only for tables. sql/sql_trigger.cc: sp_add_used_routine() now takes MDL_key as parameter as now we use instance of this class as a key for LEX::sroutines set. |
16 years ago |
|
|
fcae99271a |
Backport of revno: 2617.68.39
Bug #47249 assert in MDL_global_lock::is_lock_type_compatible This assert could be triggered if LOCK TABLES were used to lock both a table and a view that used the same table. The table would have to be first WRITE locked and then READ locked. So "LOCK TABLES v1 WRITE, t1 READ" would eventually trigger the assert, "LOCK TABLES v1 READ, t1 WRITE" would not. The reason is that the ordering of locks in the interal representation made a difference when executing FLUSH TABLE on the table. During FLUSH TABLE, a lock was upgraded to exclusive. If this lock was of type MDL_SHARED and not MDL_SHARED_UPGRADABLE, an internal counter in the MDL subsystem would get out of sync. This would happen if the *last* mention of the table in LOCK TABLES was a READ lock. The counter in question is the number exclusive locks (active or intention). This is used to make sure a global metadata lock is only taken when the counter is zero (= no conflicts). The counter is increased when a MDL_EXCLUSIVE or MDL_SHARED_UPGRADABLE lock is taken, but not when upgrade_shared_lock_to_exclusive() is used to upgrade directly from MDL_SHARED to MDL_EXCLUSIVE. This patch fixes the problem by searching for a TABLE instance locked with MDL_SHARED_UPGRADABLE or MDL_EXCLUSIVE before calling upgrade_shared_lock_to_exclusive(). The patch also adds an assert checking that only MDL_SHARED_UPGRADABLE locks are upgraded to exclusive. Test case added to lock_multi.test. |
16 years ago |
|
|
546e16ebd8 |
Backport of revno: 2617.69.40
A pre-requisite patch for Bug#30977 "Concurrent statement using stored function and DROP FUNCTION breaks SBR". This patch changes the MDL API by introducing a namespace for lock keys: MDL_TABLE for tables and views and MDL_PROCEDURE for stored procedures and functions. The latter is needed for the fix for Bug#30977. |
16 years ago |
|
|
ce5c87a3d3 |
Backport of:
---------------------------------------------------------- revno: 2617.69.20 committer: Konstantin Osipov <kostja@sun.com> branch nick: 5.4-4284-1-assert timestamp: Thu 2009-08-13 18:29:55 +0400 message: WL#4284 "Transactional DDL locking" A review fix. Since WL#4284 implementation separated MDL_request and MDL_ticket, MDL_request becamse a utility object necessary only to get a ticket. Store it by-value in TABLE_LIST with the intent to merge MDL_request::key with table_list->table_name and table_list->db in future. Change the MDL subsystem to not require MDL_requests to stay around till close_thread_tables(). Remove the list of requests from the MDL context. Requests for shared metadata locks acquired in open_tables() are only used as a list in recover_from_failed_open_table_attempt(), which calls mdl_context.wait_for_locks() for this list. To keep such list for recover_from_failed_open_table_attempt(), introduce a context class (Open_table_context), that collects all requests. A lot of minor cleanups and simplications that became possible with this change. sql/event_db_repository.cc: Remove alloc_mdl_requests(). Now MDL_request instance is a member of TABLE_LIST, and init_one_table() initializes it. sql/ha_ndbcluster_binlog.cc: Remove now unnecessary declaration and initialization of binlog_mdl_request. sql/lock.cc: No need to allocate MDL requests in lock_table_names() now. sql/log.cc: Use init_one_table() method, remove alloc_mdl_requests(), which is now unnecessary. sql/log_event.cc: No need to allocate mdl_request separately now. Use init_one_table() method. sql/log_event_old.cc: Update to the new signature of close_tables_for_reopen(). sql/mdl.cc: Update try_acquire_exclusive_lock() to be more easy to use. Function lock_table_name_if_not_cached() has been removed. Make acquire_shared_lock() signature consistent with try_acquire_exclusive_lock() signature. Remove methods that are no longer used. Update comments. sql/mdl.h: Implement an assignment operator that doesn't copy MDL_key (MDL_key::operator= is private and should remain private). This is a hack to work-around assignment of TABLE_LIST by value in several places. Such assignments violate encapsulation, since only perform a shallow copy. In most cases these assignments are a hack on their own. sql/mysql_priv.h: Update signatures of close_thread_tables() and close_tables_for_reopen(). sql/sp.cc: Allocate TABLE_LIST in thd->mem_root. Use init_one_table(). sql/sp_head.cc: Use init_one_table(). Remove thd->locked_tables_root, it's no longer needed. sql/sql_acl.cc: Use init_mdl_requests() and init_one_table(). sql/sql_base.cc: Update to new signatures of try_acquire_shared_lock() and try_acquire_exclusive_lock(). Remove lock_table_name_if_not_cached(). Fix a bug in open_ltable() that would not return ER_LOCK_DEADLOCK in case of a failed lock_tables() and a multi-statement transaction. Fix a bug in open_and_lock_tables_derived() that would not return ER_LOCK_DEADLOCK in case of a multi-statement transaction and a failure of lock_tables(). Move assignment of enum_open_table_action to a method of Open_table_context, a new class that maintains information for backoff actions. Minor rearrangements of the code. Remove alloc_mdl_requests() in functions that work with system tables: instead the patch ensures that callers always initialize TABLE_LIST argument. sql/sql_class.cc: THD::locked_tables_root is no more. sql/sql_class.h: THD::locked_tables_root is no more. Add a declaration for Open_table_context class. sql/sql_delete.cc: Update to use the simplified MDL API. sql/sql_handler.cc: TABLE_LIST::mdl_request is stored by-value now. Ensure that mdl_request.ticket is NULL for every request that is passed into MDL, to satisfy MDL asserts. @ sql/sql_help.cc Function open_system_tables_for_read() no longer initializes mdl_requests. Move TABLE_LIST::mdl_request initialization closer to TABLE_LIST initialization. sql/sql_help.cc: Function open_system_tables_for_read() no longer initializes mdl_requests. Move TABLE_LIST::mdl_request initialization closer to TABLE_LIST initialization. sql/sql_insert.cc: Remove assignment by-value of TABLE_LIST in TABLEOP_HOOKS. We can't carry over a granted MDL ticket from one table list to another. sql/sql_parse.cc: Change alloc_mdl_requests() -> init_mdl_requests(). @todo We can remove init_mdl_requests() altogether in some places: all places that call add_table_to_list() already have mdl requests initialized. sql/sql_plugin.cc: Use init_one_table(). THD::locked_tables_root is no more. sql/sql_servers.cc: Use init_one_table(). sql/sql_show.cc: Update acquire_high_priority_shared_lock() to use TABLE_LIST::mdl_request rather than allocate an own. Fix get_trigger_table_impl() to use init_one_table(), check for out of memory, follow the coding style. sql/sql_table.cc: Update to work with TABLE_LIST::mdl_request by-value. Remove lock_table_name_if_not_cached(). The code that used to delegate to it is quite simple and concise without it now. sql/sql_udf.cc: Use init_one_table(). sql/sql_update.cc: Update to use the new signature of close_tables_for_reopen(). sql/table.cc: Move re-setting of mdl_requests for prepared statements and stored procedures from close_thread_tables() to reinit_stmt_before_use(). Change alloc_mdl_requests() to init_mdl_requests(). init_mdl_requests() is a hack that can't be deleted until we don't have a list-aware TABLE_LIST constructor. Hopefully its use will be minimal sql/table.h: Change alloc_mdl_requests() to init_mdl_requests() TABLE_LIST::mdl_request is stored by value. sql/tztime.cc: We no longer initialize mdl requests in open_system_tables_for*() functions. Move this initialization closer to initialization of the rest of TABLE_LIST members. storage/myisammrg/ha_myisammrg.cc: Simplify mdl_request initialization. |
16 years ago |
|
|
a14bbee5ab |
Backport of revno ## 2617.31.1, 2617.31.3, 2617.31.4, 2617.31.5,
2617.31.12, 2617.31.15, 2617.31.15, 2617.31.16, 2617.43.1 - initial changeset that introduced the fix for Bug#989 and follow up fixes for all test suite failures introduced in the initial changeset. ------------------------------------------------------------ revno: 2617.31.1 committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: 4284-6.0 timestamp: Fri 2009-03-06 19:17:00 -0300 message: Bug#989: If DROP TABLE while there's an active transaction, wrong binlog order WL#4284: Transactional DDL locking Currently the MySQL server does not keep metadata locks on schema objects for the duration of a transaction, thus failing to guarantee the integrity of the schema objects being used during the transaction and to protect then from concurrent DDL operations. This also poses a problem for replication as a DDL operation might be replicated even thought there are active transactions using the object being modified. The solution is to defer the release of metadata locks until a active transaction is either committed or rolled back. This prevents other statements from modifying the table for the entire duration of the transaction. This provides commitment ordering for guaranteeing serializability across multiple transactions. - Incompatible change: If MySQL's metadata locking system encounters a lock conflict, the usual schema is to use the try and back-off technique to avoid deadlocks -- this schema consists in releasing all locks and trying to acquire them all in one go. But in a transactional context this algorithm can't be utilized as its not possible to release locks acquired during the course of the transaction without breaking the transaction commitments. To avoid deadlocks in this case, the ER_LOCK_DEADLOCK will be returned if a lock conflict is encountered during a transaction. Let's consider an example: A transaction has two statements that modify table t1, then table t2, and then commits. The first statement of the transaction will acquire a shared metadata lock on table t1, and it will be kept utill COMMIT to ensure serializability. At the moment when the second statement attempts to acquire a shared metadata lock on t2, a concurrent ALTER or DROP statement might have locked t2 exclusively. The prescription of the current locking protocol is that the acquirer of the shared lock backs off -- gives up all his current locks and retries. This implies that the entire multi-statement transaction has to be rolled back. - Incompatible change: FLUSH commands such as FLUSH PRIVILEGES and FLUSH TABLES WITH READ LOCK won't cause locked tables to be implicitly unlocked anymore. mysql-test/extra/binlog_tests/drop_table.test: Add test case for Bug#989. mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction. mysql-test/include/mix1.inc: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction. mysql-test/include/mix2.inc: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction. mysql-test/r/flush_block_commit.result: Update test case result (WL#4284). mysql-test/r/flush_block_commit_notembedded.result: Update test case result (WL#4284). mysql-test/r/innodb.result: Update test case result (WL#4284). mysql-test/r/innodb_mysql.result: Update test case result (WL#4284). mysql-test/r/lock.result: Add test case result for an effect of WL#4284/Bug#989 (all locks should be released when a connection terminates). mysql-test/r/mix2_myisam.result: Update test case result (effects of WL#4284/Bug#989). mysql-test/r/not_embedded_server.result: Update test case result (effects of WL#4284/Bug#989). Add a test case for interaction of WL#4284 and FLUSH PRIVILEGES. mysql-test/r/partition_innodb_semi_consistent.result: Update test case result (effects of WL#4284/Bug#989). mysql-test/r/partition_sync.result: Temporarily disable the test case for Bug#43867, which will be fixed by a subsequent backport. mysql-test/r/ps.result: Add a test case for effect of PREPARE on transactional locks: we take a savepoint at beginning of PREAPRE and release it at the end. Thus PREPARE does not accumulate metadata locks (Bug#989/WL#4284). mysql-test/r/read_only_innodb.result: Update test case result (effects of WL#4284/Bug#989). mysql-test/suite/binlog/r/binlog_row_drop_tbl.result: Add a test case result (WL#4284/Bug#989). mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result: Update test case result (effects of WL#4284/Bug#989). mysql-test/suite/binlog/r/binlog_stm_drop_tbl.result: Add a test case result (WL#4284/Bug#989). mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: Update test case result (effects of WL#4284/Bug#989). mysql-test/suite/binlog/r/binlog_unsafe.result: A side effect of Bug#989 -- slightly different table map ids. mysql-test/suite/binlog/t/binlog_row_drop_tbl.test: Add a test case for WL#4284/Bug#989. mysql-test/suite/binlog/t/binlog_stm_drop_tbl.test: Add a test case for WL#4284/Bug#989. mysql-test/suite/binlog/t/binlog_stm_row.test: Update to the new state name. This is actually a follow up to another patch for WL#4284, that changes Locked thread state to Table lock. mysql-test/suite/ndb/r/ndb_index_ordered.result: Remove result for disabled part of the test case. mysql-test/suite/ndb/t/disabled.def: Temporarily disable a test case (Bug#45621). mysql-test/suite/ndb/t/ndb_index_ordered.test: Disable a part of a test case (needs update to reflect semantics of Bug#989). mysql-test/suite/rpl/t/disabled.def: Disable tests made meaningless by transactional metadata locking. mysql-test/suite/sys_vars/r/autocommit_func.result: Add a commit (Bug#989). mysql-test/suite/sys_vars/t/autocommit_func.test: Add a commit (Bug#989). mysql-test/t/flush_block_commit.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction. mysql-test/t/flush_block_commit_notembedded.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction. Add a test case for transaction-scope locks and the global read lock (Bug#989/WL#4284). mysql-test/t/innodb.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction (effects of Bug#989/WL#4284). mysql-test/t/lock.test: Add a test case for Bug#989/WL#4284. mysql-test/t/not_embedded_server.test: Add a test case for Bug#989/WL#4284. mysql-test/t/partition_innodb_semi_consistent.test: Replace TRUNCATE with DELETE, to not issue an implicit commit of a transaction, and not depend on metadata locks. mysql-test/t/partition_sync.test: Temporarily disable the test case for Bug#43867, which needs a fix to be backported from 6.0. mysql-test/t/ps.test: Add a test case for semantics of PREPARE and transaction-scope locks: metadata locks on tables used in PREPARE are enclosed into a temporary savepoint, taken at the beginning of PREPARE, and released at the end. Thus PREPARE does not effect what locks a transaction owns. mysql-test/t/read_only_innodb.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction (Bug#989/WL#4284). Wait for the read_only statement to actually flush tables before sending other concurrent statements that depend on its state. mysql-test/t/xa.test: Fix test case to reflect the fact that transactions now hold metadata locks for the duration of a transaction (Bug#989/WL#4284). sql/ha_ndbcluster_binlog.cc: Backport bits of changes of ha_ndbcluster_binlog.cc from 6.0, to fix the failing binlog test suite with WL#4284. WL#4284 implementation does not work with 5.1 implementation of ndbcluster binlog index. sql/log_event.cc: Release metadata locks after issuing a commit. sql/mdl.cc: Style changes (WL#4284). sql/mysql_priv.h: Rename parameter to match the name used in the definition (WL#4284). sql/rpl_injector.cc: Release metadata locks on commit (WL#4284). sql/rpl_rli.cc: Remove assert made meaningless, metadata locks are released at the end of the transaction. sql/set_var.cc: Close tables and release locks if autocommit mode is set. sql/slave.cc: Release metadata locks after a rollback. sql/sql_acl.cc: Don't implicitly unlock locked tables. Issue a implicit commit at the end and unlock tables. sql/sql_base.cc: Defer the release of metadata locks when closing tables if not required to. Issue a deadlock error if the locking protocol requires that a transaction re-acquire its locks. Release metadata locks when closing tables for reopen. sql/sql_class.cc: Release metadata locks if the thread is killed. sql/sql_parse.cc: Release metadata locks after implicitly committing a active transaction, or after explicit commits or rollbacks. sql/sql_plugin.cc: Allocate MDL request on the stack as the use of the table is contained within the function. It will be removed from the context once close_thread_tables is called at the end of the function. sql/sql_prepare.cc: The problem is that the prepare phase of the CREATE TABLE statement takes a exclusive metadata lock lock and this can cause a self-deadlock the thread already holds a shared lock on the table being that should be created. The solution is to make the prepare phase take a shared metadata lock when preparing a CREATE TABLE statement. The execution of the statement will still acquire a exclusive lock, but won't cause any problem as it issues a implicit commit. After some discussions with stakeholders it has been decided that metadata locks acquired during a PREPARE statement must be released once the statement is prepared even if it is prepared within a multi statement transaction. sql/sql_servers.cc: Don't implicitly unlock locked tables. Issue a implicit commit at the end and unlock tables. sql/sql_table.cc: Close table and release metadata locks after a admin operation. sql/table.h: The problem is that the prepare phase of the CREATE TABLE statement takes a exclusive metadata lock lock and this can cause a self-deadlock the thread already holds a shared lock on the table being that should be created. The solution is to make the prepare phase take a shared metadata lock when preparing a CREATE TABLE statement. The execution of the statement will still acquire a exclusive lock, but won't cause any problem as it issues a implicit commit. sql/transaction.cc: Release metadata locks after the implicitly committed due to a new transaction being started. Also, release metadata locks acquired after a savepoint if the transaction is rolled back to the save point. The problem is that in some cases transaction-long metadata locks could be released before the transaction was committed. This could happen when a active transaction was ended by a "START TRANSACTION" or "BEGIN" statement, in which case the metadata locks would be released before the actual commit of the active transaction. The solution is to defer the release of metadata locks to after the transaction has been implicitly committed. No test case is provided as the effort to provide one is too disproportional to the size of the fix. |
16 years ago |
|
|
f5f708d4e1 |
Backport of (WL#4284):
------------------------------------------------------------ revno: 2617.23.23 committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: mysql-6.0-runtime timestamp: Thu 2009-03-05 18:39:58 -0300 message: Fix for broken build: SHARED is defined by Solaris headers. sql/mdl.cc: Add MDL_LOCK prefix to the lock types of MDL_LOCK. |
16 years ago |
|
|
a9013f8fba |
Backport of:
---------------------------------------------------------- revno: 2617.23.20 committer: Konstantin Osipov <kostja@sun.com> branch nick: mysql-6.0-runtime timestamp: Wed 2009-03-04 16:31:31 +0300 message: WL#4284 "Transactional DDL locking" Review comments: "Objectify" the MDL API. MDL_request and MDL_context still need manual construction and destruction, since they are used in environment that is averse to constructors/destructors. sql/mdl.cc: Improve comments. Add asserts to backup()/restore_from_backup()/merge() methods. Fix an order bug in the error path of mdl_acquire_exclusive_locks(): we used to first free a ticket object, and only then exclude it from the list of tickets. |
16 years ago |
|
|
97abce0e7c |
Backport of:
---------------------------------------------------------- revno: 2617.23.19 committer: Konstantin Osipov <kostja@sun.com> branch nick: mysql-6.0-runtime timestamp: Tue 2009-03-03 01:20:44 +0300 message: Metadata locking: realign comments. No semantical changes, only enforce a bit of the coding style. This is a review fix for WL#4284 "Transactional DDL locking". sql/mdl.cc: Realign doxygen comments. sql/mdl.h: Realign doxygen comments. |
16 years ago |
|
|
f477e66ec5 |
Backport of:
------------------------------------------------------------ revno: 2617.23.18 committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: 4284-6.0 timestamp: Mon 2009-03-02 18:18:26 -0300 message: Bug#989: If DROP TABLE while there's an active transaction, wrong binlog order WL#4284: Transactional DDL locking This is a prerequisite patch: These changes are intended to split lock requests from granted locks and to allow the memory and lifetime of granted locks to be managed within the MDL subsystem. Furthermore, tickets can now be shared and therefore are used to satisfy multiple lock requests, but only shared locks can be recursive. The problem is that the MDL subsystem morphs lock requests into granted locks locks but does not manage the memory and lifetime of lock requests, and hence, does not manage the memory of granted locks either. This can be problematic because it puts the burden of tracking references on the users of the subsystem and it can't be easily done in transactional contexts where the locks have to be kept around for the duration of a transaction. Another issue is that recursive locks (when the context trying to acquire a lock already holds a lock on the same object) requires that each time the lock is granted, a unique lock request/granted lock structure structure must be kept around until the lock is released. This can lead to memory leaks in transactional contexts as locks taken during the transaction should only be released at the end of the transaction. This also leads to unnecessary wake ups (broadcasts) in the MDL subsystem if the context still holds a equivalent of the lock being released. These issues are exacerbated due to the fact that WL#4284 low-level design says that the implementation should "2) Store metadata locks in transaction memory root, rather than statement memory root" but this is not possible because a memory root, as implemented in mysys, requires all objects allocated from it to be freed all at once. This patch combines review input and significant code contributions from Konstantin Osipov (kostja) and Dmitri Lenev (dlenev). mysql-test/r/mdl_sync.result: Add test case result. mysql-test/t/mdl_sync.test: Add test case for shared lock upgrade case. sql/event_db_repository.cc: Rename mdl_alloc_lock to mdl_request_alloc. sql/ha_ndbcluster_binlog.cc: Use new function names to initialize MDL lock requests. sql/lock.cc: Rename MDL functions. sql/log_event.cc: The MDL request now holds the table and database name data (MDL_KEY). sql/mdl.cc: Move the MDL key to the MDL_LOCK structure in order to make the object suitable for allocation from a fixed-size allocator. This allows the simplification of the lists in the MDL_LOCK object, which now are just two, one for granted tickets and other for waiting (upgraders) tickets. Recursive requests for a shared lock on the same object can now be granted using the same lock ticket. This schema is only used for shared locks because that the only case that matters. This is used to avoid waste of resources in case a context (connection) already holds a shared lock on a object. sql/mdl.h: Introduce a metadata lock object key which is used to uniquely identify lock objects. Separate the structure used to represent pending lock requests from the structure used to represent granted metadata locks. Rename functions used to manipulate locks requests in order to have a more consistent function naming schema. sql/sp_head.cc: Rename mdl_alloc_lock to mdl_request_alloc. sql/sql_acl.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/sql_base.cc: Various changes to accommodate that lock requests are separated from lock tickets (granted locks). sql/sql_class.h: Last acquired lock before the savepoint was set. sql/sql_delete.cc: Various changes to accommodate that lock requests are separated from lock tickets (granted locks). sql/sql_handler.cc: Various changes to accommodate that lock requests are separated from lock tickets (granted locks). sql/sql_insert.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/sql_parse.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/sql_plist.h: Typedef for iterator type. sql/sql_plugin.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/sql_servers.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/sql_show.cc: Various changes to accommodate that lock requests are separated from lock tickets (granted locks). sql/sql_table.cc: Various changes to accommodate that lock requests are separated from lock tickets (granted locks). sql/sql_trigger.cc: Save reference to the lock ticket so it can be downgraded later. sql/sql_udf.cc: Rename alloc_mdl_locks to alloc_mdl_requests. sql/table.cc: Rename mdl_alloc_lock to mdl_request_alloc. sql/table.h: Separate MDL lock requests from lock tickets (granted locks). storage/myisammrg/ha_myisammrg.cc: Rename alloc_mdl_locks to alloc_mdl_requests. |
16 years ago |
|
|
cae6e72a40 |
Backport of:
---------------------------------------------------------- revno: 2617.22.7 committer: Konstantin Osipov <kostja@sun.com> branch nick: mysql-6.0-runtime timestamp: Tue 2009-01-27 16:41:58 +0300 message: WL#4284 "Transactional DDL locking" review. Improve a comment. sql/mdl.cc: Improve a comment. |
16 years ago |
|
|
eef538ab96 |
Backport of (WL#3726)
------------------------------------------------------------ revno: 2630.13.4 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-runtime timestamp: Mon 2008-07-07 19:51:20 +0400 message: Fixed outdated comment describing mdl_init_lock() function. |
16 years ago |
|
|
124cda8a0a |
Backport of:
------------------------------------------------------------ revno: 2630.4.33 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Fri 2008-06-20 17:11:20 +0400 message: WL#3726 "DDL locking for all metadata objects". After-review fixes in progress. Minimized dependency of mdl.cc on other modules (particularly made it independant of mysql_priv.h) in order to be able write unit tests for metadata locking subsystem. sql/ha_ndbcluster_binlog.cc: Use newly introduced MAX_MDLKEY_LENGTH constant for allocating buffer for object key for metadata locking subsystem. sql/log_event.cc: Use newly introduced MAX_MDLKEY_LENGTH constant for allocating buffer for object key for metadata locking subsystem. sql/mdl.cc: Removed dependency on THD class (and thus on mysql_priv.h) by using direct access to members of st_my_thread_var instead of accessing THD::killed/enter_cond()/exit_cond(). sql/mdl.h: Added MAX_MDLKEY_LENGTH constant to be used for allocating buffers for key for metadata locking subsystem. Added declarations of server kernel functions used by metadata locking subsystem to mdl.h in order to decrease dependency of mdl.cc on other files. sql/mysql_priv.h: Moved declaration of notify_thread_having_shared_lock() to the mdl.h (also renamed it to make clear in metadata locking code that it is a callback to SQL-layer). sql/sql_base.cc: Renamed notify_thread_having_shared_lock() to make it clear in metadata locking subsystem code that it is a callback to SQL layer. sql/sql_handler.cc: Use newly introduced MAX_MDLKEY_LENGTH constant for allocating buffer for object key for metadata locking subsystem. sql/sql_show.cc: Use newly introduced MAX_MDLKEY_LENGTH constant for allocating buffer for object key for metadata locking subsystem. |
16 years ago |
|
|
e3b3907c4f |
Backport of:
------------------------------------------------------------ revno: 2630.4.32 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Thu 2008-06-19 16:39:58 +0400 message: WL#3726 "DDL locking for all metadata objects". After-review fixes in progress. Ensure that metadata locking subsystem properly handles out-of-memory conditions. Clarified MDL interface by separating release of locks and removal of lock requests from the context. sql/lock.cc: mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. sql/mdl.cc: Ensured that metadata locking subsystem properly handles out-of-memory conditions. Introduced new MDL_INITIALIZED state for metadata lock request which is used in all cases when lock is not acquired and we have not associated request with object respesenting lock. MDL_PENDING is now only used for requests for exclusive locks which are added to the MDL_LOCK::waiting_exclusive queue. mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and newly introduced mdl_remove_lock() to do this. Also renamed mdl_release_all_locks_for_name() to emphasize that it also actually removes lock requests from the context. Finally mdl_try_acquire_exclusive_lock() is now returs information about encountered lock conflict in separate out parameter since its return value is used for distinguishing between error (e.g. due to OOM) and success. sql/mdl.h: Introduced new MDL_INITIALIZED state for metadata lock request which is used in all cases when lock is not acquired and we have not associated request with object respesenting lock. MDL_PENDING is now only used for requests for exclusive locks which are added to the MDL_LOCK::waiting_exclusive queue. mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and newly introduced mdl_remove_lock() to do this. Also renamed mdl_release_all_locks_for_name() to emphasize that it also actually removes lock requests from the context. Finally mdl_try_acquire_exclusive_lock() is now returs information about encountered lock conflict in separate out parameter since its return value is used for distinguishing between error (e.g. due to OOM) and success. sql/sql_base.cc: mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. Also adjusted open_table() to ensure that it releases/removes metadata locks in case of error after adding/acquiring them (unless keeping these lock requests is required for recovering action). sql/sql_delete.cc: mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. sql/sql_handler.cc: mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. sql/sql_show.cc: mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. sql/sql_table.cc: Renamed mdl_release_all_locks_for_name() to emphasize that it also actually removes lock requests from the context. mdl_release_lock(), mdl_acquire_exclusive_locks() and mdl_try_acquire_exclusive_lock() are no longer responsible for removal of metadata lock requests from the context. One should explicitly call mdl_remove_all_locks() and mdl_remove_lock() to do this. Finally mdl_try_acquire_exclusive_lock() is now returs information about encountered lock conflict in separate out parameter since its return value is used for distinguishing between error (e.g. due to OOM) and success. |
16 years ago |
|
|
f7ba9dafd5 |
Backport of:
------------------------------------------------------------ revno: 2630.9.2 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w3 timestamp: Tue 2008-06-10 18:01:56 +0400 message: WL#3726 "DDL locking for all metadata objects". After review fixes in progress. sql/mdl.cc: Changed mdl_acquire_shared_lock() signature to accept MDL_CONTEXT as one of arguments as described in specification. sql/mdl.h: Changed mdl_acquire_shared_lock() signature to accept MDL_CONTEXT as one of arguments as described in specification. sql/sql_base.cc: Changed mdl_acquire_shared_lock() signature to accept MDL_CONTEXT as one of arguments as described in specification. Renamed handle_failed_open_table_attempt() to recover_from_failed_open_table_attempt() as suggested by review. Added comment clarifying why we need to check TABLE::db_stat while looking at TABLE instances open by other threads. sql/sql_show.cc: Changed mdl_acquire_shared_lock() signature to accept MDL_CONTEXT as one of arguments as described in specification. |
16 years ago |
|
|
d0a1f640db |
Backport of:
------------------------------------------------------------ revno: 2630.4.24 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Fri 2008-06-06 14:28:58 +0400 message: WL#3726 "DDL locking for all metadata objects". After review fixes in progress. Get rid of upgradability and priority attributes of metadata lock requests by replacing them with two new types of lock requests MDL_SHARED_UPGRADABLE and MDL_SHARED_HIGH_PRIO correspondingly. |
16 years ago |
|
|
9d3c934403 |
Backport of:
------------------------------------------------------------ revno: 2630.4.22 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Thu 2008-06-05 22:06:48 +0400 message: WL#3726 "DDL locking for all metadata objects" After review fixes in progress. Moved code checking that current lock request can be satisfied given the current state of individual or global metadata lock to separate well-documented functions. sql/mdl.cc: Moved code. |
16 years ago |
|
|
b05303c132 |
Backport of:
------------------------------------------------------------
revno: 2630.4.18
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w2
timestamp: Tue 2008-06-03 21:07:58 +0400
message:
WL#3726 "DDL locking for all metadata objects".
After review fixes in progress.
Now during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all requests
for this object in the context. This makes API a bit more clear
and makes adjust_mdl_locks_upgradability() much nicer.
sql/lock.cc:
lock_table_names():
Set TABLE_LIST::mdl_lock_data when allocating new metadata
lock request object for table list element.
sql/mdl.cc:
Now during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all
requests for this object in the context. Adjusted upgrade/
downgrade functions accordingly.
We also got rid of mdl_release_exclusive_locks() and
now release locks individually. To simplify this process
mdl_release_all_locks_for_name() was introduced.
sql/mdl.h:
Now during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all
requests for this object in the context. Adjusted upgrade/
downgrade functions accordingly.
We also got rid of mdl_release_exclusive_locks() and
now release locks individually. To simplify this process
mdl_release_all_locks_for_name() was introduced.
sql/sql_base.cc:
Now during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all
requests for this object in the context.
We also got rid of mdl_release_exclusive_locks() and
now release locks individually.
sql/sql_parse.cc:
adjust_mdl_locks_upgradability() is much simplier now due to the
fact that now during upgrading/downgrading metadata locks we
deal with individual metadata lock requests rather than with
all requests for this object in the context.
sql/sql_table.cc:
Now during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all
requests for this object in the context. Adjusted upgrade/
downgrade functions accordingly.
We also got rid of mdl_release_exclusive_locks() and
now release locks individually. To simplify this process
mdl_release_all_locks_for_name() was introduced.
sql/sql_trigger.cc:
ow during upgrading/downgrading metadata locks we deal with
individual metadata lock requests rather than with all
requests for this object in the context.
|
16 years ago |
|
|
e23046d1bc |
Backport of:
------------------------------------------------------------ revno: 2630.4.17 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Thu 2008-05-29 16:52:56 +0400 message: WL#3726 "DDL locking for all metadata objects". After review fixes in progress. "The great correction of names". Renamed MDL_LOCK and MDL_LOCK_DATA classes to make usage of these names in metadata locking subsystem consistent with other parts of server (i.e. thr_lock.cc). Now we MDL_LOCK_DATA corresponds to request for a lock and MDL_LOCK to the lock itself. Adjusted code in MDL subsystem and other places using these classes accordingly. Did similar thing for GLOBAL_MDL_LOCK_DATA class and also changed name of its members to correspond to names of MDL_LOCK_DATA members. Finally got rid of usage of one letter variables in MDL code since it makes code harder to search in (according to reviewer). |
16 years ago |
|
|
de1979d3d6 |
Backport of:
------------------------------------------------------------
revno: 2630.4.10
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Mon 2008-05-26 15:11:26 +0400
message:
WL#3726 "DDL locking for all metadata objects".
After review changes in progress.
Implemented some renames suggested by reviewer.
sql/mdl.cc:
Renamed:
MDL_LOCK_DATA::users -> lock_count
MDL_LOCK_DATA::has_no_other_users() -> has_one_lock()
MDL_LOCK::upgradable -> is_upgradable
Moved variables used in global metadata lock implementation
to separate strucuture.
sql/mdl.h:
Renamed MDL_LOCK::upgradable to is_upgradable.
|
16 years ago |
|
|
eff3780dd8 |
Initial import of WL#3726 "DDL locking for all metadata objects".
Backport of:
------------------------------------------------------------
revno: 2630.4.1
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Fri 2008-05-23 17:54:03 +0400
message:
WL#3726 "DDL locking for all metadata objects".
After review fixes in progress.
------------------------------------------------------------
This is the first patch in series. It transforms the metadata
locking subsystem to use a dedicated module (mdl.h,cc). No
significant changes in the locking protocol.
The import passes the test suite with the exception of
deprecated/removed 6.0 features, and MERGE tables. The latter
are subject to a fix by WL#4144.
Unfortunately, the original changeset comments got lost in a merge,
thus this import has its own (largely insufficient) comments.
This patch fixes Bug#25144 "replication / binlog with view breaks".
Warning: this patch introduces an incompatible change:
Under LOCK TABLES, it's no longer possible to FLUSH a table that
was not locked for WRITE.
Under LOCK TABLES, it's no longer possible to DROP a table or
VIEW that was not locked for WRITE.
******
Backport of:
------------------------------------------------------------
revno: 2630.4.2
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Sat 2008-05-24 14:03:45 +0400
message:
WL#3726 "DDL locking for all metadata objects".
After review fixes in progress.
******
Backport of:
------------------------------------------------------------
revno: 2630.4.3
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Sat 2008-05-24 14:08:51 +0400
message:
WL#3726 "DDL locking for all metadata objects"
Fixed failing Windows builds by adding mdl.cc to the lists
of files needed to build server/libmysqld on Windows.
******
Backport of:
------------------------------------------------------------
revno: 2630.4.4
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Sat 2008-05-24 21:57:58 +0400
message:
WL#3726 "DDL locking for all metadata objects".
Fix for assert failures in kill.test which occured when one
tried to kill ALTER TABLE statement on merge table while it
was waiting in wait_while_table_is_used() for other connections
to close this table.
These assert failures stemmed from the fact that cleanup code
in this case assumed that temporary table representing new
version of table was open with adding to THD::temporary_tables
list while code which were opening this temporary table wasn't
always fulfilling this.
This patch changes code that opens new version of table to
always do this linking in. It also streamlines cleanup process
for cases when error occurs while we have new version of table
open.
******
WL#3726 "DDL locking for all metadata objects"
Add libmysqld/mdl.cc to .bzrignore.
******
Backport of:
------------------------------------------------------------
revno: 2630.4.6
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-6.0-3726-w
timestamp: Sun 2008-05-25 00:33:22 +0400
message:
WL#3726 "DDL locking for all metadata objects".
Addition to the fix of assert failures in kill.test caused by
changes for this worklog.
Make sure we close the new table only once.
.bzrignore:
Add libmysqld/mdl.cc
libmysqld/CMakeLists.txt:
Added mdl.cc to the list of files needed for building of libmysqld.
libmysqld/Makefile.am:
Added files implementing new meta-data locking subsystem to the server.
mysql-test/include/handler.inc:
Use separate connection for waiting while threads performing DDL
operations conflicting with open HANDLER tables reach blocked
state. This is required because now we check and close tables open
by HANDLER statements in this connection conflicting with DDL in
another each time open_tables() is called and thus select from I_S
which is used for waiting will unblock DDL operations if issued
from connection with open HANDLERs.
mysql-test/r/create.result:
Adjusted test case after change in implementation of CREATE TABLE
... SELECT. We no longer have special check in open_table() which
catches the case when we select from the table created. Instead we
rely on unique_table() call which happens after opening and
locking all tables.
mysql-test/r/flush.result:
FLUSH TABLES WITH READ LOCK can no longer happen under LOCK
TABLES. Updated test accordingly.
mysql-test/r/flush_table.result:
Under LOCK TABLES we no longer allow to do FLUSH TABLES for tables
locked for read. Updated test accordingly.
mysql-test/r/handler_innodb.result:
Use separate connection for waiting while threads performing DDL
operations conflicting with open HANDLER tables reach blocked
state. This is required because now we check and close tables open
by HANDLER statements in this connection conflicting with DDL in
another each time open_tables() is called and thus select from I_S
which is used for waiting will unblock DDL operations if issued
from connection with open HANDLERs.
mysql-test/r/handler_myisam.result:
Use separate connection for waiting while threads performing DDL
operations conflicting with open HANDLER tables reach blocked
state. This is required because now we check and close tables open
by HANDLER statements in this connection conflicting with DDL in
another each time open_tables() is called and thus select from I_S
which is used for waiting will unblock DDL operations if issued
from connection with open HANDLERs.
mysql-test/r/information_schema.result:
Additional test for WL#3726 "DDL locking for all metadata
objects". Check that we use high-priority metadata lock requests
when filling I_S tables.
Rearrange tests to match 6.0 better (fewer merge conflicts).
mysql-test/r/kill.result:
Added tests checking that DDL and DML statements waiting for
metadata locks can be interrupted by KILL command.
mysql-test/r/lock.result:
One no longer is allowed to do DROP VIEW under LOCK TABLES even if
this view is locked by LOCK TABLES. The problem is that in such
situation write locks on view are not mutually exclusive so
upgrading metadata lock which is required for dropping of view
will lead to deadlock.
mysql-test/r/partition_column_prune.result:
Update results (same results in 6.0), WL#3726
mysql-test/r/partition_pruning.result:
Update results (same results in 6.0), WL#3726
mysql-test/r/ps_ddl.result:
We no longer invalidate prepared CREATE TABLE ... SELECT statement
if target table changes. This is OK since it is not strictly
necessary.
The first change is wrong, is caused by FLUSH TABLE
now flushing all unused tables. This is a regression that
Dmitri fixed in 6.0 in a follow up patch.
mysql-test/r/sp.result:
Under LOCK TABLES we no longer allow accessing views which were
not explicitly locked. To access view we need to obtain metadata
lock on it and doing this under LOCK TABLES may lead to deadlocks.
mysql-test/r/view.result:
One no longer is allowed to do DROP VIEW under LOCK TABLES even if
this view is locked by LOCK TABLES. The problem is that in such
situation even "write locks" on view are not mutually exclusive so
upgrading metadata lock which is required for dropping of view
will lead to deadlock
mysql-test/r/view_grant.result:
ALTER VIEW implementation was changed to open a view only after
checking that user which does alter has appropriate privileges on
it. This means that in case when user's privileges are
insufficient for this we won't check that new view definer is the
same as original one or user performing alter has SUPER privilege.
Adjusted test case accordingly.
mysql-test/r/view_multi.result:
Added test case for bug#25144 "replication / binlog with view
breaks".
mysql-test/suite/rpl/t/disabled.def:
Disable test for deprecated features (they don't work with new MDL).
mysql-test/t/create.test:
Adjusted test case after change in implementation of CREATE TABLE
... SELECT. We no longer have special check in open_table() which
catches the case when we select from the table created. Instead we
rely on unique_table() call which happens after opening and
locking all tables.
mysql-test/t/disabled.def:
Disable merge.test, subject of WL#4144
mysql-test/t/flush.test:
FLUSH TABLES WITH READ LOCK can no longer happen under LOCK
TABLES. Updated test accordingly.
mysql-test/t/flush_table.test:
Under LOCK TABLES we no longer allow to do FLUSH TABLES for tables
locked for read. Updated test accordingly.
mysql-test/t/information_schema.test:
Additional test for WL#3726 "DDL locking for all metadata
objects". Check that we use high-priority metadata lock requests
when filling I_S tables.
Rearrange the results for easier merges with 6.0.
mysql-test/t/kill.test:
Added tests checking that DDL and DML statements waiting for
metadata locks can be interrupted by KILL command.
mysql-test/t/lock.test:
One no longer is allowed to do DROP VIEW under LOCK TABLES even if
this view is locked by LOCK TABLES. The problem is that in such
situation write locks on view are not mutually exclusive so
upgrading metadata lock which is required for dropping of view
will lead to deadlock.
mysql-test/t/lock_multi.test:
Adjusted test case to the changes of status in various places
caused by change in implementation FLUSH TABLES WITH READ LOCK,
which is now takes global metadata lock before flushing tables and
therefore waits on at these places.
mysql-test/t/ps_ddl.test:
We no longer invalidate prepared CREATE TABLE ... SELECT statement
if target table changes. This is OK since it is not strictly
necessary.
The first change is wrong, is caused by FLUSH TABLE
now flushing all unused tables. This is a regression that
Dmitri fixed in 6.0 in a follow up patch.
mysql-test/t/sp.test:
Under LOCK TABLES we no longer allow accessing views which were
not explicitly locked. To access view we need to obtain metadata
lock on it and doing this under LOCK TABLES may lead to deadlocks.
mysql-test/t/trigger_notembedded.test:
Adjusted test case to the changes of status in various places
caused by change in implementation FLUSH TABLES WITH READ LOCK,
which is now takes global metadata lock before flushing tables and
therefore waits on at these places.
mysql-test/t/view.test:
One no longer is allowed to do DROP VIEW under LOCK TABLES even if
this view is locked by LOCK TABLES. The problem is that in such
situation even "write locks" on view are not mutually exclusive so
upgrading metadata lock which is required for dropping of view
will lead to deadlock.
mysql-test/t/view_grant.test:
ALTER VIEW implementation was changed to open a view only after
checking that user which does alter has appropriate privileges on
it. This means that in case when user's privileges are
insufficient for this we won't check that new view definer is the
same as original one or user performing alter has SUPER privilege.
Adjusted test case accordingly.
mysql-test/t/view_multi.test:
Added test case for bug#25144 "replication / binlog with view
breaks".
sql/CMakeLists.txt:
Added mdl.cc to the list of files needed for building of server.
sql/Makefile.am:
Added files implementing new meta-data locking subsystem to the
server.
sql/event_db_repository.cc:
Allocate metadata lock requests objects (MDL_LOCK) on execution
memory root in cases when TABLE_LIST objects is also allocated
there or on stack.
sql/ha_ndbcluster.cc:
Adjusted code to work nicely with new metadata locking subsystem.
close_cached_tables() no longer has wait_for_placeholder argument.
Instead of relying on this parameter and related behavior FLUSH
TABLES WITH READ LOCK now takes global shared metadata lock.
sql/ha_ndbcluster_binlog.cc:
Adjusted code to work with new metadata locking subsystem.
close_cached_tables() no longer has wait_for_placeholder argument.
Instead of relying on this parameter and related behavior FLUSH
TABLES WITH READ LOCK now takes global shared metadata lock.
sql/handler.cc:
update_frm_version():
Directly update TABLE_SHARE::mysql_version member instead of
going through all TABLE instances for this table (old code was a
legacy from pre-table-definition-cache days).
sql/lock.cc:
Use new metadata locking subsystem. Threw away most of functions
related to name locking as now one is supposed to use metadata
locking API instead. In lock_global_read_lock() and
unlock_global_read_lock() in order to avoid problems with global
read lock sneaking in at the moment when we perform FLUSH TABLES
or ALTER TABLE under LOCK TABLES and when tables being reopened
are protected only by metadata locks we also have to take global
shared meta data lock.
sql/log_event.cc:
Adjusted code to work with new metadata locking subsystem. For
tables open by slave thread for applying RBR events allocate
memory for lock request object in the same chunk of memory as
TABLE_LIST objects for them. In order to ensure that we keep these
objects around until tables are open always close tables before
calling Relay_log_info::clear_tables_to_lock(). Use new auxiliary
Relay_log_info::slave_close_thread_tables() method to enforce
this.
sql/log_event_old.cc:
Adjusted code to work with new metadata locking subsystem. Since
for tables open by slave thread for applying RBR events memory for
lock request object is allocated in the same chunk of memory as
TABLE_LIST objects for them we have to ensure that we keep these
objects around until tables are open. To ensure this we always
close tables before calling
Relay_log_info::clear_tables_to_lock(). To enfore this we use
new auxiliary Relay_log_info::slave_close_thread_tables()
method.
sql/mdl.cc:
Implemented new metadata locking subsystem and API described in
WL3726 "DDL locking for all metadata objects".
sql/mdl.h:
Implemented new metadata locking subsystem and API described in
WL3726 "DDL locking for all metadata objects".
sql/mysql_priv.h:
- close_thread_tables()/close_tables_for_reopen() now has one more
argument which indicates that metadata locks should be released
but not removed from the context in order to be used later in
mdl_wait_for_locks() and tdc_wait_for_old_version().
- close_cached_table() routine is no longer public.
- Thread waiting in wait_while_table_is_used() can be now killed
so this function returns boolean to make caller aware of such
situation.
- We no longer have table cache as separate entity instead used
and unused TABLE instances are linked to TABLE_SHARE objects in
table definition cache.
- Now third argument of open_table() is also used for requesting
table repair or auto-discovery of table's new definition. So its
type was changed from bool to enum.
- Added tdc_open_view() function for opening view by getting its
definition from disk (and table cache in future).
- reopen_name_locked_table() no longer needs "link_in" argument as
now we have exclusive metadata locks instead of dummy TABLE
instances when this function is called.
- find_locked_table() now takes head of list of TABLE instances
instead of always scanning through THD::open_tables list. Also
added find_write_locked_table() auxiliary.
- reopen_tables(), close_cached_tables() no longer have
mark_share_as_old and wait_for_placeholder arguments. Instead of
relying on this parameters and related behavior FLUSH TABLES
WITH READ LOCK now takes global shared metadata lock.
- We no longer need drop_locked_tables() and
abort_locked_tables().
- mysql_ha_rm_tables() now always assume that LOCK_open is not
acquired by caller.
- Added notify_thread_having_shared_lock() callback invoked by
metadata locking subsystem when acquiring an exclusive lock, for
each thread that has a conflicting shared metadata lock.
- Introduced expel_table_from_cache() as replacement for
remove_table_from_cache() (the main difference is that this new
function assumes that caller follows metadata locking protocol
and never waits).
- Threw away most of functions related to name locking. One should
use new metadata locking subsystem and API instead.
sql/mysqld.cc:
Got rid of call initializing/deinitializing table cache since now
it is embedded into table definition cache. Added calls for
initializing/ deinitializing metadata locking subsystem.
sql/rpl_rli.cc:
Introduced auxiliary Relay_log_info::slave_close_thread_tables()
method which is used for enforcing that we always close tables
open for RBR before deallocating TABLE_LIST elements and MDL_LOCK
objects for them.
sql/rpl_rli.h:
Introduced auxiliary Relay_log_info::slave_close_thread_tables()
method which is used for enforcing that we always close tables
open for RBR before deallocating TABLE_LIST elements and MDL_LOCK
objects for them.
sql/set_var.cc:
close_cached_tables() no longer has wait_for_placeholder argument.
Instead of relying on this parameter and related behavior FLUSH
TABLES WITH READ LOCK now takes global shared metadata lock.
sql/sp_head.cc:
For tables added to the statement's table list by prelocking
algorithm we allocate these objects either on the same memory as
corresponding table list elements or on THD::locked_tables_root
(if we are building table list for LOCK TABLES).
sql/sql_acl.cc:
Allocate metadata lock requests objects (MDL_LOCK) on execution
memory root in cases when we use stack TABLE_LIST objects to open
tables. Got rid of redundant code by using unlock_locked_tables()
function.
sql/sql_base.cc:
Changed code to use new MDL subsystem. Got rid of separate table
cache. Now used and unused TABLE instances are linked to the
TABLE_SHAREs in table definition cache.
check_unused():
Adjusted code to the fact that we no longer have separate table
cache. Removed dead code.
table_def_free():
Free TABLE instances referenced from TABLE_SHARE objects before
destroying table definition cache.
get_table_share():
Added assert which ensures that noone will be able to access
table (and its share) without acquiring some kind of metadata
lock first.
close_handle_and_leave_table_as_lock():
Adjusted code to the fact that TABLE instances now are linked to
list in TABLE_SHARE.
list_open_tables():
Changed this function to use table definition cache instead of
table cache.
free_cache_entry():
Unlink freed TABLE elements from the list of all TABLE instances
for the table in TABLE_SHARE.
kill_delayed_thread_for_table():
Added auxiliary for killing delayed insert threads for
particular table.
close_cached_tables():
Got rid of wait_for_refresh argument as we now rely on global
shared metadata lock to prevent FLUSH WITH READ LOCK sneaking in
when we are reopening tables. Heavily reworked this function to
use new MDL code and not to rely on separate table cache entity.
close_open_tables():
We no longer have separate table cache.
close_thread_tables():
Release metadata locks after closing all tables. Added skip_mdl
argument which allows us not to remove metadata lock requests
from the context in case when we are going to use this requests
later in mdl_wait_for_locks() and tdc_wait_for_old_versions().
close_thread_table()/close_table_for_reopen():
Since we no longer have separate table cache and all TABLE
instances are linked to TABLE_SHARE objects in table definition
cache we have to link/unlink TABLE object to/from appropriate
lists in the share.
name_lock_locked_table():
Moved redundant code to find_write_locked_table() function and
adjusted code to the fact that wait_while_table_is_used() can
now return with an error if our thread is killed.
reopen_table_entry():
We no longer need "link_in" argument as with MDL we no longer
call this function with dummy TABLE object pre-allocated and
added to the THD::open_tables. Also now we add newly-open TABLE
instance to the list of share's used TABLE instances.
table_cache_insert_placeholder():
Got rid of name-locking legacy.
lock_table_name_if_not_cached():
Moved to sql_table.cc the only place where it is used. It was
also reimplemented using new MDL API.
open_table():
- Reworked this function to use new MDL subsystem.
- Changed code to deal with table definition cache directly
instead of going through separate table cache.
- Now third argument is also used for requesting table repair
or auto-discovery of table's new definition. So its type was
changed from bool to enum.
find_locked_table()/find_write_locked_table():
Accept head of list of TABLE objects as first argument and use
this list instead of always searching in THD::open_tables list.
Also added auxiliary for finding write-locked locked tables.
reopen_table():
Adjusted function to work with new MDL subsystem and to properly
manuipulate with lists of used/unused TABLE instaces in
TABLE_SHARE.
reopen_tables():
Removed mark_share_as_old parameter. Instead of relying on it
and related behavior FLUSH TABLES WITH READ LOCK now takes
global shared metadata lock. Changed code after removing
separate table cache.
drop_locked_tables()/abort_locked_tables():
Got rid of functions which are no longer needed.
unlock_locked_tables():
Moved this function from sql_parse.cc and changed it to release
memory which was used for allocating metadata lock requests for
tables open and locked by LOCK TABLES.
tdc_open_view():
Intoduced function for opening a view by getting its definition
from disk (and table cache in future).
reopen_table_entry():
Introduced function for opening table definitions while holding
exclusive metatadata lock on it.
open_unireg_entry():
Got rid of this function. Most of its functionality is relocated
to open_table() and open_table_fini() functions, and some of it
to reopen_table_entry() and tdc_open_view(). Also code
resposible for auto-repair and auto-discovery of tables was
moved to separate function.
open_table_entry_fini():
Introduced function which contains common actions which finalize
process of TABLE object creation.
auto_repair_table():
Moved code responsible for auto-repair of table being opened
here.
handle_failed_open_table_attempt()
Moved code responsible for handling failing attempt to open
table to one place (retry due to lock conflict/old version,
auto-discovery and repair).
open_tables():
- Flush open HANDLER tables if they have old version of if there
is conflicting metadata lock against them (before this moment
we had this code in open_table()).
- When we open view which should be processed via derived table
on the second execution of prepared statement or stored
routine we still should call open_table() for it in order to
obtain metadata lock on it and prepare its security context.
- In cases when we discover that some special handling of
failure to open table is needed call
handle_failed_open_table_attempt() which handles all such
scenarios.
open_ltable():
Handling of various special scenarios of failure to open a table
was moved to separate handle_failed_open_table_attempt()
function.
remove_db_from_cache():
Removed this function as it is no longer used.
notify_thread_having_shared_lock():
Added callback which is invoked by MDL subsystem when acquiring
an exclusive lock, for each thread that has a conflicting shared
metadata lock.
expel_table_from_cache():
Introduced function for removing unused TABLE instances. Unlike
remove_table_from_cache() it relies on caller following MDL
protocol and having appropriate locks when calling it and thus
does not do any waiting if table is still in use.
tdc_wait_for_old_version():
Added function which allows open_tables() to wait in cases when
we discover that we should back-off due to presence of old
version of table.
abort_and_upgrade_lock():
Use new MDL calls.
mysql_wait_completed_table():
Got rid of unused function.
open_system_tables_for_read/for_update()/performance_schema_table():
Allocate MDL_LOCK objects on execution memory root in cases when
TABLE_LIST objects for corresponding tables is allocated on
stack.
close_performance_schema_table():
Release metadata locks after closing tables.
******
Use I_P_List for free/used tables list in the table share.
sql/sql_binlog.cc:
Use Relay_log_info::slave_close_thread_tables() method to enforce
that we always close tables open for RBR before deallocating
TABLE_LIST elements and MDL_LOCK objects for them.
sql/sql_class.cc:
Added meta-data locking contexts as part of Open_tables_state
context. Also introduced THD::locked_tables_root memory root
which is to be used for allocating MDL_LOCK objects for tables in
LOCK TABLES statement (end of lifetime for such objects is UNLOCK
TABLES so we can't use statement or execution root for them).
sql/sql_class.h:
Added meta-data locking contexts as part of Open_tables_state
context. Also introduced THD::locked_tables_root memory root
which is to be used for allocating MDL_LOCK objects for tables in
LOCK TABLES statement (end of lifetime for such objects is UNLOCK
TABLES so we can't use statement or execution root for them).
Note: handler_mdl_context and locked_tables_root and
mdl_el_root will be removed by subsequent patches.
sql/sql_db.cc:
mysql_rm_db() does not really need to call remove_db_from_cache()
as it drops each table in the database using
mysql_rm_table_part2(), which performs all necessary operations on
table (definition) cache.
sql/sql_delete.cc:
Use the new metadata locking API for TRUNCATE.
sql/sql_handler.cc:
Changed HANDLER implementation to use new metadata locking
subsystem. Note that MDL_LOCK objects for HANDLER tables are
allocated in the same chunk of heap memory as TABLE_LIST object
for those tables.
sql/sql_insert.cc:
mysql_insert():
find_locked_table() now takes head of list of TABLE object as
its argument instead of always scanning through THD::open_tables
list.
handle_delayed_insert():
Allocate metadata lock request object for table open by delayed
insert thread on execution memroot. create_table_from_items():
We no longer allocate dummy TABLE objects for tables being
created if they don't exist. As consequence
reopen_name_locked_table() no longer has link_in argument.
open_table() now has one more argument which is not relevant for
temporary tables.
sql/sql_parse.cc:
- Moved unlock_locked_tables() routine to sql_base.cc and made
available it in other files. Got rid of some redundant code by
using this function.
- Replaced boolean TABLE_LIST::create member with enum
open_table_type member.
- Use special memory root for allocating MDL_LOCK objects for
tables open and locked by LOCK TABLES (these object should live
till UNLOCK TABLES so we can't allocate them on statement nor
execution memory root). Also properly set metadata lock
upgradability attribure for those tables.
- Under LOCK TABLES it is no longer allowed to flush tables which
are not write-locked as this breaks metadata locking protocol
and thus potentially might lead to deadlock.
- Added auxiliary adjust_mdl_locks_upgradability() function.
sql/sql_partition.cc:
Adjusted code to the fact that reopen_tables() no longer has
"mark_share_as_old" argument. Got rid of comments which are no
longer true.
sql/sql_plist.h:
Added I_P_List template class for parametrized intrusive doubly
linked lists and I_P_List_iterator for corresponding iterator.
Unlike for I_List<> list elements of such list can participate in
several lists. Unlike List<> such lists are doubly-linked and
intrusive.
sql/sql_plugin.cc:
Allocate metadata lock requests objects (MDL_LOCK) on execution
memory root in cases when we use stack TABLE_LIST objects to open
tables.
sql/sql_prepare.cc:
Replaced boolean TABLE_LIST::create member with enum
open_table_type member. This allows easily handle situation in
which instead of opening the table we want only to take exclusive
metadata lock on it.
sql/sql_rename.cc:
Use new metadata locking subsystem in implementation of RENAME
TABLE.
sql/sql_servers.cc:
Allocate metadata lock requests objects (MDL_LOCK) on execution
memory root in cases when we use stack TABLE_LIST objects to open
tables. Got rid of redundant code by using unlock_locked_tables()
function.
sql/sql_show.cc:
Acquire shared metadata lock when we are getting information for
I_S table directly from TABLE_SHARE without doing full-blown table
open. We use high priority lock request in this situation in
order to avoid deadlocks.
Also allocate metadata lock requests objects (MDL_LOCK) on
execution memory root in cases when TABLE_LIST objects are also
allocated there
sql/sql_table.cc:
mysql_rm_table():
Removed comment which is no longer relevant.
mysql_rm_table_part2():
Now caller of mysql_ha_rm_tables() should not own LOCK_open.
Adjusted code to use new metadata locking subsystem instead of
name-locks.
lock_table_name_if_not_cached():
Moved this function from sql_base.cc to this file and
reimplemented it using metadata locking API.
mysql_create_table():
Adjusted code to use new MDL API.
wait_while_table_is_used():
Changed function to use new MDL subsystem. Made thread waiting
in it killable (this also led to introduction of return value so
caller can distinguish successful executions from situations
when waiting was aborted).
close_cached_tables():
Thread waiting in this function is killable now. As result it
has return value for distinguishing between succes and failure.
Got rid of redundant boradcast_refresh() call.
prepare_for_repair():
Use MDL subsystem instead of name-locks.
mysql_admin_table():
mysql_ha_rm_tables() now always assumes that caller doesn't own
LOCK_open.
mysql_repair_table():
We should mark all elements of table list as requiring
upgradable metadata locks.
mysql_create_table_like():
Use new MDL subsystem instead of name-locks.
create_temporary_tables():
We don't need to obtain metadata locks when creating temporary
table.
mysql_fast_or_online_alter_table():
Thread waiting in wait_while_table_is_used() is now killable.
mysql_alter_table():
Adjusted code to work with new MDL subsystem and to the fact
that threads waiting in what_while_table_is_used() and
close_cached_table() are now killable.
sql/sql_test.cc:
We no longer have separate table cache. TABLE instances are now
associated with/linked to TABLE_SHARE objects in table definition
cache.
sql/sql_trigger.cc:
Adjusted code to work with new metadata locking subsystem. Also
reopen_tables() no longer has mark_share_as_old argument (Instead
of relying on this parameter and related behavior FLUSH TABLES
WITH READ LOCK now takes global shared metadata lock).
sql/sql_udf.cc:
Allocate metadata lock requests objects (MDL_LOCK) on execution
memory root in cases when we use stack TABLE_LIST objects to open
tables.
sql/sql_update.cc:
Adjusted code to work with new meta-data locking subsystem.
sql/sql_view.cc:
Added proper meta-data locking to implementations of
CREATE/ALTER/DROP VIEW statements. Now we obtain exclusive
meta-data lock on a view before creating/ changing/dropping it.
This ensures that all concurrent statements that use this view
will finish before our statement will proceed and therefore we
will get correct order of statements in the binary log.
Also ensure that TABLE_LIST::mdl_upgradable attribute is properly
propagated for underlying tables of view.
sql/table.cc:
Added auxiliary alloc_mdl_locks() function for allocating metadata
lock request objects for all elements of table list.
sql/table.h:
TABLE_SHARE:
Got rid of unused members. Introduced members for storing lists
of used and unused TABLE objects for this share.
TABLE:
Added members for linking TABLE objects into per-share lists of
used and unused TABLE instances. Added member for holding
pointer to metadata lock for this table.
TABLE_LIST:
Replaced boolean TABLE_LIST::create member with enum
open_table_type member. This allows easily handle situation in
which instead of opening the table we want only to take
exclusive meta-data lock on it (we need this in order to handle
ALTER VIEW and CREATE VIEW statements).
Introduced new mdl_upgradable member for marking elements of
table list for which we need to take upgradable shared metadata
lock instead of plain shared metadata lock. Added pointer for
holding pointer to MDL_LOCK for the table.
Added auxiliary alloc_mdl_locks() function for allocating metadata
lock requests objects for all elements of table list. Added
auxiliary set_all_mdl_upgradable() function for marking all
elements in table list as requiring upgradable metadata locks.
storage/myisammrg/ha_myisammrg.cc:
Allocate MDL_LOCK objects for underlying tables of MERGE table.
To be reworked once Ingo pushes his patch for WL4144.
|
16 years ago |