Package: mysql-server-5.6
Version: 5.6.25-3
Severity: important

Hi,

When my.cnf contains an unsupported option (maybe because a previous
version supported it [like log-slow-queries]), mysqld exits immediately.

However, mysqld_safe does not report back that error, and returns a
success exit code.

Steps to reproduce:

% sudo vim /etc/mysql/my.cnf
# add an unknown option like log-slow-queries = /tmp/mysql.slow
% sudo env -i mysqld_safe --log-error=error.log
150907 09:52:52 mysqld_safe Can't log to error log and syslog at the same time. 
 Remove all --log-error configuration options for --syslog to take effect.
150907 09:52:52 mysqld_safe Logging to '/var/lib/mysql/error.log'.
150907 09:52:52 mysqld_safe Starting mysqld daemon with databases from 
/var/lib/mysql
150907 09:52:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid 
ended
% echo $?
0
% ls error.log
ls: cannot access error.log: No such file or directory
% tail /var/log/{mysql.err,mysql/error.log}
==> /var/log/mysql.err <==

==> /var/log/mysql/error.log <==
% # Give up, run mysql directly
% sudo env -i `which mysqld`
2015-09-07 09:55:17 0 [Warning] Using unique option prefix key_buffer instead 
of key_buffer_size is deprecated and will be removed in a future release. 
Please use the full name instead.
2015-09-07 09:55:17 0 [Warning] TIMESTAMP with implicit DEFAULT value is 
deprecated. Please use --explicit_defaults_for_timestamp server option (see 
documentation for more details).
2015-09-07 09:55:17 0 [Note] /usr/sbin/mysqld (mysqld 5.6.25-3) starting as 
process 16342 ...
% echo $?
7
% # Huh, why did this fail
% sudo env -i `which mysqld` --verbose            
2015-09-07 09:56:38 0 [Warning] Using unique option prefix key_buffer instead 
of key_buffer_size is deprecated and will be removed in a future release. 
Please use the full name instead.
2015-09-07 09:56:38 0 [Warning] TIMESTAMP with implicit DEFAULT value is 
deprecated. Please use --explicit_defaults_for_timestamp server option (see 
documentation for more details).
2015-09-07 09:56:38 0 [Note] /usr/sbin/mysqld (mysqld 5.6.25-3) starting as 
process 16411 ...
2015-09-07 09:56:38 16411 [Warning] Using unique option prefix myisam-recover 
instead of myisam-recover-options is deprecated and will be removed in a future 
release. Please use the full name instead.
2015-09-07 09:56:38 16411 [Note] Plugin 'FEDERATED' is disabled.
2015-09-07 09:56:38 16411 [ERROR] Function 'innodb' already exists
2015-09-07 09:56:38 16411 [Warning] Couldn't load plugin named 'innodb' with 
soname 'ha_innodb.so'.
2015-09-07 09:56:38 16411 [ERROR] Function 'federated' already exists
2015-09-07 09:56:38 16411 [Warning] Couldn't load plugin named 'federated' with 
soname 'ha_federated.so'.
2015-09-07 09:56:38 16411 [ERROR] Function 'blackhole' already exists
2015-09-07 09:56:38 16411 [Warning] Couldn't load plugin named 'blackhole' with 
soname 'ha_blackhole.so'.
2015-09-07 09:56:38 16411 [ERROR] Function 'archive' already exists
2015-09-07 09:56:38 16411 [Warning] Couldn't load plugin named 'archive' with 
soname 'ha_archive.so'.
2015-09-07 09:56:38 16411 [Note] InnoDB: Using atomics to ref count buffer pool 
pages
2015-09-07 09:56:38 16411 [Note] InnoDB: The InnoDB memory heap is disabled
2015-09-07 09:56:38 16411 [Note] InnoDB: Mutexes and rw_locks use GCC atomic 
builtins
2015-09-07 09:56:38 16411 [Note] InnoDB: Memory barrier is not used
2015-09-07 09:56:38 16411 [Note] InnoDB: Compressed tables use zlib 1.2.8
2015-09-07 09:56:38 16411 [Note] InnoDB: Using Linux native AIO
2015-09-07 09:56:38 16411 [Note] InnoDB: Using CPU crc32 instructions
2015-09-07 09:56:38 16411 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-09-07 09:56:38 16411 [Note] InnoDB: Completed initialization of buffer pool
2015-09-07 09:56:38 16411 [Note] InnoDB: Highest supported file format is 
Barracuda.
2015-09-07 09:56:38 16411 [Note] InnoDB: 128 rollback segment(s) are active.
2015-09-07 09:56:38 16411 [Note] InnoDB: Waiting for purge to start
2015-09-07 09:56:38 16411 [Note] InnoDB: 5.6.25 started; log sequence number 
4067979378
2015-09-07 09:56:38 16411 [ERROR] /usr/sbin/mysqld: unknown variable 
'log-slow-queries=/tmp/mysql.slow'
2015-09-07 09:56:38 16411 [ERROR] Aborting

2015-09-07 09:56:38 16411 [Note] Binlog end
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'partition'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'ARCHIVE'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_FT_DELETED'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 
'INNODB_FT_DEFAULT_STOPWORD'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_METRICS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 
'INNODB_CMP_PER_INDEX_RESET'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_CMPMEM'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_CMP'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_LOCKS'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'INNODB_TRX'
2015-09-07 09:56:38 16411 [Note] Shutting down plugin 'InnoDB'
2015-09-07 09:56:38 16411 [Note] InnoDB: FTS optimize thread exiting.
2015-09-07 09:56:38 16411 [Note] InnoDB: Starting shutdown...
2015-09-07 09:56:40 16411 [Note] InnoDB: Shutdown completed; log sequence 
number 4067979388
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'BLACKHOLE'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'CSV'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'MyISAM'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'MRG_MYISAM'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'MEMORY'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'sha256_password'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'mysql_old_password'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'mysql_native_password'
2015-09-07 09:56:40 16411 [Note] Shutting down plugin 'binlog'
2015-09-07 09:56:40 16411 [Note] /usr/sbin/mysqld: Shutdown complete


===

So, there are a two things going on wrong here:

1. mysqld_safe does not report back the unsucessful return value from
   mysqld
2. mysqld decides that a fatal error is not worth reporting unless
   --verbose is given

This leads to extra problems because:
3. The unit file tries to connect to the server but it does not check if
   the server is running first, and thus waits 90 seconds before failing.
4. Neither the systemd nor the mysql logs show why the start fails
   (or the apt output either, for that matter).




-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.1.0-2-amd64 (SMP w/4 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 mysql-server-5.6 depends on:
ii  adduser                3.113+nmu3
ii  debconf [debconf-2.0]  1.5.57
ii  init-system-helpers    1.23
ii  initscripts            2.88dsf-59.2
ii  libaio1                0.3.110-1
ii  libc6                  2.19-19
ii  libdbi-perl            1.633-1
ii  libgcc1                1:5.2.1-16
ii  libstdc++6             5.2.1-16
ii  libwrap0               7.6.q-25
ii  lsb-base               4.1+Debian14
ii  mysql-client-5.6       5.6.25-3
ii  mysql-common           5.6.25-3
ii  mysql-server-core-5.6  5.6.25-3
ii  passwd                 1:4.2-3
ii  perl                   5.20.2-6
ii  psmisc                 22.21-2.1
ii  zlib1g                 1:1.2.8.dfsg-2+b1

Versions of packages mysql-server-5.6 recommends:
ii  libhtml-template-perl  2.95-2

Versions of packages mysql-server-5.6 suggests:
ii  heirloom-mailx [mailx]  12.5-5
ii  tinyca                  0.7.5-5

-- debconf information:
* mysql-server/error_setting_password:
  mysql-server-5.6/postrm_remove_databases: false
  mysql-server-5.6/start_on_boot: true
  mysql-server-5.6/really_downgrade: false
  mysql-server/password_mismatch:
  mysql-server/no_upgrade_when_using_ndb:
  mysql-server-5.6/nis_warning:

Reply via email to