Package: mysql-server-8.0
Version: 8.0.30-1+b2
Severity: normal

On my systems, I use libpam-tmpdir, which provides each user with a
private temporary directory owned and accessible only by them under
/tmp/user/UID (e.g., /tmp/user/1000).  PAM sets the TMPDIR variable to
this value upon creating a session.

When I upgrade mysql-server-8.0, it is obviously as root, so TMPDIR is
set to /tmp/user/0.  This value does not work since MySQL doesn't run as
root, and so MySQL fails to start after upgrade in such a configuration,
like so:

  2022-09-28T19:02:43.113663Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld 
(mysqld 8.0.30-1) starting as process 134423
  2022-09-28T19:02:43.156068Z 1 [System] [MY-011012] [Server] Starting upgrade 
of data directory.
  2022-09-28T19:02:43.156091Z 1 [System] [MY-013576] [InnoDB] InnoDB 
initialization has started.
  mysqld: Can't create/write to file '/tmp/user/0/ibafhFAQ' (OS errno 13 - 
Permission denied)
  2022-09-28T19:02:44.224787Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create 
temporary file inside "/tmp/user/0"; errno: 13
  2022-09-28T19:02:44.224823Z 1 [ERROR] [MY-012930] [InnoDB] Plugin 
initialization aborted with error Generic error.
  2022-09-28T19:02:44.224856Z 1 [ERROR] [MY-011013] [Server] Failed to 
initialize DD Storage Engine.
  2022-09-28T19:02:44.225102Z 0 [ERROR] [MY-010020] [Server] Data Dictionary 
initialization failed.
  2022-09-28T19:02:44.225217Z 0 [ERROR] [MY-010119] [Server] Aborting
  2022-09-28T19:02:44.226017Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: 
Shutdown complete (mysqld 8.0.30-1)  (Debian).
  2022-10-17T13:26:08.726136Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld 
(mysqld 8.0.30-1+b1) starting as process 36399
  2022-10-17T13:26:08.755895Z 1 [System] [MY-013576] [InnoDB] InnoDB 
initialization has started.
  mysqld: Can't create/write to file '/tmp/user/0/ibJujAnM' (OS errno 13 - 
Permission denied)
  2022-10-17T13:26:09.299586Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create 
temporary file inside "/tmp/user/0"; errno: 13
  2022-10-17T13:26:09.299605Z 1 [ERROR] [MY-012930] [InnoDB] Plugin 
initialization aborted with error Generic error.
  2022-10-17T13:26:09.299625Z 1 [ERROR] [MY-010334] [Server] Failed to 
initialize DD Storage Engine
  2022-10-17T13:26:09.299737Z 0 [ERROR] [MY-010020] [Server] Data Dictionary 
initialization failed.
  2022-10-17T13:26:09.299751Z 0 [ERROR] [MY-010119] [Server] Aborting
  2022-10-17T13:26:09.300393Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: 
Shutdown complete (mysqld 8.0.30-1+b1)  (Debian).
  2022-11-09T21:40:40.722163Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld 
(mysqld 8.0.30-1+b2) starting as process 110969
  2022-11-09T21:40:40.731948Z 1 [System] [MY-013576] [InnoDB] InnoDB 
initialization has started.
  mysqld: Can't create/write to file '/tmp/user/0/iby1UOtJ' (OS errno 13 - 
Permission denied)
  2022-11-09T21:40:41.516120Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create 
temporary file inside "/tmp/user/0"; errno: 13
  2022-11-09T21:40:41.516155Z 1 [ERROR] [MY-012930] [InnoDB] Plugin 
initialization aborted with error Generic error.
  2022-11-09T21:40:41.516191Z 1 [ERROR] [MY-010334] [Server] Failed to 
initialize DD Storage Engine
  2022-11-09T21:40:41.516337Z 0 [ERROR] [MY-010020] [Server] Data Dictionary 
initialization failed.
  2022-11-09T21:40:41.516362Z 0 [ERROR] [MY-010119] [Server] Aborting
  2022-11-09T21:40:41.517553Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: 
Shutdown complete (mysqld 8.0.30-1+b2)  (Debian).

It's probably appropriate to sanitize the environment somewhat before
starting MySQL to avoid this problem.  For example, in my testing, `sudo
env -u TMPDIR dpkg-reconfigure mysql-server-8.0` causes the server to
restart properly, but there may be other environment variables that may
result in undesired behaviour.

Note that all of this is from another system, so none of the usual
information is relevant below.

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

Kernel: Linux 6.0.0-2-amd64 (SMP w/20 CPU threads; PREEMPT)
Kernel taint flags: TAINT_USER, TAINT_WARN
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_CA:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages mysql-server-8.0 depends on:
ii  adduser                    3.129
ii  debconf [debconf-2.0]      1.5.79
pn  mysql-client-8.0           <none>
ii  mysql-common               5.8+1.0.8
pn  mysql-server-core-8.0      <none>
ii  passwd                     1:4.12.3+dfsg1-3
ii  perl                       5.36.0-4
ii  psmisc                     23.5-3
ii  sysvinit-utils [lsb-base]  3.05-6

Versions of packages mysql-server-8.0 recommends:
pn  libhtml-template-perl  <none>
pn  mecab-ipadic-utf8      <none>

Versions of packages mysql-server-8.0 suggests:
ii  bsd-mailx [mailx]  8.1.2-0.20220412cvs-1
pn  tinyca             <none>

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

Attachment: signature.asc
Description: PGP signature

Reply via email to