Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-2650

tests/query_test/test_udfs.py test_udf_update_via_create must clean up state

    XMLWordPrintableJSON

Details

    Description

      The test fails when run repeatedly because it leaves udf definitions in the 'default' database. It should create a separate database and delete it after it completes.

      This causes the repeated-runs test, which is a longevity test looking for resource leaks and similar problems that can be found by repeatedly running the exhaustive test suite, to fail on the second iteration due to state created in the first iteration interfering with expected results.

      http://sandbox.jenkins.cloudera.com/view/Impala/view/Builds%20-%202.3.0%20Release/job/impala-cdh5.5.0-repeated-runs/18/

      Error Message
      
      assert Comparing QueryTestResults (expected vs actual):   'INT','fn()' == 'INT','fn()'   None != 'STRING','udf_update_test_create1()'   None != 'STRING','udf_update_test_create2()'   None != 'STRING','udf_update_test_drop()'   Number of rows returned (expected vs actual): 1 != 4
      Stacktrace
      
      metadata/test_ddl.py:347: in test_functions_ddl
          multiple_impalad=self._use_multiple_impalad(vector))
      common/impala_test_suite.py:235: in run_test_case
          pytest.config.option.update_results)
      common/test_result_verifier.py:345: in verify_raw_results
          VERIFIER_MAP[verifier](expected, actual)
      common/test_result_verifier.py:197: in verify_query_result_is_equal
          assert expected_results == actual_results
      E   assert Comparing QueryTestResults (expected vs actual):
      E     'INT','fn()' == 'INT','fn()'
      E     None != 'STRING','udf_update_test_create1()'
      E     None != 'STRING','udf_update_test_create2()'
      E     None != 'STRING','udf_update_test_drop()'
      E     Number of rows returned (expected vs actual): 1 != 4
      Standard Error
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `ddl_test_db` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `ddl_purge_db` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `alter_table_test_db` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `alter_table_test_db2` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `function_ddl_test` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `udf_test` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `data_src_test` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `truncate_table_test_db` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `test_db` cascade;
      
      -- executing against localhost:21000
      use default;
      
      SET sync_ddl=1;
      -- executing against localhost:21000
      drop database if exists `alter_purge_db` cascade;
      
      MainThread: Starting new HTTP connection (1): 0.0.0.0
      MainThread: Starting new HTTP connection (1): 0.0.0.0
      MainThread: Starting new HTTP connection (1): 0.0.0.0
      -- connecting to: localhost:21000
      SET sync_ddl=1;
      -- executing against localhost:21000
      create database function_ddl_test location '/test-warehouse/function_ddl_test.db';
      
      -- closing connection to: localhost:21000
      -- executing against localhost:21000
      use function_ddl_test;
      
      SET batch_size=0;
      SET num_nodes=0;
      SET sync_ddl=0;
      SET disable_codegen=False;
      SET abort_on_error=1;
      SET exec_single_node_rows_threshold=0;
      -- executing against localhost:21000
      drop function if exists default.fn();
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn();
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn(int);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn(int, string);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn(string, int);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn2(int);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn2(int, string);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.fn_var_arg(int...);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.agg_fn(int);
      
      -- executing against localhost:21000
      
      drop function if exists function_ddl_test.agg_fn(int, string);
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      show functions in function_ddl_test;
      
      -- executing against localhost:21000
      show aggregate functions in function_ddl_test;
      
      -- executing against localhost:21000
      create function default.fn() RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn() RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn(int) RETURNS double
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn(int, string) RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn(string, int) RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn2(int) RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn2';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn2(int, string) RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='Fn2';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create function function_ddl_test.fn_var_arg(int...) RETURNS int
      LOCATION '/test-warehouse/libTestUdfs.so' SYMBOL='VarSum';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create aggregate function function_ddl_test.agg_fn(int) RETURNS bigint
      LOCATION '/test-warehouse/libudasample.so' UPDATE_FN='CountUpdate';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      create aggregate function function_ddl_test.agg_fn(int, string) RETURNS int
      LOCATION '/test-warehouse/libTestUdas.so' UPDATE_FN='TwoArgUpdate';
      
      MainThread: No results found. Skipping verification
      -- executing against localhost:21000
      show functions in default;
      
      MainThread: Comparing QueryTestResults (expected vs actual):
      'INT','fn()' == 'INT','fn()'
      None != 'STRING','udf_update_test_create1()'
      None != 'STRING','udf_update_test_create2()'
      None != 'STRING','udf_update_test_drop()'
      Number of rows returned (expected vs actual): 1 != 4
      

      Attachments

        Issue Links

          Activity

            People

              mikeb Michael Brown
              hsheinblatt_impala_e511 Harrison Sheinblatt
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: