[MDEV-20663] Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed in Diagnostics_area::set_ok_status upon UPDATE on app-versioned table Created: 2019-09-24  Updated: 2020-04-07  Resolved: 2020-04-07

Status: Closed
Project: MariaDB Server
Component/s: Data Manipulation - Update, GIS, Versioned Tables
Affects Version/s: 10.4
Fix Version/s: 10.5.3, 10.4.14

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Nikita Malyavin
Resolution: Duplicate Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-21342 Assertion in set_ok_status() upon spa... Closed

 Description   

CREATE TABLE t1 (f GEOMETRY, s DATE, e DATE, PERIOD FOR app(s,e), KEY(f));
UPDATE t1 FOR PORTION OF app FROM '2019-03-24' TO '2019-07-24' SET f = NULL WHERE f = 'foo';
 
# Cleanup
DROP TABLE t1;

10.4 b4417142

mysqld: /data/src/10.4/sql/sql_error.cc:335: void Diagnostics_area::set_ok_status(ulonglong, ulonglong, const char*): Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed.
190924 20:57:30 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f95c9156f12 in __GI___assert_fail (assertion=0x55b33999d100 "!is_set() || (m_status == DA_OK_BULK && is_bulk_op())", file=0x55b33999d048 "/data/src/10.4/sql/sql_error.cc", line=335, function=0x55b33999d440 <Diagnostics_area::set_ok_status(unsigned long long, unsigned long long, char const*)::__PRETTY_FUNCTION__> "void Diagnostics_area::set_ok_status(ulonglong, ulonglong, const char*)") at assert.c:101
#8  0x000055b338c63678 in Diagnostics_area::set_ok_status (this=0x7f95a80064d0, affected_rows=0, last_insert_id=0, message=0x7f95c42cd380 "Rows matched: 0  Changed: 0  Inserted: 0  Warnings: 1") at /data/src/10.4/sql/sql_error.cc:335
#9  0x000055b338c079ac in my_ok (thd=0x7f95a8000b00, affected_rows_arg=0, id=0, message=0x7f95c42cd380 "Rows matched: 0  Changed: 0  Inserted: 0  Warnings: 1") at /data/src/10.4/sql/sql_class.h:5008
#10 0x000055b338dc925c in mysql_update (thd=0x7f95a8000b00, table_list=0x7f95a8013408, fields=..., values=..., conds=0x7f95a8014e10, order_num=0, order=0x0, limit=18446744073709551615, ignore=false, found_return=0x7f95c42cd850, updated_return=0x7f95c42cd910) at /data/src/10.4/sql/sql_update.cc:1298
#11 0x000055b338cba0a8 in mysql_execute_command (thd=0x7f95a8000b00) at /data/src/10.4/sql/sql_parse.cc:4372
#12 0x000055b338cc704f in mysql_parse (thd=0x7f95a8000b00, rawbuf=0x7f95a8013128 "UPDATE t1 FOR PORTION OF app FROM '2019-03-24' TO '2019-07-24' SET f = NULL WHERE f = 'foo'", length=91, parser_state=0x7f95c42ce170, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7912
#13 0x000055b338cb22e2 in dispatch_command (command=COM_QUERY, thd=0x7f95a8000b00, packet=0x7f95a8008331 "UPDATE t1 FOR PORTION OF app FROM '2019-03-24' TO '2019-07-24' SET f = NULL WHERE f = 'foo'", packet_length=91, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1841
#14 0x000055b338cb096f in do_command (thd=0x7f95a8000b00) at /data/src/10.4/sql/sql_parse.cc:1359
#15 0x000055b338e37def in do_handle_one_connection (connect=0x55b33b469aa0) at /data/src/10.4/sql/sql_connect.cc:1412
#16 0x000055b338e37b3e in handle_one_connection (arg=0x55b33b469aa0) at /data/src/10.4/sql/sql_connect.cc:1316
#17 0x000055b3398372ed in pfs_spawn_thread (arg=0x55b33b4854f0) at /data/src/10.4/storage/perfschema/pfs.cc:1862
#18 0x00007f95caccb4a4 in start_thread (arg=0x7f95c42cf700) at pthread_create.c:456
#19 0x00007f95c9213d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Reproducible with at least InnoDB, MyISAM, Aria.
Also reproducible on 10.5.

Non-debug build expectedly returns an error:

mysqltest: At line 2: query 'UPDATE t1 FOR PORTION OF app FROM '2019-03-24' TO '2019-07-24' SET f = NULL WHERE f = 'foo'' failed: 1416: Cannot get geometry object from data you send to the GEOMETRY field



 Comments   
Comment by Nikita Malyavin [ 2020-04-07 ]

Does not reproduce. Most likely was fixed in MDEV-21342

Generated at Thu Feb 08 09:01:13 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.