[debian-mysql] Bug#862103: mariadb-server-10.1: MariaDB crash after throwing an instance of 'std::out_of_range'
Ondřej Surý
ondrej at sury.org
Mon May 8 15:23:16 UTC 2017
Hi Sam,
thanks for the heads-up and for the link to the patch - it applies
cleanly (after whitespace fixes) to MariaDB 10.1.23, so I am just
building 10.1.23-5 with the patch applied.
Cheers,
--
Ondřej Surý <ondrej at sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server
Knot Resolver (https://www.knot-resolver.cz/) – secure, privacy-aware,
fast DNS(SEC) resolver
Vše pro chleba (https://vseprochleba.cz) – Mouky ze mlýna a potřeby pro
pečení chleba všeho druhu
On Mon, May 8, 2017, at 16:32, Sam D. wrote:
> Package: mariadb-server-10.1
> Version: 10.1.22-3
> Severity: grave
> Tags: newcomer upstream
> Justification: causes non-serious data loss
>
> Dear Maintainer,
>
> A critical MySQL bug was discovered in InnoDB storage engine (related to
> statistics calculation) some weeks ago.
>
> This bug affects MariaDB 10.1 as well and is present in the current
> Debian Stretch (MariaDB 10.1.22) package
> [mariadb Ver 15.1 Distrib 10.1.22-MariaDB, for debian-linux-gnu (x86_64)
> using readline 5.2].
>
> Seems to also affect the unstable 10.1.23-3 package.
>
> MariaDB crash very often on many of our server, from many times daily to
> many times hourly.
>
> The bug (and fix) is well described here :
>
> https://bugs.mysql.com/bug.php?id=84940 (rated serious)
>
> and here
>
> https://jira.mariadb.org/browse/MDEV-12281 (rated critical)
>
> The bug come from a missing bracket in the InnoDB Stats code and a patch
> is available here :
>
> https://github.com/mysql/mysql-server/commit/0241e1c1b216d87050cdfcb4531ffc17f9eb1dc7
>
> Data corruption in InnoDB tables may occur as a side effect.
>
>
> Typical Error/crash log :
>
> -------------------------------------------------------------------------------------------
>
> Version: '10.1.22-MariaDB-' socket: '/var/run/mysqld/mysqld.sock' port:
> 3306 Debian 9.0
> terminate called after throwing an instance of 'std::out_of_range'
> what(): vector::_M_range_check: __n (which is 4294967295) >=
> this->size() (which is 0)
> 170508 13:55:21 [ERROR] mysqld got signal 6 ;
> This could be because you hit a bug. It is also possible that this binary
> or one of the libraries it was linked against is corrupt, improperly
> built,
> or misconfigured. This error can also be caused by malfunctioning
> hardware.
>
> To report this bug, see https://mariadb.com/kb/en/reporting-bugs
>
> We will try our best to scrape up some info that will hopefully help
> diagnose the problem, but since we have already crashed,
> something is definitely wrong and this may fail.
>
> Server version: 10.1.22-MariaDB-
> key_buffer_size=16777216
> read_buffer_size=131072
> max_used_connections=5
> max_threads=386
> thread_count=2
> It is possible that mysqld could use up to
> key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads =
> 864227 K bytes of memory
> Hope that's ok; if not, decrease some variables in the equation.
>
> Thread pointer: 0x0
> Attempting backtrace. You can use the following information to find out
> where mysqld died. If you see no messages after this, something went
> terribly wrong...
> stack_bottom = 0x0 thread_stack 0x30000
> /usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x5607ce9d50ce]
> /usr/sbin/mysqld(handle_fatal_signal+0x3bd)[0x5607ce51e50d]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x110c0)[0x7feadffc90c0]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcf)[0x7feade8c4fcf]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7feade8c63fa]
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x15d)[0x7feadefc50ad]
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8f066)[0x7feadefc3066]
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8f0b1)[0x7feadefc30b1]
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8f2c9)[0x7feadefc32c9]
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZSt24__throw_out_of_range_fmtPKcz+0xf5)[0x7feadefebb85]
> /usr/sbin/mysqld(+0x9ace97)[0x5607ce931e97]
> /usr/sbin/mysqld(+0x9b07f4)[0x5607ce9357f4]
> /usr/sbin/mysqld(+0x9b4626)[0x5607ce939626]
> /usr/sbin/mysqld(+0x9b5d19)[0x5607ce93ad19]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494)[0x7feadffbf494]
> /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7feade97a93f]
> The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html
> contains
> information that should help you find out what is causing the crash.
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Using mutexes to ref
> count buffer pool pages
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: The InnoDB memory heap
> is disabled
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Mutexes and rw_locks
> use GCC atomic builtins
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: GCC builtin
> __atomic_thread_fence() is used for memory barrier
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Compressed tables use
> zlib 1.2.8
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Using Linux native AIO
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Using SSE crc32
> instructions
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Initializing buffer
> pool, size = 2.0G
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Completed
> initialization of buffer pool
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Highest supported file
> format is Barracuda.
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Starting crash
> recovery from checkpoint LSN=195680453668
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Restoring possible
> half-written data pages from the doublewrite buffer...
> InnoDB: 1 transaction(s) which must be rolled back or cleaned up
> InnoDB: in total 1 row operations to undo
> InnoDB: Trx id counter is 100954368
> 2017-05-08 13:55:27 140012981801536 [Note] InnoDB: Starting final batch
> to recover 107 pages from redo log
> 2017-05-08 13:55:28 140012981801536 [Note] InnoDB: 128 rollback
> segment(s) are active.
> InnoDB: Starting in background the rollback of uncommitted transactions
> 2017-05-08 13:55:28 7f56ab3fe700 InnoDB: Rolling back trx with id
> 100953855, 1 rows to undo
> 2017-05-08 13:55:28 140012981801536 [Note] InnoDB: Waiting for purge to
> start
> 2017-05-08 13:55:28 140010217006848 [Note] InnoDB: Rollback of trx with
> id 100953855 completed
> 2017-05-08 13:55:28 7f56ab3fe700 InnoDB: Rollback of non-prepared
> transactions completed
> 2017-05-08 13:55:28 140012981801536 [Note] InnoDB: Percona XtraDB
> (http://www.percona.com) 5.6.35-80.0 started; log sequence number
> 195733664191
> 2017-05-08 13:55:28 140012981801536 [Note] Plugin 'FEEDBACK' is disabled.
> 2017-05-08 13:55:28 140010124715776 [Note] InnoDB: Dumping buffer pool(s)
> not yet started
> 2017-05-08 13:55:28 140012981801536 [Note] Recovering after a crash using
> tc.log
> 2017-05-08 13:55:28 140012981801536 [Note] Starting crash recovery...
> 2017-05-08 13:55:28 140012981801536 [Note] Crash recovery finished.
> 2017-05-08 13:55:28 140012981801536 [Note] Server socket created on IP:
> '127.0.0.1'.
> 2017-05-08 13:55:28 140012981801536 [Note] /usr/sbin/mysqld: ready for
> connections.
>
> -------------------------------------------------------------------------------------
>
> It's my first bug report here, sorry if I miss something.
>
>
>
> -- System Information:
> Debian Release: 9.0
> APT prefers testing
> APT policy: (500, 'testing')
> Architecture: amd64
> (x86_64)
>
> Kernel: Linux 4.9.0-2-amd64 (SMP w/8 CPU cores)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> Versions of packages mariadb-server-10.1 depends on:
> ii adduser 3.115
> ii debconf [debconf-2.0] 1.5.60
> ii galera-3 [galera-3] 25.3.20-stretch
> ii gawk 1:4.1.4+dfsg-1
> ii init-system-helpers 1.48
> ii iproute2 4.9.0-1
> ii libaio1 0.3.110-3
> ii libc6 2.24-10
> ii libdbi-perl 1.636-1+b1
> ii libpam0g 1.1.8-3.5
> ii libstdc++6 6.3.0-16
> ii lsb-base 9.20161125
> ii lsof 4.89+dfsg-0.1
> ii mariadb-client-10.1 10.1.22-3
> ii mariadb-common 10.1.23+maria-1~stretch
> ii mariadb-server-core-10.1 10.1.22-3
> ii passwd 1:4.4-4
> ii perl 5.24.1-2
> ii psmisc 22.21-2.1+b2
> ii rsync 3.1.2-1
> ii socat 1.7.3.1-2+b1
> ii zlib1g 1:1.2.8.dfsg-5
>
> Versions of packages mariadb-server-10.1 recommends:
> ii libhtml-template-perl 2.95-2
>
> Versions of packages mariadb-server-10.1 suggests:
> ii bsd-mailx [mailx] 8.1.2-0.20160123cvs-4
> pn mariadb-test <none>
> pn netcat-openbsd <none>
> pn tinyca <none>
>
> -- Configuration Files:
> /etc/mysql/mariadb.conf.d/50-server.cnf changed:
> [server]
> [mysqld]
> user = mysql
> pid-file = /var/run/mysqld/mysqld.pid
> socket = /var/run/mysqld/mysqld.sock
> port = 3306
> basedir = /usr
> datadir = /var/lib/mysql
> tmpdir = /tmp
> lc-messages-dir = /usr/share/mysql
> skip-external-locking
> bind-address = 127.0.0.1
> key_buffer_size = 16M
> max_allowed_packet = 16M
> thread_stack = 192K
> thread_cache_size = 8
> myisam_recover_options = BACKUP
> max_connections = 384
> query_cache_limit = 1M
> query_cache_size = 16M
> log_error = /var/log/mysql/error.log
> slow_query_log = 1
> slow_query_log_file = /var/log/mysql/mariadb-slow.log
> long_query_time = 2
> log_slow_rate_limit = 1000
> log_slow_verbosity = query_plan
> expire_logs_days = 10
> max_binlog_size = 100M
> innodb_buffer_pool_size = 2048M
> character-set-server = utf8mb4
> collation-server = utf8mb4_general_ci
> [embedded]
> [mariadb]
> [mariadb-10.1]
>
>
> -- debconf information excluded
>
More information about the pkg-mysql-maint
mailing list