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

Update Join Crash with signal 11 error in Connect Storage Engine

Details

    Description

      Hi~.team.

      I am using MariaDB 10.1.28.
      When UPDATE is performed by joining two tables composed of CONNECT ENGINE
      MariaDB is restarted with a signal 11 error.
      Here is the error log.

      Version: '10.1.28-MariaDB' socket: '/tmp/mysql.sock' port: 3306 MariaDB Server
      2018-10-02 14:15:12 140011942348544 [Note] /usr/local/mariadb/bin/mysqld: Normal shutdown

      2018-10-02 14:15:12 140011942348544 [Note] Event Scheduler: Killing the scheduler thread, thread id 2
      2018-10-02 14:15:12 140011942348544 [Note] Event Scheduler: Waiting for the scheduler thread to reply
      2018-10-02 14:15:12 140011942348544 [Note] Event Scheduler: Stopped
      2018-10-02 14:15:12 140011942348544 [Note] Event Scheduler: Purging the queue. 0 events
      2018-10-02 14:15:12 139987416762112 [Note] InnoDB: FTS optimize thread exiting.
      2018-10-02 14:15:12 140011942348544 [Note] InnoDB: Starting shutdown...
      2018-10-02 14:15:12 140011942348544 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
      2018-10-02 14:15:14 140011942348544 [Note] InnoDB: Shutdown completed; log sequence number 2707209131
      2018-10-02 14:15:14 140011942348544 [Note] /usr/local/mariadb/bin/mysqld: Shutdown complete

      181002 14:15:14 mysqld_safe mysqld from pid file /home/iserp_data/data/ST-ACHR-DB-01.pid ended
      181002 14:15:18 mysqld_safe Starting mysqld daemon with databases from /home/iserp_data/data
      2018-10-02 14:15:18 140374445676416 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
      2018-10-02 14:15:18 140374445676416 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.1.28-MariaDB) starting as process 24211 ...
      2018-10-02 14:15:18 140374445676416 [Note] Using unique option prefix 'myisam_recover' is error-prone and can break in the future. Please use the full name 'myisam-recover-options' instead.
      2018-10-02 14:15:18 140374445676416 [Note] CONNECT: Version 1.06.0004 September 03, 2017
      2018-10-02 14:15:18 7fab78f85780 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
      2018-10-02 14:15:18 7fab78f85780 InnoDB: Warning: Using innodb_locks_unsafe_for_binlog is DEPRECATED. This option may be removed in future releases. Please use READ COMMITTED transaction isolation level instead, see http://dev.mysql.com/doc/refman/5.6/en/set-transaction.html.
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Using mutexes to ref count buffer pool pages
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: The InnoDB memory heap is disabled
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Compressed tables use zlib 1.2.3
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Using Linux native AIO
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Using SSE crc32 instructions
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Initializing buffer pool, size = 20.0G
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Completed initialization of buffer pool
      2018-10-02 14:15:18 140374445676416 [Note] InnoDB: Highest supported file format is Barracuda.
      2018-10-02 14:15:19 140374445676416 [Note] InnoDB: 128 rollback segment(s) are active.
      2018-10-02 14:15:19 140374445676416 [Note] InnoDB: Waiting for purge to start
      2018-10-02 14:15:19 140374445676416 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.36-82.2 started; log sequence number 2707209131
      2018-10-02 14:15:19 140349888493312 [Note] InnoDB: Dumping buffer pool(s) not yet started
      2018-10-02 14:15:19 140374445676416 [Note] Plugin 'FEEDBACK' is disabled.
      2018-10-02 14:15:19 140374445676416 [Note] Server socket created on IP: '::'.
      2018-10-02 14:15:19 140374444820224 [Note] Event Scheduler: scheduler thread started with id 2
      2018-10-02 14:15:19 140374445676416 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
      Version: '10.1.28-MariaDB' socket: '/tmp/mysql.sock' port: 3306 MariaDB Server
      181002 14:15:57 [ERROR] mysqld got signal 11 ;
      This could be because you hit a bug. It is also possible that this binary
      or one of the libraries it was linked against is corrupt, improperly built,
      or misconfigured. This error can also be caused by malfunctioning hardware.

      To report this bug, see https://mariadb.com/kb/en/reporting-bugs

      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed,
      something is definitely wrong and this may fail.

      Server version: 10.1.28-MariaDB
      key_buffer_size=67108864
      read_buffer_size=131072
      max_used_connections=1
      max_threads=1001
      thread_count=2
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 4304093 K bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.

      Thread pointer: 0x7fa6abfb2008
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7fab77497d98 thread_stack 0x3c000
      /usr/local/mariadb/bin/mysqld(my_print_stacktrace+0x2b)[0x55d31571f3bb]
      /usr/local/mariadb/bin/mysqld(handle_fatal_signal+0x4d5)[0x55d31527d925]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fab7831e390]
      /usr/local/mariadb/lib/plugin/ha_connect.so(_ZN7TDBODBC6OpenDBEP7_global+0x369)[0x7fab5657cb89]
      /usr/local/mariadb/lib/plugin/ha_connect.so(_ZN10ha_connect8rnd_initEb+0x1ab)[0x7fab564e36eb]
      /usr/local/mariadb/lib/plugin/ha_connect.so(_ZN10ha_connect10index_initEjb+0x12f)[0x7fab564e1cff]
      mysys/stacktrace.c:268(my_print_stacktrace)[0x55d31514978c]
      sql/signal_handler.cc:168(handle_fatal_signal)[0x55d31513aff9]
      sql/handler.h:2761(handler::ha_index_init(unsigned int, bool))[0x55d3151314ef]
      sql/sql_select.cc:18406(sub_select(JOIN*, st_join_table*, bool))[0x55d31513b079]
      sql/sql_select.cc:18054(do_select(JOIN*, List<Item>, TABLE, Procedure*))[0x55d315148f9d]
      sql/sql_select.cc:3225(JOIN::exec_inner())[0x55d31515c89e]
      sql/sql_select.cc:2513(JOIN::exec())[0x55d31515e82d]
      sql/sql_select.cc:3451(mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x55d31515b1fa]
      sql/sql_explain.h:204(THD::is_error() const)[0x55d3151a016c]
      sql/sql_parse.cc:3845(mysql_execute_command(THD*))[0x55d31510b066]
      sql/sql_parse.cc:7333(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x55d31510d985]
      sql/sql_parse.cc:1484(dispatch_command(enum_server_command, THD*, char*, unsigned int))[0x55d31511047e]
      sql/sql_parse.cc:1108(do_command(THD*))[0x55d3151109fe]
      sql/threadpool_common.cc:271(threadpool_process_request(THD*))[0x55d31520b4f7]
      sql/threadpool_unix.cc:1455(handle_event)[0x55d315257055]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fab783146ba]
      /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fab779bf41d]

      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7fa6abfeb020): is an invalid pointer
      Connection ID (thread ID): 5
      Status: NOT_KILLED

      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=off

      The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
      information that should help you find out what is causing the crash.

      We think the query pointer is invalid, but we will try to print it anyway.
      Query: UPDATE psa_taxhdr_cw a INNER JOIN psa_tax_cw b
      ON (a.fac_tp = b.fac_tp
      AND a.tax_no = b.tax_no)
      SET b.acct_tran_yn = 'Y'
      WHERE a.fac_tp = (CASE WHEN '1201' = '1201' THEN '0102'
      WHEN '1201' = '1501' THEN '0502'
      WHEN '1201' = '1502' THEN '0501'
      WHEN '1201' = '1601' THEN '0601'
      WHEN '1201' = '1602' THEN '0603'
      END)
      AND a.tax_dt BETWEEN '2018-08-01' AND '2018-08-13'
      AND b.tax_tp IN ('01','02')
      AND a.sale_tp IN ('01','02','03','12')
      AND IFNULL(b.acct_tran_yn,'N') = 'N'

      181002 14:15:58 mysqld_safe Number of processes running now: 0
      181002 14:15:58 mysqld_safe mysqld restarted
      2018-10-02 14:15:58 139724756760448 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
      2018-10-02 14:15:58 139724756760448 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.1.28-MariaDB) starting as process 24297 ...
      2018-10-02 14:15:58 139724756760448 [Note] Using unique option prefix 'myisam_recover' is error-prone and can break in the future. Please use the full name 'myisam-recover-options' instead.
      2018-10-02 14:15:58 139724756760448 [Note] CONNECT: Version 1.06.0004 September 03, 2017
      2018-10-02 14:15:58 7f14347e3780 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
      2018-10-02 14:15:58 7f14347e3780 InnoDB: Warning: Using innodb_locks_unsafe_for_binlog is DEPRECATED. This option may be removed in future releases. Please use READ COMMITTED transaction isolation level instead, see http://dev.mysql.com/doc/refman/5.6/en/set-transaction.html.
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Using mutexes to ref count buffer pool pages
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: The InnoDB memory heap is disabled
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Compressed tables use zlib 1.2.3
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Using Linux native AIO
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Using SSE crc32 instructions
      2018-10-02 14:15:58 139724756760448 [Note] InnoDB: Initializing buffer pool, size = 20.0G
      2018-10-02 14:15:59 139724756760448 [Note] InnoDB: Completed initialization of buffer pool
      2018-10-02 14:15:59 139724756760448 [Note] InnoDB: Highest supported file format is Barracuda.
      2018-10-02 14:15:59 139724756760448 [Note] InnoDB: The log sequence number 2707209131 in ibdata file do not match the log sequence number 2707209141 in the ib_logfiles!
      2018-10-02 14:16:00 139724756760448 [Note] InnoDB: Restoring possible half-written data pages from the doublewrite buffer...
      InnoDB: Last MySQL binlog file position 0 1036421, file name /home/iserp_data/binlog/mysql-bin.000013
      2018-10-02 14:16:02 139724756760448 [Note] InnoDB: 128 rollback segment(s) are active.
      2018-10-02 14:16:02 139724756760448 [Note] InnoDB: Waiting for purge to start
      2018-10-02 14:16:02 139724756760448 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.36-82.2 started; log sequence number 2707209141
      2018-10-02 14:16:02 139700195002112 [Note] InnoDB: Dumping buffer pool(s) not yet started
      2018-10-02 14:16:02 139724756760448 [Note] Plugin 'FEEDBACK' is disabled.
      2018-10-02 14:16:02 139724756760448 [Note] Recovering after a crash using /home/iserp_data/binlog/mysql-bin
      2018-10-02 14:16:02 139724756760448 [Note] Starting crash recovery...
      2018-10-02 14:16:02 139724756760448 [Note] Crash recovery finished.
      2018-10-02 14:16:03 139724756760448 [Note] Server socket created on IP: '::'.
      2018-10-02 14:16:03 139724755904256 [Note] Event Scheduler: scheduler thread started with id 2
      2018-10-02 14:16:03 139724756760448 [Note] /usr/local/mariadb/bin/mysqld: ready for connections.
      Version: '10.1.28-MariaDB' socket: '/tmp/mysql.sock' port: 3306 MariaDB Server

      plz Refer attached files.

      Attachments

        1. psa_tax_cw.log
          3 kB
        2. psa_taxhdr_cw.log
          2 kB
        3. status.log
          13 kB
        4. variables.log
          17 kB

        Activity

          bertrandop Olivier Bertrand added a comment - - edited

          A few comments:

          • The most valuable information to give when reporting a bug is the log of the executed commands. This only can be used to try reproducing the error in debug mode and see what's wrong.
          • In case of ODBC tables, I must know what data source is used and to have a least some samples of the tables. A possibility is also to give me access to the data source on your machine.
          • CONNECT supports UPDATE and DELETE by constructing the corresponding command that is sent to the data source. A way to see what command is sent is to set the connect.xtrace variable to 'QUERY'.
          • Another way that can be used, perhaps enabling to avoid your error, is to create a table that directly send any command to the data source. This can be done this way:

            create table xcmd (
            command varchar(128) not null,
            number int(5) not null flag=1,
            message varchar(255) flag=2)
            engine=connect table_type=odbc
            connection='DSN=CWMSSQL;UID=starion;PWD=vmfhwjdtls'
            option_list='Execsrc=1';
            

            Then you can have any command, in the data source syntax, directly executed by the data source by:

            select * from xcmd where command = 'a command';
            

            Using it, you can have the update done by the data source itself. This is described in more details in the CONNECT documentation.

          • Signal 11 generally is raised by an ASSERT C statement. Most of them are raised in MariaDB code and it is very difficult to know why. That's why debugging in DEBUG mode is often the only way to find where and why it happens.
          bertrandop Olivier Bertrand added a comment - - edited A few comments: The most valuable information to give when reporting a bug is the log of the executed commands. This only can be used to try reproducing the error in debug mode and see what's wrong. In case of ODBC tables, I must know what data source is used and to have a least some samples of the tables. A possibility is also to give me access to the data source on your machine. CONNECT supports UPDATE and DELETE by constructing the corresponding command that is sent to the data source. A way to see what command is sent is to set the connect.xtrace variable to 'QUERY'. Another way that can be used, perhaps enabling to avoid your error, is to create a table that directly send any command to the data source. This can be done this way: create table xcmd ( command varchar(128) not null, number int(5) not null flag=1, message varchar(255) flag=2) engine=connect table_type=odbc connection='DSN=CWMSSQL;UID=starion;PWD=vmfhwjdtls' option_list='Execsrc=1'; Then you can have any command, in the data source syntax, directly executed by the data source by: select * from xcmd where command = 'a command'; Using it, you can have the update done by the data source itself. This is described in more details in the CONNECT documentation. Signal 11 generally is raised by an ASSERT C statement. Most of them are raised in MariaDB code and it is very difficult to know why. That's why debugging in DEBUG mode is often the only way to find where and why it happens.
          ossk_db ossk_db added a comment -

          We tried to run it manually from the mysql client.

          MariaDB [test]> UPDATE psa_taxhdr_cw a
          -> INNER JOIN psa_tax_cw b
          -> ON (a.fac_tp = b.fac_tp AND a.tax_no = b.tax_no)
          -> SET b.acct_tran_yn = 'Y'
          -> WHERE a.fac_tp = (CASE WHEN '1201' = '1201' THEN '0102'
          -> WHEN '1201' = '1501' THEN '0502'
          -> WHEN '1201' = '1502' THEN '0501'
          -> WHEN '1201' = '1601' THEN '0601'
          -> WHEN '1201' = '1602' THEN '0603'
          -> END)
          -> AND a.tax_dt BETWEEN '2018-08-01' AND '2018-08-13'
          -> AND b.tax_tp IN ('01','02')
          -> AND a.sale_tp IN ('01','02','03','12')
          -> AND IFNULL(b.acct_tran_yn,'N') = 'N';
          ERROR 2013 (HY000): Lost connection to MySQL server during query
          MariaDB [test]>
          MariaDB [test]> status;
          ERROR 2006 (HY000): MySQL server has gone away
          No connection. Trying to reconnect...
          Connection id: 2
          Current database: test

          --------------
          mysql Ver 15.1 Distrib 10.1.28-MariaDB, for Linux (x86_64) using readline 5.1

          Connection id: 2
          Current database: test
          Current user: root@localhost
          SSL: Not in use
          Current pager: stdout
          Using outfile: ''
          Using delimiter: ;
          Server: MariaDB
          Server version: 10.1.28-MariaDB MariaDB Server
          Protocol version: 10
          Connection: Localhost via UNIX socket
          Server characterset: utf8
          Db characterset: utf8
          Client characterset: utf8
          Conn. characterset: utf8
          UNIX socket: /usr/local/mysql/mysql.sock
          *Uptime: 5 sec
          *
          Threads: 1 Questions: 12 Slow queries: 0 Opens: 23 Flush tables: 1 Open tables: 17 Queries per second avg: 2.400

          omg. mysql restarted.!!

          We have verified the odbc trace log.

          --------------------------------------------------------------------
          [ODBC][28858][1538646225.290271][__handles.c][460]
          Exit:[SQL_SUCCESS]
          Environment = 0x7f2d09bea600
          [ODBC][28858][1538646225.290999][SQLAllocHandle.c][375]
          Entry:
          Handle Type = 2
          Input Handle = 0x7f2d09bea600
          [ODBC][28858][1538646225.291077][SQLAllocHandle.c][493]
          Exit:[SQL_SUCCESS]
          Output Handle = 0x7f2d09b7b000
          [ODBC][28858][1538646225.291133][SQLDriverConnect.c][726]
          Entry:
          Connection = 0x7f2d09b7b000
          Window Hdl = 0x1
          Str In = [DSN=MSSQL173;UID=mysqluser;PWD=******][length = 37 (SQL_NTS)]
          Str Out = 0x7f2cfd404e00
          Str Out Max = 1024
          Str Out Ptr = 0x7f2d02952ad6
          Completion = 0
          UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]pt0�t� �M��

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]�� $t \m�(<)\ ��ȵ��.

          [ODBC][28858][1538646225.310219][SQLDriverConnect.c][1582]
          Exit:[SQL_SUCCESS_WITH_INFO]
          Connection Out [[DSN=MSSQL173;UID=mysqluser;PWD=******;WSID=db1;DATABASE=sqler;][length = 62 (SQL_NTS)]]
          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]pt0�t� �M��

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]�� $t \m�(<)\ ��ȵ��.

          [ODBC][28858][1538646225.310459][SQLGetInfo.c][554]
          Entry:
          Connection = 0x7f2d09b7b000
          Info Type = SQL_IDENTIFIER_QUOTE_CHAR (29)
          Info Value = 0x7f2cfd404dc0
          Buffer Length = 2
          StrLen = 0x7f2d02952ad6
          [ODBC][28858][1538646225.310575][SQLGetInfo.c][617]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.311049][__handles.c][460]
          Exit:[SQL_SUCCESS]
          Environment = 0x7f2d09beac00
          [ODBC][28858][1538646225.311141][SQLAllocHandle.c][375]
          Entry:
          Handle Type = 2
          Input Handle = 0x7f2d09beac00
          [ODBC][28858][1538646225.311227][SQLAllocHandle.c][493]
          Exit:[SQL_SUCCESS]
          Output Handle = 0x7f2d09e53000
          [ODBC][28858][1538646225.311312][SQLDriverConnect.c][726]
          Entry:
          Connection = 0x7f2d09e53000
          Window Hdl = 0x1
          Str In = [DSN=MSSQL173;UID=mysqluser;PWD=******][length = 37 (SQL_NTS)]
          Str Out = 0x7f2cfd405ac8
          Str Out Max = 1024
          Str Out Ptr = 0x7f2d02952ad6
          Completion = 0
          UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]pt0�t� �M��

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]�� $t \m�(<)\ ��ȵ��.

          [ODBC][28858][1538646225.327598][SQLDriverConnect.c][1582]
          Exit:[SQL_SUCCESS_WITH_INFO]
          Connection Out [[DSN=MSSQL173;UID=mysqluser;PWD=******;WSID=db1;DATABASE=sqler;][length = 62 (SQL_NTS)]]
          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]pt0�t� �M��

          DIAG [01000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]�� $t \m�(<)\ ��ȵ��.

          [ODBC][28858][1538646225.327683][SQLGetInfo.c][554]
          Entry:
          Connection = 0x7f2d09e53000
          Info Type = SQL_IDENTIFIER_QUOTE_CHAR (29)
          Info Value = 0x7f2cfd405a88
          Buffer Length = 2
          StrLen = 0x7f2d02952ad6
          [ODBC][28858][1538646225.327714][SQLGetInfo.c][617]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.327885][SQLAllocHandle.c][540]
          Entry:
          Handle Type = 3
          Input Handle = 0x7f2d09b7b000
          [ODBC][28858][1538646225.327929][SQLAllocHandle.c][1081]
          Exit:[SQL_SUCCESS]
          Output Handle = 0x7f2d09b8ab00
          [ODBC][28858][1538646225.327956][SQLExecDirect.c][240]
          Entry:
          Statement = 0x7f2d09b8ab00
          SQL = [SELECT fac_tp, tax_no, tax_dt, sale_tp FROM sqler.dbo.psa_taxhdr WHERE (fac_tp = '0102') AND (sale_tp IN ('01','02','03','12'))][length = 127 (SQL_NTS)]
          [ODBC][28858][1538646225.331406][SQLExecDirect.c][503]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.331473][SQLNumResultCols.c][156]
          Entry:
          Statement = 0x7f2d09b8ab00
          Column Count = 0x7f2d029556a6
          [ODBC][28858][1538646225.331499][SQLNumResultCols.c][248]
          Exit:[SQL_SUCCESS]
          Count = 0x7f2d029556a6 -> 4
          [ODBC][28858][1538646225.331524][SQLBindCol.c][236]
          Entry:
          Statement = 0x7f2d09b8ab00
          Column Number = 1
          Target Type = 1 SQL_CHAR
          Target Value = 0x7f2cfd404c68
          Buffer Length = 16
          StrLen Or Ind = 0x7f2cfd404a28
          [ODBC][28858][1538646225.331552][SQLBindCol.c][341]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.331571][SQLBindCol.c][236]
          Entry:
          Statement = 0x7f2d09b8ab00
          Column Number = 2
          Target Type = 1 SQL_CHAR
          Target Value = 0x7f2cfd404cb8
          Buffer Length = 40
          StrLen Or Ind = 0x7f2cfd404ad0
          [ODBC][28858][1538646225.331600][SQLBindCol.c][341]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.331619][SQLBindCol.c][236]
          Entry:
          Statement = 0x7f2d09b8ab00
          Column Number = 3
          Target Type = 11 SQL_TIMESTAMP
          Target Value = 0x7f2cfd4053a8
          Buffer Length = 16
          StrLen Or Ind = 0x7f2cfd404b78
          [ODBC][28858][1538646225.331643][SQLBindCol.c][341]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.331661][SQLBindCol.c][236]
          Entry:
          Statement = 0x7f2d09b8ab00
          Column Number = 4
          Target Type = 1 SQL_CHAR
          Target Value = 0x7f2cfd404d70
          Buffer Length = 16
          StrLen Or Ind = 0x7f2cfd404c20
          [ODBC][28858][1538646225.331684][SQLBindCol.c][341]
          Exit:[SQL_SUCCESS]
          [ODBC][28858][1538646225.331703][SQLFetch.c][162]
          Entry:
          Statement = 0x7f2d09b8ab00
          [ODBC][28858][1538646225.331756][SQLFetch.c][348]
          Exit:[SQL_SUCCESS]
          ----------------------------------------------------

          There is no problem in updating to single table of connect engine table.
          We have a connect engine table
          This seems to be a problem when performing join update.

          ossk_db ossk_db added a comment - We tried to run it manually from the mysql client. MariaDB [test] > UPDATE psa_taxhdr_cw a -> INNER JOIN psa_tax_cw b -> ON (a.fac_tp = b.fac_tp AND a.tax_no = b.tax_no) -> SET b.acct_tran_yn = 'Y' -> WHERE a.fac_tp = (CASE WHEN '1201' = '1201' THEN '0102' -> WHEN '1201' = '1501' THEN '0502' -> WHEN '1201' = '1502' THEN '0501' -> WHEN '1201' = '1601' THEN '0601' -> WHEN '1201' = '1602' THEN '0603' -> END) -> AND a.tax_dt BETWEEN '2018-08-01' AND '2018-08-13' -> AND b.tax_tp IN ('01','02') -> AND a.sale_tp IN ('01','02','03','12') -> AND IFNULL(b.acct_tran_yn,'N') = 'N'; ERROR 2013 (HY000): Lost connection to MySQL server during query MariaDB [test] > MariaDB [test] > status; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 2 Current database: test -------------- mysql Ver 15.1 Distrib 10.1.28-MariaDB, for Linux (x86_64) using readline 5.1 Connection id: 2 Current database: test Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 10.1.28-MariaDB MariaDB Server Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /usr/local/mysql/mysql.sock * Uptime: 5 sec * Threads: 1 Questions: 12 Slow queries: 0 Opens: 23 Flush tables: 1 Open tables: 17 Queries per second avg: 2.400 omg. mysql restarted.!! We have verified the odbc trace log. -------------------------------------------------------------------- [ODBC] [28858] [1538646225.290271] [__handles.c] [460] Exit: [SQL_SUCCESS] Environment = 0x7f2d09bea600 [ODBC] [28858] [1538646225.290999] [SQLAllocHandle.c] [375] Entry: Handle Type = 2 Input Handle = 0x7f2d09bea600 [ODBC] [28858] [1538646225.291077] [SQLAllocHandle.c] [493] Exit: [SQL_SUCCESS] Output Handle = 0x7f2d09b7b000 [ODBC] [28858] [1538646225.291133] [SQLDriverConnect.c] [726] Entry: Connection = 0x7f2d09b7b000 Window Hdl = 0x1 Str In = [DSN=MSSQL173;UID=mysqluser;PWD=******] [length = 37 (SQL_NTS)] Str Out = 0x7f2cfd404e00 Str Out Max = 1024 Str Out Ptr = 0x7f2d02952ad6 Completion = 0 UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE' DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] pt0�t� �M�� DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] �� $t \m�(<)\ ��ȵ��. [ODBC] [28858] [1538646225.310219] [SQLDriverConnect.c] [1582] Exit: [SQL_SUCCESS_WITH_INFO] Connection Out [ [DSN=MSSQL173;UID=mysqluser;PWD=******;WSID=db1;DATABASE=sqler;] [length = 62 (SQL_NTS)] ] DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] pt0�t� �M�� DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] �� $t \m�(<)\ ��ȵ��. [ODBC] [28858] [1538646225.310459] [SQLGetInfo.c] [554] Entry: Connection = 0x7f2d09b7b000 Info Type = SQL_IDENTIFIER_QUOTE_CHAR (29) Info Value = 0x7f2cfd404dc0 Buffer Length = 2 StrLen = 0x7f2d02952ad6 [ODBC] [28858] [1538646225.310575] [SQLGetInfo.c] [617] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.311049] [__handles.c] [460] Exit: [SQL_SUCCESS] Environment = 0x7f2d09beac00 [ODBC] [28858] [1538646225.311141] [SQLAllocHandle.c] [375] Entry: Handle Type = 2 Input Handle = 0x7f2d09beac00 [ODBC] [28858] [1538646225.311227] [SQLAllocHandle.c] [493] Exit: [SQL_SUCCESS] Output Handle = 0x7f2d09e53000 [ODBC] [28858] [1538646225.311312] [SQLDriverConnect.c] [726] Entry: Connection = 0x7f2d09e53000 Window Hdl = 0x1 Str In = [DSN=MSSQL173;UID=mysqluser;PWD=******] [length = 37 (SQL_NTS)] Str Out = 0x7f2cfd405ac8 Str Out Max = 1024 Str Out Ptr = 0x7f2d02952ad6 Completion = 0 UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE' DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] pt0�t� �M�� DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] �� $t \m�(<)\ ��ȵ��. [ODBC] [28858] [1538646225.327598] [SQLDriverConnect.c] [1582] Exit: [SQL_SUCCESS_WITH_INFO] Connection Out [ [DSN=MSSQL173;UID=mysqluser;PWD=******;WSID=db1;DATABASE=sqler;] [length = 62 (SQL_NTS)] ] DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] pt0�t� �M�� DIAG [01000] [Microsoft] [ODBC Driver 17 for SQL Server] [SQL Server] �� $t \m�(<)\ ��ȵ��. [ODBC] [28858] [1538646225.327683] [SQLGetInfo.c] [554] Entry: Connection = 0x7f2d09e53000 Info Type = SQL_IDENTIFIER_QUOTE_CHAR (29) Info Value = 0x7f2cfd405a88 Buffer Length = 2 StrLen = 0x7f2d02952ad6 [ODBC] [28858] [1538646225.327714] [SQLGetInfo.c] [617] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.327885] [SQLAllocHandle.c] [540] Entry: Handle Type = 3 Input Handle = 0x7f2d09b7b000 [ODBC] [28858] [1538646225.327929] [SQLAllocHandle.c] [1081] Exit: [SQL_SUCCESS] Output Handle = 0x7f2d09b8ab00 [ODBC] [28858] [1538646225.327956] [SQLExecDirect.c] [240] Entry: Statement = 0x7f2d09b8ab00 SQL = [SELECT fac_tp, tax_no, tax_dt, sale_tp FROM sqler.dbo.psa_taxhdr WHERE (fac_tp = '0102') AND (sale_tp IN ('01','02','03','12'))] [length = 127 (SQL_NTS)] [ODBC] [28858] [1538646225.331406] [SQLExecDirect.c] [503] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.331473] [SQLNumResultCols.c] [156] Entry: Statement = 0x7f2d09b8ab00 Column Count = 0x7f2d029556a6 [ODBC] [28858] [1538646225.331499] [SQLNumResultCols.c] [248] Exit: [SQL_SUCCESS] Count = 0x7f2d029556a6 -> 4 [ODBC] [28858] [1538646225.331524] [SQLBindCol.c] [236] Entry: Statement = 0x7f2d09b8ab00 Column Number = 1 Target Type = 1 SQL_CHAR Target Value = 0x7f2cfd404c68 Buffer Length = 16 StrLen Or Ind = 0x7f2cfd404a28 [ODBC] [28858] [1538646225.331552] [SQLBindCol.c] [341] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.331571] [SQLBindCol.c] [236] Entry: Statement = 0x7f2d09b8ab00 Column Number = 2 Target Type = 1 SQL_CHAR Target Value = 0x7f2cfd404cb8 Buffer Length = 40 StrLen Or Ind = 0x7f2cfd404ad0 [ODBC] [28858] [1538646225.331600] [SQLBindCol.c] [341] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.331619] [SQLBindCol.c] [236] Entry: Statement = 0x7f2d09b8ab00 Column Number = 3 Target Type = 11 SQL_TIMESTAMP Target Value = 0x7f2cfd4053a8 Buffer Length = 16 StrLen Or Ind = 0x7f2cfd404b78 [ODBC] [28858] [1538646225.331643] [SQLBindCol.c] [341] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.331661] [SQLBindCol.c] [236] Entry: Statement = 0x7f2d09b8ab00 Column Number = 4 Target Type = 1 SQL_CHAR Target Value = 0x7f2cfd404d70 Buffer Length = 16 StrLen Or Ind = 0x7f2cfd404c20 [ODBC] [28858] [1538646225.331684] [SQLBindCol.c] [341] Exit: [SQL_SUCCESS] [ODBC] [28858] [1538646225.331703] [SQLFetch.c] [162] Entry: Statement = 0x7f2d09b8ab00 [ODBC] [28858] [1538646225.331756] [SQLFetch.c] [348] Exit: [SQL_SUCCESS] ---------------------------------------------------- There is no problem in updating to single table of connect engine table. We have a connect engine table This seems to be a problem when performing join update.

          I have tried similar join updates on ODBC tables and it always failed but without crashing.

          Indeed, as it is said in the documentation, CONNECT supports UPDATE for ODBC tables in a somewhat limited way. It just tries to construct an UPDATE command that the remote server will execute. This works for simple UPDATE commands but will always fail for UPDATE on joined tables. There are several reasons for that. Firstly the syntax of the remote server will often be different from the one of MariaDB. But mainly because the table names must be changed to the remote table names. CONNECT does this for one table but cannot do it for the second table.

          Therefore, forget it. The only way you might do it is by creating a table used to send commands to the data source, as shown in my last comment.

          I don't know why this crashes on your system and I will not try to know why. What I will do is to disallow updates on ODBC (JDBC, MYSQL, MONGO) joined tables, and make that clear in the documentation.

          bertrandop Olivier Bertrand added a comment - I have tried similar join updates on ODBC tables and it always failed but without crashing. Indeed, as it is said in the documentation, CONNECT supports UPDATE for ODBC tables in a somewhat limited way. It just tries to construct an UPDATE command that the remote server will execute. This works for simple UPDATE commands but will always fail for UPDATE on joined tables. There are several reasons for that. Firstly the syntax of the remote server will often be different from the one of MariaDB. But mainly because the table names must be changed to the remote table names. CONNECT does this for one table but cannot do it for the second table. Therefore, forget it. The only way you might do it is by creating a table used to send commands to the data source, as shown in my last comment. I don't know why this crashes on your system and I will not try to know why. What I will do is to disallow updates on ODBC (JDBC, MYSQL, MONGO) joined tables, and make that clear in the documentation.

          Multi-table UPDATE and DELETE commands on ODBC, JDBC, MYSQL and MONGO tables are now rejected by CONNECT as "not supported".

          bertrandop Olivier Bertrand added a comment - Multi-table UPDATE and DELETE commands on ODBC, JDBC, MYSQL and MONGO tables are now rejected by CONNECT as "not supported".

          People

            bertrandop Olivier Bertrand
            ossk_db ossk_db
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.