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

InnoDB replace statement returns "can't find record" error during bulk insert operation.

Details

    Description

      InnoDB blindly return "DB_END_OF_INDEX" when bulk insert operation transaction
      is visible to current transaction even though the search tuple exist in index.

      origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00
       
      Scenario in the RQG test:
      Two concurrent sessions run a DDL/DML mix.
      One or both sessions go set  SET foreign_key_checks = 0, unique_checks = 0 ;
      After a few seconds with DDL/DML load one session catches
      REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) )  /* E_R Thread1 QNO 27 CON_ID 17 */  failed: 1032 , errstr: Can't find record in 't6'
      RQG reacts with killing the DB server with SIGABRT.
       
      pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay
       
      Maybe better rr trace
      REPLACE INTO t3 (col1) VALUES /* 1894 */ (1894), (1894)  /* E_R Thread1 QNO 149 CON_ID 17 */  failed: 1032 , errstr: Can't find record in 't3'
      pluto:/data/results/1663591301/MDEV-29545$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio
       
      The problem is on 
      origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
      too.
      No replay on 10.5.18
      origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00
      
      

      Attachments

        Issue Links

          Activity

            mleich Matthias Leich created issue -
            mleich Matthias Leich made changes -
            Field Original Value New Value
            Description
            {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            {noformat}
            {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.

            {noformat}
            mleich Matthias Leich made changes -
            Fix Version/s 10.7 [ 24805 ]
            Affects Version/s 10.6.10 [ 28407 ]
            mleich Matthias Leich made changes -
            Description {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.

            {noformat}
            {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.
            No replay on 10.5.18
            origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00

            {noformat}
            mleich Matthias Leich made changes -
            Description {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.
            No replay on 10.5.18
            origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00

            {noformat}
            {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            Maybe better rr trace
            REPLACE INTO t3 (col1) VALUES /* 1894 */ (1894), (1894) /* E_R Thread1 QNO 149 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't3'
            pluto:/data/results/1663591301/MDEV-29545$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.
            No replay on 10.5.18
            origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00

            {noformat}
            mleich Matthias Leich made changes -
            Attachment TBR-403-mini.yy [ 65423 ]
            mleich Matthias Leich made changes -
            Attachment TBR-403.cfg [ 65424 ]
            mleich Matthias Leich made changes -
            Assignee Matthias Leich [ mleich ] Marko Mäkelä [ marko ]
            Summary Draft: InnoDB: 1032 , errstr: Can't find record in 't6', disabled checks InnoDB: 1032 , errstr: Can't find record in 't6', disabled checks
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            Labels rr-profile regression-10.6 rr-profile
            thiru Thirunarayanan Balathandayuthapani made changes -
            Labels regression-10.6 rr-profile regression-10.6 rr-profile-analyzed
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.7 [ 24805 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Assignee Thirunarayanan Balathandayuthapani [ thiru ] Marko Mäkelä [ marko ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.6.13 [ 28514 ]
            Fix Version/s 10.8.8 [ 28518 ]
            Fix Version/s 10.9.6 [ 28520 ]
            Fix Version/s 10.10.4 [ 28522 ]
            Fix Version/s 10.11.3 [ 28524 ]
            Fix Version/s 11.1.1 [ 28704 ]
            Fix Version/s 10.6 [ 24028 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Summary InnoDB: 1032 , errstr: Can't find record in 't6', disabled checks InnoDB replace statement returns "can't find record" error during bulk insert operation.
            thiru Thirunarayanan Balathandayuthapani made changes -
            Description {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            Maybe better rr trace
            REPLACE INTO t3 (col1) VALUES /* 1894 */ (1894), (1894) /* E_R Thread1 QNO 149 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't3'
            pluto:/data/results/1663591301/MDEV-29545$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.
            No replay on 10.5.18
            origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00

            {noformat}
            InnoDB blindly return "DB_END_OF_INDEX" when bulk insert operation transaction
            is visible to current transaction even though the search tuple exist in index.

            {noformat}
            origin/10.7 f3785f099c2f0f251f39632928e822328abe9a02 2022-09-13T08:48:40+03:00

            Scenario in the RQG test:
            Two concurrent sessions run a DDL/DML mix.
            One or both sessions go set SET foreign_key_checks = 0, unique_checks = 0 ;
            After a few seconds with DDL/DML load one session catches
            REPLACE INTO t6 (col1,col2, col_int, col_string, col_text) VALUES /* 839 */ (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ), (839,839,839,REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), 10),REPEAT(SUBSTR(CAST( 839 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 27 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't6'
            RQG reacts with killing the DB server with SIGABRT.

            pluto:/data/results/1663181785/TBR-403$ _RR_TRACE_DIR=./1/rr/ rr replay

            Maybe better rr trace
            REPLACE INTO t3 (col1) VALUES /* 1894 */ (1894), (1894) /* E_R Thread1 QNO 149 CON_ID 17 */ failed: 1032 , errstr: Can't find record in 't3'
            pluto:/data/results/1663591301/MDEV-29545$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio

            The problem is on
            origin/HEAD, origin/10.6 8ff10969996a5349e906fab44b45c6e3ec53eea0 2022-08-24T17:06:57+03:00
            too.
            No replay on 10.5.18
            origin/10.5 23a8654cdbd84336fd2004bdd2b0cb4a0ecd3d4a 2022-09-15T12:20:50+04:00

            {noformat}

            People

              thiru Thirunarayanan Balathandayuthapani
              mleich Matthias Leich
              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.