Bug #83798 handle_fatal_signal (sig=11) in my_valid_mbcharlen_utf8

Submitted: 14 Nov 2016 4:20 Modified: 25 Aug 2023 13:09
Reporter: Roel Van de Paar Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Charsets Severity:S6 (Debug Builds)
Version:5.6.34, 5.7.16 OS:Any
Assigned to: CPU Architecture:Any

[14 Nov 2016 4:20] Roel Van de Paar
Description:
Version: '5.6.34-debug'  socket: '/sda/MS081116-mysql-5.6.34-linux-x86_64-debug/socket.sock'  port: 11652  MySQL Community Server (GPL)
2016-11-14 15:00:01 15681 [Note] Event Scheduler: scheduler thread started with id 2
04:00:02 UTC - mysqld got signal 11 ;

(gdb) bt
#0  0x00007fdab7b37741 in __pthread_kill (threadid=<optimized out>, signo=11) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x0000000000a9c852 in my_write_core (sig=11) at /git/mysql-server_dbg/mysys/stacktrace.c:422
#2  0x000000000072c554 in handle_fatal_signal (sig=11) at /git/mysql-server_dbg/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x0000000000e208e9 in my_valid_mbcharlen_utf8 (cs=0x17238a0 <my_charset_utf8_bin>, s=0x0, e=0x4 <Address 0x4 out of bounds>)
    at /git/mysql-server_dbg/strings/ctype-utf8.c:5974
#5  0x0000000000e20958 in my_well_formed_len_utf8 (cs=0x17238a0 <my_charset_utf8_bin>, b=0x0, e=0x4 <Address 0x4 out of bounds>, pos=64, error=0x7fdab80e9e48)
    at /git/mysql-server_dbg/strings/ctype-utf8.c:6035
#6  0x000000000083812f in well_formed_copy_nchars (to_cs=0x17238a0 <my_charset_utf8_bin>, to=0x7fda89a42c12 "test", ' ' <repeats 188 times>, "e_43    "..., to_length=192,
    from_cs=0x147c3a0 <my_charset_bin>, from=0x0, from_length=4, nchars=64, well_formed_error_pos=0x7fdab80e9ef0, cannot_convert_error_pos=0x7fdab80e9ee8,
    from_end_pos=0x7fdab80e9ee0) at /git/mysql-server_dbg/sql/sql_string.cc:1015
#7  0x0000000000909131 in Field_string::store (this=0x7fda89aa8728, from=0x0, length=4, cs=0x147c3a0 <my_charset_bin>) at /git/mysql-server_dbg/sql/field.cc:6658
#8  0x00000000009e1cff in Event_db_repository::find_named_event (this=0x7fda9bbfe350, db=..., name=..., table=0x7fda89a42200)
    at /git/mysql-server_dbg/sql/event_db_repository.cc:974
#9  0x00000000009e260a in Event_db_repository::update_timing_fields_for_event (this=0x7fda9bbfe350, thd=0x7fda82c74000, event_db_name=..., event_name=..., last_executed=0,
    status=0) at /git/mysql-server_dbg/sql/event_db_repository.cc:1142
#10 0x00000000009e5cba in Event_queue::get_top_for_execution_if_time (this=0x7fdab4022de0, thd=0x7fda82c74000, event_name=0x7fdab80ead10)
    at /git/mysql-server_dbg/sql/event_queue.cc:672
#11 0x00000000009e7874 in Event_scheduler::run (this=0x7fda9afa1a80, thd=0x7fda82c74000) at /git/mysql-server_dbg/sql/event_scheduler.cc:499
#12 0x00000000009e6ea7 in event_scheduler_thread (arg=0x7fda82c19070) at /git/mysql-server_dbg/sql/event_scheduler.cc:242
#13 0x0000000000ae8ac9 in pfs_spawn_thread (arg=0x7fda82cfc020) at /git/mysql-server_dbg/storage/perfschema/pfs.cc:1860
#14 0x00007fdab7b32dc5 in start_thread (arg=0x7fdab80eb700) at pthread_create.c:308
#15 0x00007fdab6197ced in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

How to repeat:
# mysqld options required for replay:  --maximum-max_heap_table_size=1M
DROP DATABASE test;CREATE DATABASE test;USE test;
SET DEBUG='+d,fts_union_limit_off';
SET GLOBAL debug='+d,simulate_out_of_memory';
create event e_43 on schedule every 1 second do set @a=5;
set global event_scheduler=on;
[14 Nov 2016 6:11] MySQL Verification Team
Hello Roel,

Thank you for the report and test case.
Observed that 5.6.34/5.7.16 debug builds are affected.

Thanks,
Umesh
[25 Aug 2023 13:09] Tor Didriksen
Posted by developer:
 
SET GLOBAL debug='+d,simulate_out_of_memory';
will have *every* call to my_malloc fail, which is not reasonable.
Writing code to handle such a scenario is not productive.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.