Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4201 LevelDB Storage Engine MS2
  3. MDEV-4320

LevelDB: Valgrind "blocks still reachable" warnings on plugin initialization

    XMLWordPrintable

Details

    • Technical task
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      ==25585== 8 bytes in 1 blocks are still reachable in loss record 1 of 203
      ==25585==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==25585==    by 0x506ED7D: leveldb::InitModule() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x58D63FF: pthread_once (pthread_once.S:104)
      ==25585==    by 0x5074258: leveldb::port::InitOnce(int*, void (*)()) (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x506EFF6: leveldb::BytewiseComparator() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x5073DA8: leveldb::Options::Options() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0xD47A9A: leveldb_init_func(void*) (ha_leveldb.cc:442)
      ==25585==    by 0x616A87: ha_initialize_handlerton(st_plugin_int*) (handler.cc:658)
      ==25585==    by 0x7B19C3: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1126)
      ==25585==    by 0x7B233C: plugin_init(int*, char**, int) (sql_plugin.cc:1417)
      ==25585==    by 0x604C78: init_server_components() (mysqld.cc:4778)
      ==25585==    by 0x60592E: mysqld_main(int, char**) (mysqld.cc:5357)
      ==25585== 
      ==25585== 64 bytes in 1 blocks are still reachable in loss record 84 of 203
      ==25585==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==25585==    by 0x5071FE2: leveldb::InitDefaultEnv() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x58D63FF: pthread_once (pthread_once.S:104)
      ==25585==    by 0x5071F26: leveldb::Env::Default() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x5073DBC: leveldb::Options::Options() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0xD47A9A: leveldb_init_func(void*) (ha_leveldb.cc:442)
      ==25585==    by 0x616A87: ha_initialize_handlerton(st_plugin_int*) (handler.cc:658)
      ==25585==    by 0x7B19C3: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1126)
      ==25585==    by 0x7B233C: plugin_init(int*, char**, int) (sql_plugin.cc:1417)
      ==25585==    by 0x604C78: init_server_components() (mysqld.cc:4778)
      ==25585==    by 0x60592E: mysqld_main(int, char**) (mysqld.cc:5357)
      ==25585==    by 0x5FC893: main (main.cc:25)
      ==25585== 
      ==25585== 336 bytes in 1 blocks are still reachable in loss record 112 of 203
      ==25585==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==25585==    by 0x5071F51: leveldb::InitDefaultEnv() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x58D63FF: pthread_once (pthread_once.S:104)
      ==25585==    by 0x5071F26: leveldb::Env::Default() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x5073DBC: leveldb::Options::Options() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0xD47A9A: leveldb_init_func(void*) (ha_leveldb.cc:442)
      ==25585==    by 0x616A87: ha_initialize_handlerton(st_plugin_int*) (handler.cc:658)
      ==25585==    by 0x7B19C3: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1126)
      ==25585==    by 0x7B233C: plugin_init(int*, char**, int) (sql_plugin.cc:1417)
      ==25585==    by 0x604C78: init_server_components() (mysqld.cc:4778)
      ==25585==    by 0x60592E: mysqld_main(int, char**) (mysqld.cc:5357)
      ==25585==    by 0x5FC893: main (main.cc:25)
      ==25585== 
      ==25585== 512 bytes in 1 blocks are still reachable in loss record 117 of 203
      ==25585==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==25585==    by 0x5072007: leveldb::InitDefaultEnv() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x58D63FF: pthread_once (pthread_once.S:104)
      ==25585==    by 0x5071F26: leveldb::Env::Default() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0x5073DBC: leveldb::Options::Options() (in /home/elenst/leveldb-1.7.0/libleveldb.so.1.7)
      ==25585==    by 0xD47A9A: leveldb_init_func(void*) (ha_leveldb.cc:442)
      ==25585==    by 0x616A87: ha_initialize_handlerton(st_plugin_int*) (handler.cc:658)
      ==25585==    by 0x7B19C3: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1126)
      ==25585==    by 0x7B233C: plugin_init(int*, char**, int) (sql_plugin.cc:1417)
      ==25585==    by 0x604C78: init_server_components() (mysqld.cc:4778)
      ==25585==    by 0x60592E: mysqld_main(int, char**) (mysqld.cc:5357)
      ==25585==    by 0x5FC893: main (main.cc:25)

      To reproduce, just start server with valgrind, e.g.

      /usr/bin/valgrind.bin --suppressions=/data/bzr/mysql-5.6-leveldb/mysql-test/valgrind.supp --tool=memcheck --leak-check=yes --show-reachable=yes mysqld ...

      and then shut down properly.

      For MTR, it's enough to run a minimal test, e.g.

      SELECT 1;

      revision-id: psergey@askmonty.org-20130322111245-43wqvaouclxso5zo
      revno: 4807
      branch-nick: mysql-5.6-leveldb

      (modified not to build unittest and built with cmake . -DCMAKE_BUILD_TYPE=Debug && make -j3)

      Attachments

        Activity

          People

            psergei Sergei Petrunia
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.