Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-24236

[N1QL RQG] Subqueries with primary indexes timing out.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 5.0.0
    • 5.0.0
    • query
    • 5.0.0-2703
    • Untriaged
    • No

    Description

      Job failing:
      cen006-n1ql-vset04-01-rqg-subqueryenhancements-multiple-table-primary-secondary-tests

      Test which failed:

      ./testrunner -i <ini file> -p gsi_type=forestdb -t rqg.test_rqg.RQGTests.test_rqg_concurrent,test_file_path=b/resources/rqg/multiple_table_db/query_test_using_templates/query_10000_subqueries.txt.zip,password=password,database=multiple_table_db,reset_database=True,concurreny_count=10,index_quota_percent=30,use_mysql=True,replicas=0,nodes_init=1,total_queries=1000,password=password,subquery=True

      What the test does?
      1.creates primary index.
      2.Runs long running subqueries with different combination of datatypes (subqueries created after subquery enhancement feature)
      3.Compares results with same query run against mysql.

      Error reported by the job:

      2017-05-02 20:50:06 | INFO | MainProcess | test_thread | [test_rqg._test_result_analysis]  Total Queries Run = 100, Pass = 98, Fail = 2, Pass Pecentage = 98 %
      2017-05-02 20:50:06 | INFO | MainProcess | test_thread | [test_rqg.test_rqg_concurrent] <<<<<<<<<< TEST 17 >>>>>>>>>>> 
      keyword_list :: [' < ', ' <= ', ' = ', ' > ', ' >= ', 'AND', 'BETWEEN', 'BY', 'EXISTS', 'FALSE', 'IN', 'IS', 'KEY', 'KEYS', 'LIKE', 'LIMIT', 'NOT', 'NULL', 'OR', 'ORDER', 'TRUE', 'USE'] 
      run_result :: 
       ____________________________________________________
        Scenario ::  run_query_without_index_hint 
       Reason :: unable to reach the host @ 172.23.109.38
      

      Queries which take long to run and timeout:

      SELECT t_5.*,(SELECT min(t_1.productId) FROM  t_5.simple_table_2 t_1   WHERE  t_1.primary_key_id=t_5.primary_key_id    GROUP BY  t_1.price   ORDER BY  t_1.price limit 1) ABC FROM multiple_table_db_6585_simple_table_1 t_5 WHERE NOT EXISTS     (SELECT * FROM  multiple_table_db_6585_simple_table_1  t_1   USE KEYS [t_5.primary_key_id] WHERE     (((t_1.int_field1 >= 4884 AND t_1.varchar_field1 NOT BETWEEN "AEfRNxmudW" and "ztJmPOAbnR" AND t_1.bool_field1 = false)) OR ((t_1.bool_field1 != true AND t_1.primary_key_id LIKE '%549%'))) AND (((NOT ((((NOT (((t_1.bool_field1 = false OR t_1.int_field1 >= 4884)) OR (t_1.decimal_field1 IS NULL))) AND (NOT (((t_1.bool_field1 = false) AND ((t_1.decimal_field1 IS NOT NULL AND ((t_1.varchar_field1  IN [  "AEfRNxmudW" , "AFLkzjxeCW" , "AJbXnhAvWh" , "AKIrSkuzMc" , "AMaAHvTthj"  ]) OR (t_1.varchar_field1  IN [  "AEfRNxmudW" , "AFLkzjxeCW" , "AJbXnhAvWh" , "AKIrSkuzMc" , "AMaAHvTthj"  ])) OR (t_1.primary_key_id IS NOT NULL) AND t_1.bool_field1 = true)) OR ((NOT (t_1.bool_field1) OR t_1.char_field1 IS NULL)) AND ((NOT (t_1.bool_field1) AND t_1.decimal_field1 > 5027))) AND (NOT (((t_1.decimal_field1 IS NULL OR t_1.char_field1 NOT LIKE "N")) AND ((t_1.bool_field1 != false OR t_1.primary_key_id LIKE '549%')) OR ((t_1.bool_field1 = true OR t_1.char_field1 NOT LIKE "N")) AND (t_1.bool_field1 = false)))))) AND ((((t_1.bool_field1 = true OR t_1.varchar_field1 IS NOT NULL)) OR ((t_1.varchar_field1 IS NOT NULL AND t_1.int_field1 > 4884))) OR (NOT (t_1.varchar_field1  IN [  "AEfRNxmudW" , "AFLkzjxeCW" , "AJbXnhAvWh" , "AKIrSkuzMc" , "AMaAHvTthj"  ])))) AND (((NOT (t_1.char_field1 NOT LIKE '%N') AND t_1.int_field1 != 4884)) AND ((t_1.bool_field1 AND t_1.decimal_field1 = 5027))))) AND (((t_1.primary_key_id <= "549" AND t_1.int_field1  IN [  5 , 7 , 10 , 15 , 16  ])) AND (((t_1.decimal_field1 < 5027) AND (t_1.decimal_field1 = 5027) AND t_1.char_field1 NOT BETWEEN "A" and "Z" AND t_1.bool_field1 = true)) OR (t_1.varchar_field1 < "acDPZSmhqX") AND ((t_1.varchar_field1 <> "acDPZSmhqX" AND t_1.decimal_field1 IS NOT NULL)))) AND (NOT (((((NOT ((t_1.decimal_field1  IN [  17 , 21 , 38 , 41 , 73  ]) OR (t_1.decimal_field1 = 5027)) AND t_1.char_field1 IS NOT NULL AND t_1.bool_field1 != true)) AND ((t_1.int_field1  IN [  5 , 7 , 10 , 15 , 16  ] AND t_1.primary_key_id  IN [  "1" , "10" , "100" , "1000" , "101"  ] AND t_1.bool_field1 != true)) OR ((NOT (t_1.int_field1  IN [  5 , 7 , 10 , 15 , 16  ])) AND (t_1.decimal_field1 < 5027)) AND (t_1.bool_field1)) AND (((t_1.bool_field1 = true OR t_1.varchar_field1  IN [  "AEfRNxmudW" , "AFLkzjxeCW" , "AJbXnhAvWh" , "AKIrSkuzMc" , "AMaAHvTthj"  ])) OR (((t_1.int_field1 > 4884 OR t_1.char_field1 NOT BETWEEN "A" and "Z")) AND ((t_1.bool_field1 OR t_1.int_field1 > 4884))))) OR (((t_1.decimal_field1 >= 5027) OR (t_1.int_field1 BETWEEN 5 and 9995)) OR ((NOT (t_1.bool_field1) AND t_1.int_field1 >= 4884))))))     )       order by meta().id limit 5 
      
      

       SELECT tb_N3375.* FROM (SELECT tb_U3375.* FROM (SELECT tb_I3375.* FROM ( SELECT t_5.*,(SELECT sum(t_1.qty) FROM  t_5.simple_table_2 t_1   WHERE  t_1.primary_key_id=t_5.primary_key_id    GROUP BY  t_1.price   ORDER BY  t_1.price limit 1) ABC FROM multiple_table_db_6585_simple_table_1 t_5 WHERE EXISTS     (SELECT * FROM  t_5.simple_table_2  t_2   WHERE       NOT ((((NOT (t_2.qty) AND t_2.order_id IS NULL)) AND (t_2.qty IS NULL) OR (t_2.price BETWEEN 21 and 10099) AND ((t_2.qty >= 4946) OR (NOT (t_2.price >= 4946)))) OR ((t_2.qty != true AND t_2.primary_key_id NOT LIKE '%549')))     )      ) tb_I3375) tb_U3375) tb_N3375 order by meta().id limit 5 
      

      I already increased the timeout to 20mins in the test to verify that these queries give result.
      But they still fail with above error.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Prerna.Manaktala Prerna Manaktala (Inactive)
            Prerna.Manaktala Prerna Manaktala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty