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

The keep-alive connection (set spider_conn_recycle_mode = 1) in spider would cause cash in MariaDB

Details

    Description

      The keep-alive connection (set spider_conn_recycle_mode = 1) in spider would cause cash in MariaDB , because of the thd would be reset in mysqld but reused in spider_conn

      Attachments

        Activity

          I can see it as the following valgrind error.

          ==94390== Thread 29:
          ==94390== Invalid read of size 8
          ==94390== at 0x78389D: thd_increment_bytes_sent (sql_class.cc:4265)
          ==94390== by 0xC8EC46: net_real_write (net_serv.cc:730)
          ==94390== by 0xC8E0C8: net_flush (net_serv.cc:383)
          ==94390== by 0xC8E4D0: net_write_command (net_serv.cc:521)
          ==94390== by 0xADCE61: cli_advanced_command (client.c:468)
          ==94390== by 0xAE3CAF: mysql_close_slow_part (client.c:3671)
          ==94390== by 0xAE3D28: mysql_close (client.c:3683)
          ==94390== by 0x149E69A8: spider_db_mbase::disconnect() (spd_db_mysql.cc:2217)
          ==94390== by 0x1491EA26: spider_db_disconnect(st_spider_conn*) (spd_db_conn.cc:297)
          ==94390== by 0x14948EBE: spider_free_conn_alloc(st_spider_conn*) (spd_conn.cc:196)
          ==94390== by 0x1494B26A: spider_free_conn(st_spider_conn*) (spd_conn.cc:1251)
          ==94390== by 0x1494941F: spider_free_conn_from_trx(st_spider_transaction*, st_spider_conn*, bool, bool, int*) (spd_conn.cc:315)
          ==94390== Address 0x1f0e0990 is 4,832 bytes inside a block of size 25,728 free'd
          ==94390== at 0x4C2ACBD: free (vg_replace_malloc.c:530)
          ==94390== by 0x13F5545: my_free (my_malloc.c:222)
          ==94390== by 0x6C75B7: ilink::operator delete(void*, unsigned long) (sql_list.h:618)
          ==94390== by 0x77B9F6: THD::~THD() (sql_class.cc:1724)
          ==94390== by 0x1494FCE0: spider_bg_conn_action(void*) (spd_conn.cc:2580)
          ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so)
          ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so)
          ==94390== Block was alloc'd at
          ==94390== at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
          ==94390== by 0x13F4DFA: my_malloc (my_malloc.c:101)
          ==94390== by 0x1491CF06: ilink::operator new(unsigned long) (sql_list.h:614)
          ==94390== by 0x1494F7FD: spider_bg_conn_action(void*) (spd_conn.cc:2501)
          ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so)
          ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so)
          ==94390== Invalid write of size 8
          ==94390== at 0x7838AF: thd_increment_bytes_sent (sql_class.cc:4265)
          ==94390== by 0xC8EC46: net_real_write (net_serv.cc:730)
          ==94390== by 0xC8E0C8: net_flush (net_serv.cc:383)
          ==94390== by 0xC8E4D0: net_write_command (net_serv.cc:521)
          ==94390== by 0xADCE61: cli_advanced_command (client.c:468)
          ==94390== by 0xAE3CAF: mysql_close_slow_part (client.c:3671)
          ==94390== by 0xAE3D28: mysql_close (client.c:3683)
          ==94390== by 0x149E69A8: spider_db_mbase::disconnect() (spd_db_mysql.cc:2217)
          ==94390== by 0x1491EA26: spider_db_disconnect(st_spider_conn*) (spd_db_conn.cc:297)
          ==94390== by 0x14948EBE: spider_free_conn_alloc(st_spider_conn*) (spd_conn.cc:196)
          ==94390== by 0x1494B26A: spider_free_conn(st_spider_conn*) (spd_conn.cc:1251)
          ==94390== by 0x1494941F: spider_free_conn_from_trx(st_spider_transaction*, st_spider_conn*, bool, bool, int*) (spd_conn.cc:315)
          ==94390== Address 0x1f0e0990 is 4,832 bytes inside a block of size 25,728 free'd
          ==94390== at 0x4C2ACBD: free (vg_replace_malloc.c:530)
          ==94390== by 0x13F5545: my_free (my_malloc.c:222)
          ==94390== by 0x6C75B7: ilink::operator delete(void*, unsigned long) (sql_list.h:618)
          ==94390== by 0x77B9F6: THD::~THD() (sql_class.cc:1724)
          ==94390== by 0x1494FCE0: spider_bg_conn_action(void*) (spd_conn.cc:2580)
          ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so)
          ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so)
          ==94390== Block was alloc'd at
          ==94390== at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
          ==94390== by 0x13F4DFA: my_malloc (my_malloc.c:101)
          ==94390== by 0x1491CF06: ilink::operator new(unsigned long) (sql_list.h:614)
          ==94390== by 0x1494F7FD: spider_bg_conn_action(void*) (spd_conn.cc:2501)
          ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so)
          ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so)

          This is fixed the following commit. Please check it.
          a65a9f7

          Kentoku Kentoku Shiba (Inactive) added a comment - I can see it as the following valgrind error. ==94390== Thread 29: ==94390== Invalid read of size 8 ==94390== at 0x78389D: thd_increment_bytes_sent (sql_class.cc:4265) ==94390== by 0xC8EC46: net_real_write (net_serv.cc:730) ==94390== by 0xC8E0C8: net_flush (net_serv.cc:383) ==94390== by 0xC8E4D0: net_write_command (net_serv.cc:521) ==94390== by 0xADCE61: cli_advanced_command (client.c:468) ==94390== by 0xAE3CAF: mysql_close_slow_part (client.c:3671) ==94390== by 0xAE3D28: mysql_close (client.c:3683) ==94390== by 0x149E69A8: spider_db_mbase::disconnect() (spd_db_mysql.cc:2217) ==94390== by 0x1491EA26: spider_db_disconnect(st_spider_conn*) (spd_db_conn.cc:297) ==94390== by 0x14948EBE: spider_free_conn_alloc(st_spider_conn*) (spd_conn.cc:196) ==94390== by 0x1494B26A: spider_free_conn(st_spider_conn*) (spd_conn.cc:1251) ==94390== by 0x1494941F: spider_free_conn_from_trx(st_spider_transaction*, st_spider_conn*, bool, bool, int*) (spd_conn.cc:315) ==94390== Address 0x1f0e0990 is 4,832 bytes inside a block of size 25,728 free'd ==94390== at 0x4C2ACBD: free (vg_replace_malloc.c:530) ==94390== by 0x13F5545: my_free (my_malloc.c:222) ==94390== by 0x6C75B7: ilink::operator delete(void*, unsigned long) (sql_list.h:618) ==94390== by 0x77B9F6: THD::~THD() (sql_class.cc:1724) ==94390== by 0x1494FCE0: spider_bg_conn_action(void*) (spd_conn.cc:2580) ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so) ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so) ==94390== Block was alloc'd at ==94390== at 0x4C29BC3: malloc (vg_replace_malloc.c:299) ==94390== by 0x13F4DFA: my_malloc (my_malloc.c:101) ==94390== by 0x1491CF06: ilink::operator new(unsigned long) (sql_list.h:614) ==94390== by 0x1494F7FD: spider_bg_conn_action(void*) (spd_conn.cc:2501) ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so) ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so) ==94390== Invalid write of size 8 ==94390== at 0x7838AF: thd_increment_bytes_sent (sql_class.cc:4265) ==94390== by 0xC8EC46: net_real_write (net_serv.cc:730) ==94390== by 0xC8E0C8: net_flush (net_serv.cc:383) ==94390== by 0xC8E4D0: net_write_command (net_serv.cc:521) ==94390== by 0xADCE61: cli_advanced_command (client.c:468) ==94390== by 0xAE3CAF: mysql_close_slow_part (client.c:3671) ==94390== by 0xAE3D28: mysql_close (client.c:3683) ==94390== by 0x149E69A8: spider_db_mbase::disconnect() (spd_db_mysql.cc:2217) ==94390== by 0x1491EA26: spider_db_disconnect(st_spider_conn*) (spd_db_conn.cc:297) ==94390== by 0x14948EBE: spider_free_conn_alloc(st_spider_conn*) (spd_conn.cc:196) ==94390== by 0x1494B26A: spider_free_conn(st_spider_conn*) (spd_conn.cc:1251) ==94390== by 0x1494941F: spider_free_conn_from_trx(st_spider_transaction*, st_spider_conn*, bool, bool, int*) (spd_conn.cc:315) ==94390== Address 0x1f0e0990 is 4,832 bytes inside a block of size 25,728 free'd ==94390== at 0x4C2ACBD: free (vg_replace_malloc.c:530) ==94390== by 0x13F5545: my_free (my_malloc.c:222) ==94390== by 0x6C75B7: ilink::operator delete(void*, unsigned long) (sql_list.h:618) ==94390== by 0x77B9F6: THD::~THD() (sql_class.cc:1724) ==94390== by 0x1494FCE0: spider_bg_conn_action(void*) (spd_conn.cc:2580) ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so) ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so) ==94390== Block was alloc'd at ==94390== at 0x4C29BC3: malloc (vg_replace_malloc.c:299) ==94390== by 0x13F4DFA: my_malloc (my_malloc.c:101) ==94390== by 0x1491CF06: ilink::operator new(unsigned long) (sql_list.h:614) ==94390== by 0x1494F7FD: spider_bg_conn_action(void*) (spd_conn.cc:2501) ==94390== by 0x4E3DDD4: start_thread (in /usr/lib64/libpthread-2.17.so) ==94390== by 0x5FBFEAC: clone (in /usr/lib64/libc-2.17.so) This is fixed the following commit. Please check it. a65a9f7

          merge operation

          Kentoku Kentoku Shiba (Inactive) added a comment - merge operation

          People

            Kentoku Kentoku Shiba (Inactive)
            willhan willhan
            Votes:
            0 Vote for this issue
            Watchers:
            3 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.