[MXS-300] LONGBLOB are currently not supported. Created: 2015-08-03  Updated: 2017-12-01  Resolved: 2016-05-31

Status: Closed
Project: MariaDB MaxScale
Component/s: mariadbclient
Affects Version/s: 1.2.0
Fix Version/s: 2.0.0

Type: New Feature Priority: Major
Reporter: cai sunny Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None
Environment:

Linux 2.6.32-431.20.3.el6.x86_64 #1 SMP
maxscale-1.2.0-1.x86_64


Issue Links:
Relates
relates to MXS-477 readconnroute misinterprets data as C... Closed
Sprint: 2016-9, 2016-10

 Description   

Why LONGBLOB are currently not supported?
For small data in LONGBLOB, it seems fine.
In which situation, it will cause problem?
For 1.0.5, is it support LONGBLOB? Because I did not see "LONGBLOB are currently not supported." in the document.



 Comments   
Comment by Dipti Joshi (Inactive) [ 2015-08-04 ]

markus makela Can you comment on this one please ?

Comment by cai sunny [ 2015-08-07 ]

Will this problem be fixed on version 1.3?

Comment by Timofey Turenko [ 2016-01-01 ]

tested with 1.3.0 beta: got stuck!
Direct connection to Master works, but hangs with RWSplit:

0.019585: Trying send data directly to Master
0.019601: Creating table with LONGBLOB
0.162464: Preparintg INSERT stmt
0.163307: Binding parameter
0.163321: Filling buffer
0.178745: Sending data in 8000000 bytes chunks
0.178758: Chunk #0
0.195851: Chunk #1
0.213474: Chunk #2
0.238402: Chunk #3
0.264496: Chunk #4
0.287396: Chunk #5
0.314361: Chunk #6
0.348769: Chunk #7
0.388528: Chunk #8
0.438868: Chunk #9
0.493474: Chunk #10
0.550534: Chunk #11
0.615026: Chunk #12
0.675197: Chunk #13
0.741173: Chunk #14
0.808430: Chunk #15
0.879497: Chunk #16
0.959449: Chunk #17
1.042638: Chunk #18
1.188525: Chunk #19
1.293153: Executing stetement
36.112911: Trying send data via RWSplit
36.112921: Creating table with LONGBLOB
61.006275:

        • Timeout! ***

code which got stuck:

Test->tprintf("Creating table with LONGBLOB\n");
Test->try_query(conn, (char *) "DROP TABLE IF EXISTS long_blob_table");
Test->try_query(conn, (char *) "CREATE TABLE long_blob_table(x INT, b LONGBLOB)");

test case: https://github.com/mariadb-corporation/maxscale-system-test/blob/master/longblob.cpp

Comment by Timofey Turenko [ 2016-02-16 ]

RWSplit seems to work ok with all (BLOB, MEDIUMBLOB, LONGBLOB)

ReadConn:

at some chunk:

156.346929: Chunk #5
156.934879: TEST_FAILED! Error inserting data, iteration 5, error Lost connection to MySQL server during query

next call of mysql_stmt_send_long_data() gives segfault

Immediate executing the same tests after such failure gives failure for everything (including direct sending to Master). If after chunk sending failure mysql_stmt_send_long_data() is not executed - all other tests are ok.

MEDIUMBLOB fails in the same way:

215.766235: Creating table with MEDIUMBLOB
215.873048: Preparintg INSERT stmt
215.873694: Binding parameter
215.873711: Filling buffer
215.906228: Sending data in 8000000 bytes chunks, total size is 16000000
215.906257: Chunk #0
216.540199: TEST_FAILED! Error inserting data, iteration 0, error Lost connection to MySQL server during query
216.540330: Executing /home/vagrant/.jenkins/jobs/run_test/workspace/copy_logs.sh longblob

Comment by Johan Wikman [ 2016-03-01 ]

Documented limitation, so it is not a bug.

Changing to improvement.

Comment by markus makela [ 2016-05-31 ]

LONGBLOB values are now supported for all statements except LOAD DATA LOCAL INFILE with binary data.

Generated at Thu Feb 08 03:58:16 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.