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

MSAN use-of-uninitialized-value in optimizer_trace

    XMLWordPrintable

    Details

      Description

      The tests main.opt_trace main.opt_trace_security main.opt_trace_ucs2 main.opt_trace_index_merge main.opt_trace_index_merge_innodb fail with the following errors:

      10.5 d8ea11a33fba12331c98c04ff44c815a662faccb

      CURRENT_TEST: main.opt_trace_security
      mysqltest: At line 33: query 'select * from db1.t1' failed: 2013: Lost connection to MySQL server during query
      ==403245==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x55fdddb89b71 in my_gcvt /mariadb/10.5m/strings/dtoa.c:294:19
          #1 0x55fdddb9acd3 in process_dbl_arg /mariadb/10.5m/strings/my_vsnprintf.c:304:10
          #2 0x55fdddb9acd3 in my_vsnprintf_ex /mariadb/10.5m/strings/my_vsnprintf.c:694:11
          #3 0x55fdddba1043 in my_vsnprintf /mariadb/10.5m/strings/my_vsnprintf.c:760:10
          #4 0x55fdddba1043 in my_snprintf /mariadb/10.5m/strings/my_vsnprintf.c:769:11
          #5 0x55fddb0170b9 in Json_writer::add_double(double) /mariadb/10.5m/sql/my_json_writer.cc:186:15
          #6 0x55fddaa20d0c in Json_value_helper::add_double(double) /mariadb/10.5m/sql/my_json_writer.h:288:15
          #7 0x55fddaa20d0c in Json_writer_object::add(char const*, double) /mariadb/10.5m/sql/my_json_writer.h:406:15
          #8 0x55fddaa20d0c in best_access_path(JOIN*, st_join_table*, unsigned long long, st_position const*, unsigned int, bool, double, st_position*, st_position*) /mariadb/10.5m/sql/sql_select.cc:8051:23
          #9 0x55fddaac9e3b in best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int, unsigned int) /mariadb/10.5m/sql/sql_select.cc:9540:7
          #10 0x55fddaa285bc in greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int, unsigned int) /mariadb/10.5m/sql/sql_select.cc:8745:9
          #11 0x55fddaa285bc in choose_plan(JOIN*, unsigned long long) /mariadb/10.5m/sql/sql_select.cc:8310:9
          #12 0x55fdda9b7b49 in make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*) /mariadb/10.5m/sql/sql_select.cc:5555:11
          #13 0x55fdda998bf3 in JOIN::optimize_inner() /mariadb/10.5m/sql/sql_select.cc:2260:7
          #14 0x55fdda97b47c in JOIN::optimize() /mariadb/10.5m/sql/sql_select.cc:1606:10
          #15 0x55fdda95c706 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /mariadb/10.5m/sql/sql_select.cc:4655:19
          #16 0x55fdda95bdd8 in handle_select(THD*, LEX*, select_result*, unsigned long) /mariadb/10.5m/sql/sql_select.cc:417:10
          #17 0x55fdda893812 in execute_sqlcom_select(THD*, TABLE_LIST*) /mariadb/10.5m/sql/sql_parse.cc:6207:12
          #18 0x55fdda86afaa in mysql_execute_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:3939:12
          #19 0x55fdda8532f5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:7991:18
          #20 0x55fdda843c79 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:1874:7
          #21 0x55fdda8551ba in do_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:1355:17
          #22 0x55fddae712be in do_handle_one_connection(CONNECT*, bool) /mariadb/10.5m/sql/sql_connect.cc:1411:11
          #23 0x55fddae70aa4 in handle_one_connection /mariadb/10.5m/sql/sql_connect.cc:1313:5
          #24 0x55fddc31b2c7 in pfs_spawn_thread /mariadb/10.5m/storage/perfschema/pfs.cc:2201:3
          #25 0x7fe72a87bf26 in start_thread nptl/pthread_create.c:479:8
          #26 0x7fe72a35a31e in clone misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Uninitialized value was created by an allocation of 'stack' in the stack frame of function 'my_qsort2'
          #0 0x55fddd95de20 in my_qsort2 /mariadb/10.5m/mysys/mf_qsort.c:100
      

      10.5 d8ea11a33fba12331c98c04ff44c815a662faccb

      CURRENT_TEST: main.opt_trace
      mysqltest: At line 24: query 'select * from v1' failed: 2013: Lost connection to MySQL server during query
      ==403246==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x55e516117b71 in my_gcvt /mariadb/10.5m/strings/dtoa.c:294:19
          #1 0x55e516128cd3 in process_dbl_arg /mariadb/10.5m/strings/my_vsnprintf.c:304:10
          #2 0x55e516128cd3 in my_vsnprintf_ex /mariadb/10.5m/strings/my_vsnprintf.c:694:11
          #3 0x55e51612f043 in my_vsnprintf /mariadb/10.5m/strings/my_vsnprintf.c:760:10
          #4 0x55e51612f043 in my_snprintf /mariadb/10.5m/strings/my_vsnprintf.c:769:11
          #5 0x55e5135a50b9 in Json_writer::add_double(double) /mariadb/10.5m/sql/my_json_writer.cc:186:15
          #6 0x55e512faed0c in Json_value_helper::add_double(double) /mariadb/10.5m/sql/my_json_writer.h:288:15
          #7 0x55e512faed0c in Json_writer_object::add(char const*, double) /mariadb/10.5m/sql/my_json_writer.h:406:15
          #8 0x55e512faed0c in best_access_path(JOIN*, st_join_table*, unsigned long long, st_position const*, unsigned int, bool, double, st_position*, st_position*) /mariadb/10.5m/sql/sql_select.cc:8051:23
          #9 0x55e513057e3b in best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int, unsigned int) /mariadb/10.5m/sql/sql_select.cc:9540:7
          #10 0x55e512fb65bc in greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int, unsigned int) /mariadb/10.5m/sql/sql_select.cc:8745:9
          #11 0x55e512fb65bc in choose_plan(JOIN*, unsigned long long) /mariadb/10.5m/sql/sql_select.cc:8310:9
          #12 0x55e512f45b49 in make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*) /mariadb/10.5m/sql/sql_select.cc:5555:11
          #13 0x55e512f26bf3 in JOIN::optimize_inner() /mariadb/10.5m/sql/sql_select.cc:2260:7
          #14 0x55e512f0947c in JOIN::optimize() /mariadb/10.5m/sql/sql_select.cc:1606:10
          #15 0x55e512eea706 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /mariadb/10.5m/sql/sql_select.cc:4655:19
          #16 0x55e512ee9dd8 in handle_select(THD*, LEX*, select_result*, unsigned long) /mariadb/10.5m/sql/sql_select.cc:417:10
          #17 0x55e512e21812 in execute_sqlcom_select(THD*, TABLE_LIST*) /mariadb/10.5m/sql/sql_parse.cc:6207:12
          #18 0x55e512df8faa in mysql_execute_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:3939:12
          #19 0x55e512de12f5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:7991:18
          #20 0x55e512dd1c79 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:1874:7
          #21 0x55e512de31ba in do_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:1355:17
          #22 0x55e5133ff2be in do_handle_one_connection(CONNECT*, bool) /mariadb/10.5m/sql/sql_connect.cc:1411:11
          #23 0x55e5133feaa4 in handle_one_connection /mariadb/10.5m/sql/sql_connect.cc:1313:5
          #24 0x55e5148a92c7 in pfs_spawn_thread /mariadb/10.5m/storage/perfschema/pfs.cc:2201:3
          #25 0x7faede2e3f26 in start_thread nptl/pthread_create.c:479:8
          #26 0x7faedddc231e in clone misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Uninitialized value was created by an allocation of 'stack' in the stack frame of function 'my_qsort2'
          #0 0x55e515eebe20 in my_qsort2 /mariadb/10.5m/mysys/mf_qsort.c:100
      

      10.5 d8ea11a33fba12331c98c04ff44c815a662faccb

      CURRENT_TEST: main.opt_trace_ucs2
      mysqltest: At line 8: query 'explain format=json select * from t1 force index(col1) where col1 >='a'' failed: 2013: Lost connection to MySQL server during query
      ==403248==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x55e0afdc3c56 in my_gcvt /mariadb/10.5m/strings/dtoa.c:267:31
          #1 0x55e0afdd4cd3 in process_dbl_arg /mariadb/10.5m/strings/my_vsnprintf.c:304:10
          #2 0x55e0afdd4cd3 in my_vsnprintf_ex /mariadb/10.5m/strings/my_vsnprintf.c:694:11
          #3 0x55e0afddb043 in my_vsnprintf /mariadb/10.5m/strings/my_vsnprintf.c:760:10
          #4 0x55e0afddb043 in my_snprintf /mariadb/10.5m/strings/my_vsnprintf.c:769:11
          #5 0x55e0ad2510b9 in Json_writer::add_double(double) /mariadb/10.5m/sql/my_json_writer.cc:186:15
          #6 0x55e0ad3e228b in Json_value_helper::add_double(double) /mariadb/10.5m/sql/my_json_writer.h:288:15
          #7 0x55e0ad3e228b in Json_writer_object::add(char const*, double) /mariadb/10.5m/sql/my_json_writer.h:406:15
          #8 0x55e0ad3e228b in Range_rowid_filter_cost_info::trace_info(THD*) /mariadb/10.5m/sql/rowid_filter.cc:434:10
          #9 0x55e0ad3e1bab in TABLE::trace_range_rowid_filters(THD*) const /mariadb/10.5m/sql/rowid_filter.cc:426:11
          #10 0x55e0acbf0043 in make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*) /mariadb/10.5m/sql/sql_select.cc:5453:23
          #11 0x55e0acbd2bf3 in JOIN::optimize_inner() /mariadb/10.5m/sql/sql_select.cc:2260:7
          #12 0x55e0acbb547c in JOIN::optimize() /mariadb/10.5m/sql/sql_select.cc:1606:10
          #13 0x55e0acb96706 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /mariadb/10.5m/sql/sql_select.cc:4655:19
          #14 0x55e0acce337e in mysql_explain_union(THD*, st_select_lex_unit*, select_result*) /mariadb/10.5m/sql/sql_select.cc:27199:10
          #15 0x55e0acacccb2 in execute_sqlcom_select(THD*, TABLE_LIST*) /mariadb/10.5m/sql/sql_parse.cc:6146:12
          #16 0x55e0acaa4faa in mysql_execute_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:3939:12
          #17 0x55e0aca8d2f5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:7991:18
          #18 0x55e0aca7dc79 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:1874:7
          #19 0x55e0aca8f1ba in do_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:1355:17
          #20 0x55e0ad0ab2be in do_handle_one_connection(CONNECT*, bool) /mariadb/10.5m/sql/sql_connect.cc:1411:11
          #21 0x55e0ad0aaaa4 in handle_one_connection /mariadb/10.5m/sql/sql_connect.cc:1313:5
          #22 0x55e0ae5552c7 in pfs_spawn_thread /mariadb/10.5m/storage/perfschema/pfs.cc:2201:3
          #23 0x7fd411172f26 in start_thread nptl/pthread_create.c:479:8
          #24 0x7fd410c5131e in clone misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Uninitialized value was created by an allocation of 'key_infix.i' in the stack frame of function '_ZN10SQL_SELECT17test_quick_selectEP3THD6BitmapILj64EEyybbbb'
          #0 0x55e0addbbd80 in SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool) /mariadb/10.5m/sql/opt_range.cc:2646
      

      10.5 d8ea11a33fba12331c98c04ff44c815a662faccb

      CURRENT_TEST: main.opt_trace_index_merge
      mysqltest: At line 17: query 'explain select * from t1 where a=1 or b=1' failed: 2013: Lost connection to MySQL server during query
      ==403247==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x56149728ec56 in my_gcvt /mariadb/10.5m/strings/dtoa.c:267:31
          #1 0x56149729fcd3 in process_dbl_arg /mariadb/10.5m/strings/my_vsnprintf.c:304:10
          #2 0x56149729fcd3 in my_vsnprintf_ex /mariadb/10.5m/strings/my_vsnprintf.c:694:11
          #3 0x5614972a6043 in my_vsnprintf /mariadb/10.5m/strings/my_vsnprintf.c:760:10
          #4 0x5614972a6043 in my_snprintf /mariadb/10.5m/strings/my_vsnprintf.c:769:11
          #5 0x56149471c0b9 in Json_writer::add_double(double) /mariadb/10.5m/sql/my_json_writer.cc:186:15
          #6 0x5614952b16de in Json_value_helper::add_double(double) /mariadb/10.5m/sql/my_json_writer.h:288:15
          #7 0x5614952b16de in Json_writer_object::add(char const*, double) /mariadb/10.5m/sql/my_json_writer.h:406:15
          #8 0x5614952b16de in get_best_disjunct_quick(PARAM*, SEL_IMERGE*, double) /mariadb/10.5m/sql/opt_range.cc:5143:15
          #9 0x56149528ef62 in SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool) /mariadb/10.5m/sql/opt_range.cc:2973:25
          #10 0x5614940bad93 in get_quick_record_count(THD*, SQL_SELECT*, TABLE*, Bitmap<64u> const*, unsigned long long) /mariadb/10.5m/sql/sql_select.cc:4713:9
          #11 0x5614940bad93 in make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*) /mariadb/10.5m/sql/sql_select.cc:5438:20
          #12 0x56149409dbf3 in JOIN::optimize_inner() /mariadb/10.5m/sql/sql_select.cc:2260:7
          #13 0x56149408047c in JOIN::optimize() /mariadb/10.5m/sql/sql_select.cc:1606:10
          #14 0x561494061706 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /mariadb/10.5m/sql/sql_select.cc:4655:19
          #15 0x5614941ae37e in mysql_explain_union(THD*, st_select_lex_unit*, select_result*) /mariadb/10.5m/sql/sql_select.cc:27199:10
          #16 0x561493f97cb2 in execute_sqlcom_select(THD*, TABLE_LIST*) /mariadb/10.5m/sql/sql_parse.cc:6146:12
          #17 0x561493f6ffaa in mysql_execute_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:3939:12
          #18 0x561493f582f5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:7991:18
          #19 0x561493f48c79 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:1874:7
          #20 0x561493f5a1ba in do_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:1355:17
          #21 0x5614945762be in do_handle_one_connection(CONNECT*, bool) /mariadb/10.5m/sql/sql_connect.cc:1411:11
          #22 0x561494575aa4 in handle_one_connection /mariadb/10.5m/sql/sql_connect.cc:1313:5
          #23 0x561495a202c7 in pfs_spawn_thread /mariadb/10.5m/storage/perfschema/pfs.cc:2201:3
          #24 0x7f8fd4480f26 in start_thread nptl/pthread_create.c:479:8
          #25 0x7f8fd3f5f31e in clone misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Uninitialized value was created by an allocation of 'seq.i' in the stack frame of function '_ZL20get_key_scans_paramsP5PARAMP8SEL_TREEbbd'
          #0 0x5614952a48d0 in get_key_scans_params(PARAM*, SEL_TREE*, bool, bool, double) /mariadb/10.5m/sql/opt_range.cc:7375
      

      10.5 d8ea11a33fba12331c98c04ff44c815a662faccb

      CURRENT_TEST: main.opt_trace_index_merge_innodb
      mysqltest: At line 35: query 'explain select * from t1 where pk1 != 0  and key1 = 1' failed: 2013: Lost connection to MySQL server during query
      ==403244==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x5622f2307b71 in my_gcvt /mariadb/10.5m/strings/dtoa.c:294:19
          #1 0x5622f2318cd3 in process_dbl_arg /mariadb/10.5m/strings/my_vsnprintf.c:304:10
          #2 0x5622f2318cd3 in my_vsnprintf_ex /mariadb/10.5m/strings/my_vsnprintf.c:694:11
          #3 0x5622f231f043 in my_vsnprintf /mariadb/10.5m/strings/my_vsnprintf.c:760:10
          #4 0x5622f231f043 in my_snprintf /mariadb/10.5m/strings/my_vsnprintf.c:769:11
          #5 0x5622ef7950b9 in Json_writer::add_double(double) /mariadb/10.5m/sql/my_json_writer.cc:186:15
          #6 0x5622f039532a in Json_value_helper::add_double(double) /mariadb/10.5m/sql/my_json_writer.h:288:15
          #7 0x5622f039532a in Json_writer_object::add(char const*, double) /mariadb/10.5m/sql/my_json_writer.h:406:15
          #8 0x5622f039532a in ror_intersect_add(ROR_INTERSECT_INFO*, st_ror_scan_info*, Json_writer_object*, bool) /mariadb/10.5m/sql/opt_range.cc:6883:18
          #9 0x5622f03250e6 in get_best_ror_intersect(PARAM const*, SEL_TREE*, double, bool*) /mariadb/10.5m/sql/opt_range.cc:7079:10
          #10 0x5622f0305d7a in SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool) /mariadb/10.5m/sql/opt_range.cc:2925:24
          #11 0x5622ef133d93 in get_quick_record_count(THD*, SQL_SELECT*, TABLE*, Bitmap<64u> const*, unsigned long long) /mariadb/10.5m/sql/sql_select.cc:4713:9
          #12 0x5622ef133d93 in make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*) /mariadb/10.5m/sql/sql_select.cc:5438:20
          #13 0x5622ef116bf3 in JOIN::optimize_inner() /mariadb/10.5m/sql/sql_select.cc:2260:7
          #14 0x5622ef0f947c in JOIN::optimize() /mariadb/10.5m/sql/sql_select.cc:1606:10
          #15 0x5622ef0da706 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /mariadb/10.5m/sql/sql_select.cc:4655:19
          #16 0x5622ef22737e in mysql_explain_union(THD*, st_select_lex_unit*, select_result*) /mariadb/10.5m/sql/sql_select.cc:27199:10
          #17 0x5622ef010cb2 in execute_sqlcom_select(THD*, TABLE_LIST*) /mariadb/10.5m/sql/sql_parse.cc:6146:12
          #18 0x5622eefe8faa in mysql_execute_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:3939:12
          #19 0x5622eefd12f5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:7991:18
          #20 0x5622eefc1c79 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /mariadb/10.5m/sql/sql_parse.cc:1874:7
          #21 0x5622eefd31ba in do_command(THD*) /mariadb/10.5m/sql/sql_parse.cc:1355:17
          #22 0x5622ef5ef2be in do_handle_one_connection(CONNECT*, bool) /mariadb/10.5m/sql/sql_connect.cc:1411:11
          #23 0x5622ef5eeaa4 in handle_one_connection /mariadb/10.5m/sql/sql_connect.cc:1313:5
          #24 0x5622f0a992c7 in pfs_spawn_thread /mariadb/10.5m/storage/perfschema/pfs.cc:2201:3
          #25 0x7fcba8fbaf26 in start_thread nptl/pthread_create.c:479:8
          #26 0x7fcba8a9931e in clone misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
        Uninitialized value was created by an allocation of 'path2' in the stack frame of function '_ZL32btr_estimate_n_rows_in_range_lowP12dict_index_tP9btr_pos_tS2_j'
          #0 0x5622f18f39c0 in btr_estimate_n_rows_in_range_low(dict_index_t*, btr_pos_t*, btr_pos_t*, unsigned int) /mariadb/10.5m/storage/innobase/btr/btr0cur.cc:6143
      

      Note: A work-around is already in place, to avoid even more tests failing:

      diff --git a/sql/my_json_writer.cc b/sql/my_json_writer.cc
      index ca519981b27..3234b8f9995 100644
      --- a/sql/my_json_writer.cc
      +++ b/sql/my_json_writer.cc
      @@ -180,9 +180,6 @@ void Json_writer::add_size(longlong val)
       void Json_writer::add_double(double val)
       {
         char buf[64];
      -#if __has_feature(memory_sanitizer)  // FIXME: remove this workaround for
      -  __msan_unpoison(&val, sizeof val); // main.range_mrr_icp & many other tests
      -#endif
         size_t len= my_snprintf(buf, sizeof(buf), "%-.11lg", val);
         add_unquoted_str(buf, len);
       }
      

      I would recommend that this work-around be removed, to possibly get warnings earlier.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: