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

MSAN use-of-uninitialized-value in wf_incremental_finalize

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 10.5
    • Fix Version/s: 10.5
    • Component/s: mariabackup
    • Labels:

      Description

      Multiple mariabackup tests fail with MSAN due to incremental backup seemingly writing data to the output that it did not read:

      10.5 6be56dd1c8a37eb98f4b7bc1507ca5991a2a1f61

      CURRENT_TEST: mariabackup.incremental_encrypted
      mysqltest: At line 28: exec of '/dev/shm/10.5m/extra/mariabackup/mariabackup --defaults-file=/dev/shm/10.5m/mysql-test/var/33/my.cnf   --backup --target-dir=/dev/shm/10.5m/mysql-test/var/33/tmp/backup_inc1 --incremental-basedir=/dev/shm/10.5m/mysql-test/var/33/tmp/backup 2>&1' failed, error: 34304, status: 134, errno: 11
      [01] 2020-03-28 21:38:26 Copying ibdata1 to /dev/shm/10.5m/mysql-test/var/33/tmp/backup_inc1/ibdata1.delta
      Uninitialized bytes in __interceptor_write at offset 28 inside [0x7f38f8ee7000, 196608)
      ==1445932==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x56077d4ce3e5 in my_write /mariadb/10.5m/mysys/my_write.c:49:19
          #1 0x560779e30da1 in local_write(ds_file_t*, unsigned char const*, unsigned long) /mariadb/10.5m/extra/mariabackup/ds_local.cc:216:7
          #2 0x560779e2b140 in ds_write /mariadb/10.5m/extra/mariabackup/datasink.cc:112:9
          #3 0x560779e3fbc7 in wf_incremental_finalize(xb_write_filt_ctxt_t*, ds_file_t*) /mariadb/10.5m/extra/mariabackup/write_filt.cc:175:6
          #4 0x560779dd4d9a in xtrabackup_copy_datafile(fil_node_t*, unsigned int, char const*, unsigned long long) /mariadb/10.5m/extra/mariabackup/xtrabackup.cc:2551:10
          #5 0x560779df19a6 in data_copy_thread_func(void*) /mariadb/10.5m/extra/mariabackup/xtrabackup.cc:2866:6
          #6 0x7f390dd7df26 in start_thread /build/glibc-WZtAaN/glibc-2.30/nptl/pthread_create.c:479:8
          #7 0x7f390d85c2ee in clone /build/glibc-WZtAaN/glibc-2.30/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Memory was marked as uninitialized
          #0 0x560779d5411e in __msan_allocated_memory (/dev/shm/10.5m/extra/mariabackup/mariadb-backup+0x70b11e)
          #1 0x56077c8d3332 in os_mem_alloc_large(unsigned long*) /mariadb/10.5m/storage/innobase/os/os0proc.cc
      

      It is true that os_mem_alloc_large() is allocating zero-initialized memory, but we intentionally mark the memory uninitialized, so that misuse of the InnoDB buffer pool can be caught. It seems that the incremental backup could be writing more data than is strictly necessary.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              vlad.lesin Vladislav Lesin
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated: