• unknown's avatar
    BUG#36433: rpl_insert_id detects inconsistency on master · c25bd6fc
    unknown authored
    Problem: If INSERT is immediately followed by SELECT in another thread,
    the newly inserted rows may not be returned by the SELECT statement, if
    ENGINE=myisam and @@concurrent_insert=1. This caused sporadic errors in
    rpl_insert_id.
    Fix: The test now uses ENGINE=$engine_type when creating tables (so that
    innodb is used). It also turns off @@concurrent_insert around the critical
    place, so that it works if someone in the future writes a test that sets
    $engine_type=myisam before sourcing extra/rpl_tests/rpl_insert_id.test.
    It also adds ORDER BY to all SELECTs so that the result is deterministic.
    
    
    mysql-test/extra/rpl_tests/rpl_insert_id.test:
      - Use ENGINE=$engine_type when creating tables, since that's expected by
      suite/rpl/t/rpl_insert_id.test.
      - Use ORDER BY to avoid nondeterministic results from SELECT.
      - Set @@concurrent_insert=0 before doing SELECT after INSERT in another
      client.
    mysql-test/suite/rpl/r/rpl_insert_id.result:
      Update result file.
    c25bd6fc
rpl_insert_id.test 14.3 KB