Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-28389

Data too long for column 'line'

    XMLWordPrintable

    Details

      Description

      In non-debug builds, the test innodb.corrupted_during_recovery often causes InnoDB to output a page dump. This will upset the test driver (as noted in MDEV-25909):

      10.6 d4a89b92629328f7e18b7e0595f88f24

      innodb.corrupted_during_recovery 'innodb' w1 [ fail ]  Found warnings/errors in server log file!
              Test ended at 2021-10-27 10:14:27
      Warnings:
      Warning	1406	Data too long for column 'line' at row 8
      line
       len 16384; hex 0000000000000003ffffffffffffffff…2021-10-27
      ^ Found warnings in /dev/shm/var/1/log/mysqld.1.err
      ok
      

      The following patch allows the problem to be reproduced in a more controlled fashion:

      diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc
      index 3aa1aecb54f..31b50a65967 100644
      --- a/storage/innobase/srv/srv0start.cc
      +++ b/storage/innobase/srv/srv0start.cc
      @@ -1838,6 +1838,11 @@ dberr_t srv_start(bool create_new_db)
       	}
       
       	srv_is_being_started = false;
      +	fputs("[Warning] ", stderr);
      +	char buf[65537];
      +	memset(buf, '0', (sizeof buf)-1);
      +	buf[(sizeof buf)-1]='\n';
      +	fwrite(buf, sizeof buf, 1, stderr);
       
       	if (srv_print_verbose_log) {
       		ib::info() << INNODB_VERSION_STR
      

      10.7 9e314fcf6e666ce6fdbdd8ca1ae23d6c4b389b21

      innodb.innodb 'innodb'                   [ fail ]
              Test ended at 2022-04-22 09:35:24
       
      CURRENT_TEST: innodb.innodb
       
       
      Could not execute 'check-warnings' for testcase 'innodb.innodb' (res: 1) server: 'mysqld.1:
      mysqltest: At line 44: query 'load data infile '$log_warning' into table error_log
      fields terminated by 'xykls37' escaped by ''
        ignore 1 lines
      (line)
      set file_name='$log_error'' failed with wrong errno ER_DATA_TOO_LONG (1406): 'Data too long for column 'line' at row 1', instead of  (0)...
      not ok
      mysqltest failed but provided no output
      The result from queries just before the failure was:
      < snip >
      

      The InnoDB page dumps output can be about 3×innodb_page_size characters, plus a couple dozen characters of prefix.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.