[MDEV-13813]  Assertion `size % 512U == 0' failed in log_crypt upon upgrade from 10.2 Created: 2017-09-15  Updated: 2017-09-15  Resolved: 2017-09-15

Status: Closed
Project: MariaDB Server
Component/s: Encryption, Storage Engine - InnoDB
Affects Version/s: 10.3.2
Fix Version/s: 10.3.2

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-13318 Crash recovery failure after the serv... Closed

 Description   

10.3 c8cba4af553d863a93

2017-09-15 15:18:10 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-09-15 15:18:10 0 [Note] InnoDB: Uses event mutexes
2017-09-15 15:18:10 0 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-09-15 15:18:10 0 [Note] InnoDB: Using Linux native AIO
2017-09-15 15:18:10 0 [Note] InnoDB: Number of pools: 1
2017-09-15 15:18:10 0 [Note] InnoDB: Using SSE2 crc32 instructions
2017-09-15 15:18:10 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2017-09-15 15:18:10 0 [Note] InnoDB: Completed initialization of buffer pool
2017-09-15 15:18:10 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
mysqld: /data/src/10.3/storage/innobase/log/log0crypt.cc:114: void log_crypt(byte*, lsn_t, ulint, bool): Assertion `size % 512U == 0' failed.
170915 15:18:10 [ERROR] mysqld got signal 6 ;

#7  0x00007fe65f90cee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x00005608e116bdde in log_crypt (buf=0x7fe63999f200 "", lsn=512, size=1, decrypt=false) at /data/src/10.3/storage/innobase/log/log0crypt.cc:114
#9  0x00005608e115ec47 in recv_log_recover_10_2 () at /data/src/10.3/storage/innobase/log/log0recv.cc:949
#10 0x00005608e115f2ac in recv_find_max_checkpoint (max_field=0x7ffdf95bade0) at /data/src/10.3/storage/innobase/log/log0recv.cc:1085
#11 0x00005608e1165d63 in recv_recovery_from_checkpoint_start (flush_lsn=6946982) at /data/src/10.3/storage/innobase/log/log0recv.cc:3203
#12 0x00005608e1299c6f in innobase_start_or_create_for_mysql () at /data/src/10.3/storage/innobase/srv/srv0start.cc:2193
#13 0x00005608e10b2056 in innobase_init (p=0x5608e3546d60) at /data/src/10.3/storage/innobase/handler/ha_innodb.cc:4222
#14 0x00005608e0d92928 in ha_initialize_handlerton (plugin=0x5608e35370c8) at /data/src/10.3/sql/handler.cc:521
#15 0x00005608e0aea9b5 in plugin_initialize (tmp_root=0x7ffdf95c1f90, plugin=0x5608e35370c8, argc=0x5608e2180330 <remaining_argc>, argv=0x5608e34e07e8, options_only=false) at /data/src/10.3/sql/sql_plugin.cc:1440
#16 0x00005608e0aeb62f in plugin_init (argc=0x5608e2180330 <remaining_argc>, argv=0x5608e34e07e8, flags=2) at /data/src/10.3/sql/sql_plugin.cc:1723
#17 0x00005608e09e5185 in init_server_components () at /data/src/10.3/sql/mysqld.cc:5323
#18 0x00005608e09e623a in mysqld_main (argc=33, argv=0x5608e34e07e8) at /data/src/10.3/sql/mysqld.cc:5916
#19 0x00005608e09dae40 in main (argc=33, argv=0x7ffdf95c27a8) at /data/src/10.3/sql/main.cc:25

The scenario is normal non-crashing upgrade from the current 10.2 (or 10.2.8) with encryption:

  • start 10.2 server;
  • create some tables and run DML for a minute;
  • shutdown server;
  • try to start 10.3 server on the same datadir.

The full set of options that the test runs with is below, some options must be irrelevant.
If needed, for easier reproducing I can provide a 10.2 datadir with a minimal data set.



 Comments   
Comment by Marko Mäkelä [ 2017-09-15 ]

This is due to a merge error of MDEV-13318, affecting encrypted redo log upgrade from 10.2 to 10.3.

Generated at Thu Feb 08 08:08:35 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.