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

Crash with PREPARE + SP out parameter + literal

Details

    • 10.2.4-1

    Description

      This script:

      DELIMITER $$
      CREATE OR REPLACE PROCEDURE p1(OUT a INT)
      BEGIN
        SET a= 10;
      END;
      $$
      DELIMITER ;
      PREPARE stmt FROM 'CALL p1(?)';
      EXECUTE stmt USING 10;
      

      crashes with the following stack trace:

      #0  0x00007ffff5994a28 in raise () from /lib64/libc.so.6
      #1  0x00007ffff599662a in abort () from /lib64/libc.so.6
      #2  0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
      #3  0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
      #4  0x0000555555a2a58c in Protocol_text::send_out_parameters (
          this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
          at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
      #5  0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70, 
          expanded_query=0x7ffff7f2f0c0, open_cursor=false)
          at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
      #6  0x0000555555b184c8 in Prepared_statement::execute_loop (
          this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false, 
          packet=0x0, packet_end=0x0)
          at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
      #7  0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
          at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
      #8  0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
          at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
      #9  0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070, 
          rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21, 
          parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
      

      mysqld: /data/src/10.2/sql/protocol.cc:1326: virtual Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
      170112 12:44:08 [ERROR] mysqld got signal 6 ;
      

      Attachments

        Activity

          bar Alexander Barkov created issue -
          bar Alexander Barkov made changes -
          Field Original Value New Value
          Priority Major [ 3 ] Critical [ 2 ]
          bar Alexander Barkov made changes -
          Description This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          SET @a=2;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}
          This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}
          elenst Elena Stepanova made changes -
          Description This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}
          This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}

          {noformat}
          Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
          170112 12:44:08 [ERROR] mysqld got signal 6 ;
          {noformat}
          elenst Elena Stepanova made changes -
          Description This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}

          {noformat}
          Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
          170112 12:44:08 [ERROR] mysqld got signal 6 ;
          {noformat}
          This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}

          {noformat}
          mysqld: /data/src/10.2/sql/protocol.cc:1326: virtual Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
          170112 12:44:08 [ERROR] mysqld got signal 6 ;
          {noformat}
          elenst Elena Stepanova made changes -
          Labels 10.2-rc
          ratzpo Rasmus Johansson (Inactive) made changes -
          Sprint 10.2.4-1 [ 132 ]
          bar Alexander Barkov made changes -
          Description This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a:= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}

          {noformat}
          mysqld: /data/src/10.2/sql/protocol.cc:1326: virtual Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
          170112 12:44:08 [ERROR] mysqld got signal 6 ;
          {noformat}
          This script:
          {code:sql}
          DELIMITER $$
          CREATE OR REPLACE PROCEDURE p1(OUT a INT)
          BEGIN
            SET a= 10;
          END;
          $$
          DELIMITER ;
          PREPARE stmt FROM 'CALL p1(?)';
          EXECUTE stmt USING 10;
          {code}
          crashes with the following stack trace:
          {noformat}
          #0 0x00007ffff5994a28 in raise () from /lib64/libc.so.6
          #1 0x00007ffff599662a in abort () from /lib64/libc.so.6
          #2 0x00007ffff598d227 in __assert_fail_base () from /lib64/libc.so.6
          #3 0x00007ffff598d2d2 in __assert_fail () from /lib64/libc.so.6
          #4 0x0000555555a2a58c in Protocol_text::send_out_parameters (
              this=0x7ffeb1016600, sp_params=0x7ffeb110def8)
              at /home/bar/maria-git/server.10.2/sql/protocol.cc:1326
          #5 0x0000555555b1a2fd in Prepared_statement::execute (this=0x7ffeb101da70,
              expanded_query=0x7ffff7f2f0c0, open_cursor=false)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4698
          #6 0x0000555555b184c8 in Prepared_statement::execute_loop (
              this=0x7ffeb101da70, expanded_query=0x7ffff7f2f0c0, open_cursor=false,
              packet=0x0, packet_end=0x0)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:4083
          #7 0x0000555555b16246 in mysql_sql_stmt_execute (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_prepare.cc:3193
          #8 0x0000555555aef38f in mysql_execute_command (thd=0x7ffeb1016070)
              at /home/bar/maria-git/server.10.2/sql/sql_parse.cc:3445
          #9 0x0000555555afcf83 in mysql_parse (thd=0x7ffeb1016070,
              rawbuf=0x7ffeb1063088 "EXECUTE stmt USING 10", length=21,
              parser_state=0x7ffff7f2fd20, is_com_multi=false, is_next_command=false)
          {noformat}

          {noformat}
          mysqld: /data/src/10.2/sql/protocol.cc:1326: virtual Protocol_text::send_out_parameters(List<Item_param>*): Assertion `0' failed.
          170112 12:44:08 [ERROR] mysqld got signal 6 ;
          {noformat}
          bar Alexander Barkov made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          bar Alexander Barkov made changes -
          Assignee Alexander Barkov [ bar ] Sergei Golubchik [ serg ]
          Status In Progress [ 3 ] In Review [ 10002 ]
          serg Sergei Golubchik made changes -
          Assignee Sergei Golubchik [ serg ] Alexander Barkov [ bar ]
          Status In Review [ 10002 ] Stalled [ 10000 ]
          bar Alexander Barkov made changes -
          Fix Version/s 10.2.4 [ 22116 ]
          Fix Version/s 10.2 [ 14601 ]
          Resolution Fixed [ 1 ]
          Status Stalled [ 10000 ] Closed [ 6 ]
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 79175 ] MariaDB v4 [ 151522 ]

          People

            bar Alexander Barkov
            bar Alexander Barkov
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.