[MDEV-17343] Update Join Crash with signal 11 error in Connect Storage Engine Created: 2018-10-02  Updated: 2018-10-28  Resolved: 2018-10-15

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Connect
Affects Version/s: 10.1.28
Fix Version/s: 10.0.37, 10.3.11, 10.1.37, 10.2.19

Type: Bug Priority: Critical
Reporter: ossk_db Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: None

Attachments: File psa_tax_cw.log     File psa_taxhdr_cw.log     File status.log     File variables.log    

 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.



 Comments   
Comment by Olivier Bertrand [ 2018-10-02 ]

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.
Comment by ossk_db [ 2018-10-04 ]

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.

Comment by Olivier Bertrand [ 2018-10-04 ]

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.

Comment by Olivier Bertrand [ 2018-10-15 ]

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

Generated at Thu Feb 08 08:35:45 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.