Bug #109138 Assertion failure: os0file.cc:2872
Submitted: 18 Nov 2022 16:24 Modified: 18 Nov 2022 16:33
Reporter: James Reason Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:8.0.30 OS:Ubuntu (22.04.4)
Assigned to: CPU Architecture:Any

[18 Nov 2022 16:24] James Reason
Description:
I have a Windows 11 system running a Ubuntu 20.04.4 VM.
On the VM i am using docker.

I intially tried to up upgrade MySQL from version 8.0.28 to 8.0.31 but this failed. I then opted to upgrade version by version.
I was successfully able to upgrade to 8.0.29 but cannot upgrade to 8.0.30 or 8.0.31.

2022-11-18 15:53:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
2022-11-18T15:53:09.862027Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2022-11-18T15:53:09.896643Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
2022-11-18T15:53:09.896868Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2022-11-18T15:53:09.925179Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
2022-11-18T15:53:09.927483Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2022-11-18T15:53:09.958555Z 0 [Warning] [MY-000054] [Server] World-writable config file '/var/lib/mysql/auto.cnf' is ignored.
2022-11-18T15:53:09.959054Z 0 [Warning] [MY-010107] [Server] World-writable config file '/var/lib/mysql/auto.cnf' has been removed.
2022-11-18T15:53:09.962407Z 0 [Warning] [MY-010075] [Server] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 19b86381-6759-11ed-96b0-0242ac120004.
2022-11-18T15:53:09.981746Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-11-18T15:53:11.369684Z 1 [ERROR] [MY-013183] [InnoDB] Assertion failure: os0file.cc:2872 thread 140284105365248
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
15:53:11 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7d5c080
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 = 7f9670448ca0 thread_stack 0x100000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x41) [0x204b091]
/usr/sbin/mysqld(print_fatal_signal(int)+0x2df) [0xf31b9f]
/usr/sbin/mysqld(my_server_abort()+0x7e) [0xf31cee]
/usr/sbin/mysqld(my_abort()+0xe) [0x2044f6e]
/usr/sbin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x33a) [0x2342d5a]
/usr/sbin/mysqld() [0x2236aa4]
/usr/sbin/mysqld(os_file_flush_func(int)+0x28) [0x2237008]
/usr/sbin/mysqld() [0x21ee19d]
/usr/sbin/mysqld(log_mark_file_as_in_use(Log_files_context const&, unsigned long)+0x60) [0x21ee550]
/usr/sbin/mysqld() [0x21e5dc5]
/usr/sbin/mysqld(log_files_create(log_t&, unsigned long, unsigned long&)+0x1e8) [0x21e67f8]
/usr/sbin/mysqld(log_sys_init(bool, unsigned long, unsigned long&)+0x363b) [0x21fca0b]
/usr/sbin/mysqld(srv_start(bool)+0x1366) [0x22f48b6]
/usr/sbin/mysqld() [0x2136775]
/usr/sbin/mysqld(dd::bootstrap::DDSE_dict_init(THD*, dict_init_mode_t, unsigned int)+0x9e) [0x1df064e]
/usr/sbin/mysqld(dd::upgrade_57::do_pre_checks_and_initialize_dd(THD*)+0x1a4) [0x201d4d4]
/usr/sbin/mysqld() [0xff9946]
/usr/sbin/mysqld() [0x25dbf19]
/lib64/libpthread.so.0(+0x81df) [0x7f967e88e1df]
/lib64/libc.so.6(clone+0x43) [0x7f967ce3edd3]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): Connection ID (thread ID): 1
Status: NOT_KILLED

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.

How to repeat:
docker-compose up

  mysqltms:
      image: mysql:8.0.30
      hostname: mysqltms
      ports:
       - "6603:3306"
      environment:
        - MYSQL_ROOT_PASSWORD=rootpass
        - MYSQL_USER=db_user
        - MYSQL_PASSWORD=xxxx
      volumes:
        - './deploy/mysql:/var/lib/mysql'
        - './deploy/logs/mysql:/var/log'
        - './deploy:/app'
      command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION --default-authentication-plugin=mysql_native_password
      restart: always
      #needed to for permissions to access host files
      user: '1000'
[18 Nov 2022 16:33] MySQL Verification Team
Hi Mr. Reason,

Thank you for your bug report.

We have tried upgrading our installation from 8.0.28 to 8.0.31 with both methods. We tried direct upgrade from 8.0.28 to 8.031 and step-by-step from release to release up to 8.0.31.

All of those worked just fine .....

We recommend that you try direct update 8.0.28 -> 8.0.31, because 8.0.29 and 8.0.30 have number of bugs in upgrade.

Do note, also that your settings might be at fault, because many settings have been deprecated in 8.0.31.

Hence, we can not repeat your bug report.

Please, read carefully all release notes from 8.0.28 up to 8.0.31 for further instructions. You will find them on http://dev.mysql.com.

Can't repeat.