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

Simplified SQL Query for Problem Diagnosis

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Duplicate
    • 10.4.33, 10.11.7
    • N/A
    • Optimizer - CTE, Parser
    • ubuntu 20.04

    Description

      Problem Description

      When attempting to execute a complex SQL query from MDEV-32724, it will crash. To make it easier to diagnose and fix the issue, I have simplified the original query. The simplified query is intended to replicate the behavior that leads to the system crash, allowing us to focus on the core issue without getting lost in the complexity of the original query.

      Original reproduce step:

       
      CREATE TABLE x ( x INT ) ;
      INSERT INTO x ( x ) VALUES ( 1 ) ;
      UPDATE x SET x = 1 WHERE x = 1 ;
      INSERT INTO x ( x ) VALUES ( 1 ) , ( 1 ) ;
      WITH RECURSIVE x ( x ) AS ( WITH x ( x ) AS ( SELECT 1 EXCEPT SELECT x ^ 1 FROM x ) SELECT 1 FROM x AS x EXCEPT SELECT x + 1 FROM x ) SELECT - x , x FROM x ;
      
      

      Minimal reproduce step:

       
      CREATE TABLE x ( x INT ) ;
       
      WITH RECURSIVE x ( x ) AS (
           WITH x ( x ) AS (  SELECT 1 FROM x ) 
              SELECT 1 FROM x  EXCEPT SELECT 1 FROM x )
      SELECT x FROM x ;
      
      

      I kindly request the development team to examine this simplified query to identify the root cause of the MDEV-32724 and fix the issue as soon as possible. By the way, please let me know if this simplified query is useful.I believe that by analyzing and fixing this simplified query, you can more easily locate the problem in the original complex query.

      Thank you for your hard work and support!

      Attachments

        Issue Links

          Activity

            danblack Daniel Black added a comment -

            Infinite recursion with CTE only:

            10.4 ef7abc881c770e7ee3f8c9611566697915a18c69

            (gdb) bt full
            #0  st_select_lex::handle_derived (this=0x52900008a548, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420
            No locals.
            #1  0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x52b0000a5640, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087
                    sl = 0x52900008a548
                    unit = <optimized out>
            #2  0x00000000009c891b in LEX::handle_list_of_derived (this=0x52b00009deb0, table_list=<optimized out>, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.h:4455
                    tl = 0x52b0000a5640
            #3  st_select_lex::handle_derived (this=<optimized out>, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420
            No locals.
            #4  0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x529000087228, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087
                    sl = 0x52b0000a4e38
                    unit = <optimized out>
            #5  0x00000000009c891b in LEX::handle_list_of_derived (this=0x52b00009deb0, table_list=<optimized out>, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.h:4455
                    tl = 0x529000087228
            #6  st_select_lex::handle_derived (this=<optimized out>, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420
            No locals.
            #7  0x0000000000ac508b in JOIN::prepare (this=0x52900008cde8, tables_init=<optimized out>, wild_num=<optimized out>, conds_init=<optimized out>, og_num=<optimized out>, 
                order_init=<optimized out>, skip_order_by=<optimized out>, group_init=<optimized out>, having_init=<optimized out>, proc_param_init=<optimized out>, select_lex_arg=<optimized out>, 
                unit_arg=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:1243
                    trace_wrapper = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, 
                        closed = <optimized out>}, <No data fields>}
                    trace_prepare = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, 
                        closed = <optimized out>}, <No data fields>}
                    trace_steps = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa68 <vtable for Json_writer_array+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, 
                        closed = <optimized out>}, <No data fields>}
                    real_og_num = <optimized out>
                    derived = <optimized out>
                    save_place = <optimized out>
                    with_clause = <optimized out>
                    res = <optimized out>
                    with_elem = <optimized out>
            #8  0x0000000000ab9d08 in mysql_select (thd=<optimized out>, thd@entry=0x52b00009a208, tables=<optimized out>, wild_num=<optimized out>, 
                fields=@0x52b0000a64a0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x52b0000a6a20, last = 0x52b0000a6b78, elements = 2}, <No data fields>}, conds=<optimized out>, 
                og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, 
                unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:4813
                    err = 0
                    free_join = <optimized out>
                    join = 0x52900008cde8
            #9  0x0000000000ab9627 in handle_select (thd=thd@entry=0x52b00009a208, lex=<optimized out>, result=result@entry=0x52900008ae50, setup_tables_done_option=setup_tables_done_option@entry=0)
                at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:442
                    unit = 0x52b00009df70
                    select_lex = 0x52b0000a6340
                    res = <optimized out>
            #10 0x0000000000a47668 in execute_sqlcom_select (thd=0x52b00009a208, all_tables=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:6557
                    save_protocol = 0x0
                    lex = <optimized out>
                    result = 0x52900008ae50
                    res = <optimized out>
            #11 0x0000000000a374a5 in mysql_execute_command (thd=0x52b00009a208) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:3988
                    privileges_requested = <optimized out>
                    all_tables = 0x529000087228
                    trace_command = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, 
                        closed = <optimized out>}, <No data fields>}
                    trace_command_steps = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa68 <vtable for Json_writer_array+16>, my_writer = <optimized out>, context = {
                          writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
                    res = <optimized out>
                    up_result = 0
                    lex = 0x52b00009deb0
                    select_lex = <optimized out>
                    first_table = 0x529000087228
                    unit = 0x52b00009df70
                    have_table_map_for_update = <optimized out>
                    orig_binlog_format = BINLOG_FORMAT_MIXED
                    orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT
                    rpl_filter = <optimized out>
                    ots = <optimized out>
                    error = <optimized out>
                    wsrep_error_label = <optimized out>
            #12 0x0000000000a2a45d in mysql_parse (thd=0x52b00009a208, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, 
                is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:8096
                    found_semicolon = <optimized out>
                    error = <optimized out>
                    lex = 0x52b00009deb0
                    err = false
            #13 0x0000000000a23786 in dispatch_command (command=<optimized out>, thd=0x52b00009a208, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, 
                is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:1857
                    parser_state = {m_lip = {lookahead_token = <optimized out>, lookahead_yylval = <optimized out>, m_thd = <optimized out>, m_ptr = <optimized out>, m_tok_start = <optimized out>, 
                        m_tok_end = <optimized out>, m_end_of_query = <optimized out>, m_tok_start_prev = <optimized out>, m_buf = <optimized out>, m_buf_length = <optimized out>, 
                        m_echo = <optimized out>, m_echo_saved = <optimized out>, m_cpp_buf = <optimized out>, m_cpp_ptr = <optimized out>, m_cpp_tok_start = <optimized out>, 
                        m_cpp_tok_start_prev = <optimized out>, m_cpp_tok_end = <optimized out>, m_body_utf8 = <optimized out>, m_body_utf8_ptr = <optimized out>, 
                        m_cpp_utf8_processed_ptr = <optimized out>, next_state = <optimized out>, found_semicolon = <optimized out>, ignore_space = <optimized out>, stmt_prepare_mode = <optimized out>, 
                        multi_statements = <optimized out>, yylineno = <optimized out>, m_digest = <optimized out>, in_comment = <optimized out>, in_comment_saved = <optimized out>, 
                        m_cpp_text_start = <optimized out>, m_cpp_text_end = <optimized out>, m_underscore_cs = <optimized out>}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {
                          m_item = {<optimized out> <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = <optimized out>}
                    packet_end = <optimized out>
                    net = <optimized out>
                    error = false
                    do_end_of_statement = true
                    drop_more_results = <optimized out>
            #14 0x0000000000a2b33b in do_command (thd=0x52b00009a208) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:1378
                    packet = <optimized out>
                    net = 0x52b00009a4b0
                    packet_length = <optimized out>
                    command = COM_QUERY
                    return_value = <optimized out>
            #15 0x0000000000d77a54 in do_handle_one_connection (connect=0x508000000fa8) at /home/dan/repos/mariadb-server-10.4/sql/sql_connect.cc:1419
                    create_user = true
                    thd = 0x52b00009a208
                    thr_create_utime = <optimized out>
            #16 0x0000000000d773c8 in handle_one_connection (arg=0x508000000fa8) at /home/dan/repos/mariadb-server-10.4/sql/sql_connect.cc:1323
                    connect = 0x508000000fa8
            #17 0x000000000075d41f in asan_thread_start(void*) ()
            No symbol table info available.
            #18 0x00007ffff7888897 in start_thread (arg=<optimized out>) at pthread_create.c:444
                    ret = <optimized out>
                    pd = <optimized out>
                    out = <optimized out>
                    unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737346307488, 4146493390576177645, 140736127309504, -472, 2, 140737488340496, 4146493390689423853, 4146688343696101869}, 
                          mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
                    not_first_call = <optimized out>
            #19 0x00007ffff790f80c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
            No locals.
            (gdb) list
            4415	  @return TRUE an error occur.
            4416	*/
            4417	
            4418	bool st_select_lex::handle_derived(LEX *lex, uint phases)
            4419	{
            4420	  return lex->handle_list_of_derived(table_list.first, phases);
            4421	}
            4422	
            4423	
            4424	/**
            (gdb) info locals
            No locals.
            (gdb) up
            #1  0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x52b0000a5640, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087
            9087	        if (sl->handle_derived(lex, phases))
            (gdb) list
            9082	  if (unit)
            9083	  {
            9084	    if (!is_with_table_recursive_reference())
            9085	    {
            9086	      for (SELECT_LEX *sl= unit->first_select(); sl; sl= sl->next_select())
            9087	        if (sl->handle_derived(lex, phases))
            9088	          DBUG_RETURN(TRUE);
            9089	    }
            9090	    if (mysql_handle_single_derived(lex, this, phases))
            9091	      DBUG_RETURN(TRUE);
            (gdb) 
            

            danblack Daniel Black added a comment - Infinite recursion with CTE only: 10.4 ef7abc881c770e7ee3f8c9611566697915a18c69 (gdb) bt full #0 st_select_lex::handle_derived (this=0x52900008a548, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420 No locals. #1 0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x52b0000a5640, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087 sl = 0x52900008a548 unit = <optimized out> #2 0x00000000009c891b in LEX::handle_list_of_derived (this=0x52b00009deb0, table_list=<optimized out>, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.h:4455 tl = 0x52b0000a5640 #3 st_select_lex::handle_derived (this=<optimized out>, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420 No locals. #4 0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x529000087228, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087 sl = 0x52b0000a4e38 unit = <optimized out> #5 0x00000000009c891b in LEX::handle_list_of_derived (this=0x52b00009deb0, table_list=<optimized out>, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.h:4455 tl = 0x529000087228 #6 st_select_lex::handle_derived (this=<optimized out>, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/sql_lex.cc:4420 No locals. #7 0x0000000000ac508b in JOIN::prepare (this=0x52900008cde8, tables_init=<optimized out>, wild_num=<optimized out>, conds_init=<optimized out>, og_num=<optimized out>, order_init=<optimized out>, skip_order_by=<optimized out>, group_init=<optimized out>, having_init=<optimized out>, proc_param_init=<optimized out>, select_lex_arg=<optimized out>, unit_arg=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:1243 trace_wrapper = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>} trace_prepare = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>} trace_steps = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa68 <vtable for Json_writer_array+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>} real_og_num = <optimized out> derived = <optimized out> save_place = <optimized out> with_clause = <optimized out> res = <optimized out> with_elem = <optimized out> #8 0x0000000000ab9d08 in mysql_select (thd=<optimized out>, thd@entry=0x52b00009a208, tables=<optimized out>, wild_num=<optimized out>, fields=@0x52b0000a64a0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x52b0000a6a20, last = 0x52b0000a6b78, elements = 2}, <No data fields>}, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:4813 err = 0 free_join = <optimized out> join = 0x52900008cde8 #9 0x0000000000ab9627 in handle_select (thd=thd@entry=0x52b00009a208, lex=<optimized out>, result=result@entry=0x52900008ae50, setup_tables_done_option=setup_tables_done_option@entry=0) at /home/dan/repos/mariadb-server-10.4/sql/sql_select.cc:442 unit = 0x52b00009df70 select_lex = 0x52b0000a6340 res = <optimized out> #10 0x0000000000a47668 in execute_sqlcom_select (thd=0x52b00009a208, all_tables=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:6557 save_protocol = 0x0 lex = <optimized out> result = 0x52900008ae50 res = <optimized out> #11 0x0000000000a374a5 in mysql_execute_command (thd=0x52b00009a208) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:3988 privileges_requested = <optimized out> all_tables = 0x529000087228 trace_command = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa20 <vtable for Json_writer_object+16>, my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>} trace_command_steps = {<Json_writer_struct> = {_vptr$Json_writer_struct = 0x2e0fa68 <vtable for Json_writer_array+16>, my_writer = <optimized out>, context = { writer = <optimized out>}, closed = <optimized out>}, <No data fields>} res = <optimized out> up_result = 0 lex = 0x52b00009deb0 select_lex = <optimized out> first_table = 0x529000087228 unit = 0x52b00009df70 have_table_map_for_update = <optimized out> orig_binlog_format = BINLOG_FORMAT_MIXED orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT rpl_filter = <optimized out> ots = <optimized out> error = <optimized out> wsrep_error_label = <optimized out> #12 0x0000000000a2a45d in mysql_parse (thd=0x52b00009a208, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:8096 found_semicolon = <optimized out> error = <optimized out> lex = 0x52b00009deb0 err = false #13 0x0000000000a23786 in dispatch_command (command=<optimized out>, thd=0x52b00009a208, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:1857 parser_state = {m_lip = {lookahead_token = <optimized out>, lookahead_yylval = <optimized out>, m_thd = <optimized out>, m_ptr = <optimized out>, m_tok_start = <optimized out>, m_tok_end = <optimized out>, m_end_of_query = <optimized out>, m_tok_start_prev = <optimized out>, m_buf = <optimized out>, m_buf_length = <optimized out>, m_echo = <optimized out>, m_echo_saved = <optimized out>, m_cpp_buf = <optimized out>, m_cpp_ptr = <optimized out>, m_cpp_tok_start = <optimized out>, m_cpp_tok_start_prev = <optimized out>, m_cpp_tok_end = <optimized out>, m_body_utf8 = <optimized out>, m_body_utf8_ptr = <optimized out>, m_cpp_utf8_processed_ptr = <optimized out>, next_state = <optimized out>, found_semicolon = <optimized out>, ignore_space = <optimized out>, stmt_prepare_mode = <optimized out>, multi_statements = <optimized out>, yylineno = <optimized out>, m_digest = <optimized out>, in_comment = <optimized out>, in_comment_saved = <optimized out>, m_cpp_text_start = <optimized out>, m_cpp_text_end = <optimized out>, m_underscore_cs = <optimized out>}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = { m_item = {<optimized out> <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = <optimized out>} packet_end = <optimized out> net = <optimized out> error = false do_end_of_statement = true drop_more_results = <optimized out> #14 0x0000000000a2b33b in do_command (thd=0x52b00009a208) at /home/dan/repos/mariadb-server-10.4/sql/sql_parse.cc:1378 packet = <optimized out> net = 0x52b00009a4b0 packet_length = <optimized out> command = COM_QUERY return_value = <optimized out> #15 0x0000000000d77a54 in do_handle_one_connection (connect=0x508000000fa8) at /home/dan/repos/mariadb-server-10.4/sql/sql_connect.cc:1419 create_user = true thd = 0x52b00009a208 thr_create_utime = <optimized out> #16 0x0000000000d773c8 in handle_one_connection (arg=0x508000000fa8) at /home/dan/repos/mariadb-server-10.4/sql/sql_connect.cc:1323 connect = 0x508000000fa8 #17 0x000000000075d41f in asan_thread_start(void*) () No symbol table info available. #18 0x00007ffff7888897 in start_thread (arg=<optimized out>) at pthread_create.c:444 ret = <optimized out> pd = <optimized out> out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737346307488, 4146493390576177645, 140736127309504, -472, 2, 140737488340496, 4146493390689423853, 4146688343696101869}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> #19 0x00007ffff790f80c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 No locals. (gdb) list 4415 @return TRUE an error occur. 4416 */ 4417 4418 bool st_select_lex::handle_derived(LEX *lex, uint phases) 4419 { 4420 return lex->handle_list_of_derived(table_list.first, phases); 4421 } 4422 4423 4424 /** (gdb) info locals No locals. (gdb) up #1 0x0000000000cff6c6 in TABLE_LIST::handle_derived (this=0x52b0000a5640, lex=0x52b00009deb0, phases=2) at /home/dan/repos/mariadb-server-10.4/sql/table.cc:9087 9087 if (sl->handle_derived(lex, phases)) (gdb) list 9082 if (unit) 9083 { 9084 if (!is_with_table_recursive_reference()) 9085 { 9086 for (SELECT_LEX *sl= unit->first_select(); sl; sl= sl->next_select()) 9087 if (sl->handle_derived(lex, phases)) 9088 DBUG_RETURN(TRUE); 9089 } 9090 if (mysql_handle_single_derived(lex, this, phases)) 9091 DBUG_RETURN(TRUE); (gdb)

            Please, don't report the same bug again as a new issue, it will be simply closed as a duplicate and won't help to get a reply sooner.

            Instead, if you don't get a reply to your comment, you can add another comment, like "what about my simplified query, does it describe the same bug, does it help?" and even you can ping me directly by adding "serg". That might help better than creating duplicates.

            serg Sergei Golubchik added a comment - Please, don't report the same bug again as a new issue, it will be simply closed as a duplicate and won't help to get a reply sooner. Instead, if you don't get a reply to your comment, you can add another comment, like "what about my simplified query, does it describe the same bug, does it help?" and even you can ping me directly by adding " serg ". That might help better than creating duplicates.

            People

              Unassigned Unassigned
              Wangdada HeShan
              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.