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

Crash on macOS on preview-11.8-preview branch

    XMLWordPrintable

Details

    Description

      This commit (sha may vary due to force pushes) fails on mac with a crash during bootstrap:

      commit 0e58234e2d85777d6d91f58b26a3c083f895d7a8 (HEAD)
      Author: Sergei Golubchik <serg@mariadb.org>
      Date:   Wed Dec 11 17:11:34 2024 +0100
       
          MDEV-35049 fix innodb-adaptive-hash-index scalability with multiple threads
       
          from bb-11.8-innodb-ahi-cursor
      

      On my mac system, it crashes during bootstrap in this way:

      Installing MariaDB/MySQL system tables in './sql/data' ...
      Assertion failed: (!initialized), function <unknown>, file srw_lock.h, line 46.
      241212  9:54:53 [ERROR] mysqld got signal 6 ;
      Sorry, we probably made a mistake, and this is a bug.
       
      Your assistance in bug reporting will enable us to fix this for the next release.
      To report this bug, see https://mariadb.com/kb/en/reporting-bugs
       
      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed,
      something is definitely wrong and this may fail.
       
      Server version: 11.8.0-MariaDB-debug source revision: 2d7ccce4f409a20a0a1c38c510796251a948de8f
      read_buffer_size=131072
      max_used_connections=0
      thread_count=0
      Thread pointer: 0x0
      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 = 0x0 thread_stack 0x49000
      0   mariadbd                            0x0000000103c2d6a4 my_print_stacktrace + 64
      Printing to addr2line failed
      0   mariadbd                            0x0000000102c81aec handle_fatal_signal + 1084
      0   libsystem_platform.dylib            0x00000001927bc184 _sigtramp + 56
      0   libsystem_pthread.dylib             0x0000000192786f70 pthread_kill + 288
      0   libsystem_c.dylib                   0x0000000192693908 abort + 128
      0   libsystem_c.dylib                   0x0000000192692c1c err + 0
      0   mariadbd                            0x0000000103753160 _ZN21pthread_mutex_wrapperILb0EED2Ev + 144
      0   mariadbd                            0x00000001037530c0 _ZN21pthread_mutex_wrapperILb0EED1Ev + 28
      0   mariadbd                            0x0000000103753094 _ZN7btr_sea9partitionD2Ev + 32
      0   mariadbd                            0x0000000103753064 _ZN7btr_sea9partitionD1Ev + 28
      0   mariadbd                            0x000000010375301c _ZN7btr_seaD2Ev + 64
      0   mariadbd                            0x0000000103748694 _ZN7btr_seaD1Ev + 28
      0   libsystem_c.dylib                   0x0000000192642998 __cxa_finalize_ranges + 476
      0   libsystem_c.dylib                   0x000000019264275c exit + 44
      0   mariadbd                            0x0000000102ecf7d8 _ZL11mysqld_exiti + 388
      0   mariadbd                            0x0000000102eceee8 unireg_abort + 604
      0   mariadbd                            0x0000000102ed291c _Z11mysqld_mainiPPc + 2528
      0   mariadbd                            0x0000000102b94928 main + 36
      0   dyld                                0x0000000192404274 start + 2840
      The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mariadbd/ contains
      information that should help you find out what is causing the crash.
      Core pattern: /cores/core.%P
      ./scripts/mariadb-install-db: line 567: 15172 Abort trap: 6           "$mysqld_bootstrap" $defaults $defaults_group_suffix "$mysqld_opt" --bootstrap $silent_startup "--basedir=$basedir" "--datadir=$ldata" --log-warnings=0 --enforce-storage-engine="" "--plugin-dir=${plugindir}" $args --max_allowed_packet=8M --net_buffer_length=16K
      

      Using a debugger, I’ve isolated the problem to this:

      (lldb) bt
      * thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert
          frame #0: 0x000000019274e600 libsystem_kernel.dylib`__pthread_kill + 8
          frame #1: 0x0000000192786f70 libsystem_pthread.dylib`pthread_kill + 288
          frame #2: 0x0000000192693908 libsystem_c.dylib`abort + 128
          frame #3: 0x0000000192692c1c libsystem_c.dylib`__assert_rtn + 284
        * frame #4: 0x0000000100b9fa90 mariadbd`pthread_mutex_wrapper<false>::~pthread_mutex_wrapper(this=0x000000010191d2e0) at srw_lock.h:46:39
          frame #5: 0x0000000100b9f9f0 mariadbd`pthread_mutex_wrapper<false>::~pthread_mutex_wrapper(this=0x000000010191d2e0) at srw_lock.h:46:37
          frame #6: 0x0000000100b9f9c4 mariadbd`btr_sea::partition::~partition(this=0x000000010191d200) at btr0sea.h:118:10
          frame #7: 0x0000000100b9f994 mariadbd`btr_sea::partition::~partition(this=0x000000010191d200) at btr0sea.h:118:10
          frame #8: 0x0000000100b9f94c mariadbd`btr_sea::~btr_sea(this=0x00000001018ed300) at btr0sea.h:103:8
          frame #9: 0x0000000100b94fc4 mariadbd`btr_sea::~btr_sea(this=0x00000001018ed300) at btr0sea.h:103:8
          frame #10: 0x0000000192642998 libsystem_c.dylib`__cxa_finalize_ranges + 476
          frame #11: 0x000000019264275c libsystem_c.dylib`exit + 44
          frame #12: 0x0000000100339138 mariadbd`mysqld_exit(exit_code=1) at mysqld.cc:1963:3
          frame #13: 0x0000000100338848 mariadbd`unireg_abort(exit_code=1) at mysqld.cc:1931:3
          frame #14: 0x000000010033fed8 mariadbd`init_server_components() at mysqld.cc:5472:9
          frame #15: 0x000000010033bfb8 mariadbd`mysqld_main(argc=15, argv=0x0000000140f04768) at mysqld.cc:6009:7
          frame #16: 0x0000000100005218 mariadbd`main(argc=13, argv=0x000000016fdff228) at main.cc:34:10
          frame #17: 0x0000000192404274 dyld`start + 2840
      

      The ut_ad(!initialized); assertion fails from ~pthread_mutex_wrapper() (srw_lock.h:46) during mysqld_exit() when called during unireg_abort() at mysqld.cc:1963. . Somehow the pthread_mutex_wrapper was instantiated/created but its init() method not called before it was destroyed. (edited)

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              Gosselin Dave Gosselin
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.