[MDEV-20284] Some pointers may be invalid and cause the dump to abort. Created: 2019-08-08  Updated: 2020-10-08  Resolved: 2020-10-08

Status: Closed
Project: MariaDB Server
Component/s: Data Manipulation - Insert, Debug
Affects Version/s: 10.4.7, 10.4, 10.5
Fix Version/s: 10.4.13, 10.5.4

Type: Bug Priority: Major
Reporter: Paolo Bitta Assignee: Oleksandr Byelkin
Resolution: Duplicate Votes: 1
Labels: MariaDB-server, docker
Environment:

My OS is Xubuntu 16.04.5. I'm running my application in docker.


Attachments: HTML File Dockerfile     File db.sql     File run.sh    
Issue Links:
Duplicate
is duplicated by MDEV-20731 Mariadb process crashed after running... Closed
Relates
relates to MDEV-20290 Server crash in st_select_lex::cleanu... Closed
relates to MDEV-20803 IF NOT EXISTS AND NOT EXISTS crash DB... Closed
relates to MDEV-21199 Segfault Closed

 Description   

Hi, I have a problem, can someone help me ?
I'm beginner and i found a problem that (i think) i'm not able to solve alone.

I run the command

sudo docker run -e "STUDENTE=0226198" -it bdc

the dockerfile is linked.
this command run "run.sh" that you can find linked with this post.

In "run.sh" i try to run the script "db.sql" which contains the sql commands for creating and initializing a database. (you can find db.sql linked with this post).

I get back this error that i'm not able to understand.

Error

Running db.sql script...
190808  0:13:49 [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.4.7-MariaDB-1:10.4.7+maria~bionic
key_buffer_size=134217728
read_buffer_size=2097152
max_used_connections=2
max_threads=102
thread_count=8
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 760243 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x7fd30c000c08
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 = 0x7fd3842d7dd8 thread_stack 0x49000
addr2line: 'mysqld': No such file
mysqld(my_print_stacktrace+0x2e)[0x5652e5999cee]
mysqld(handle_fatal_signal+0x515)[0x5652e5411085]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7fd38aa55890]
addr2line: 'mysqld': No such file
mysqld(_ZN4JOIN7destroyEv+0x20)[0x5652e52433e0]
mysqld(_ZN13st_select_lex7cleanupEv+0x68)[0x5652e52a2c38]
mysqld(_ZN30subselect_single_select_engine7prepareEP3THD+0x3c)[0x5652e54c04dc]
mysqld(_ZN14Item_subselect10fix_fieldsEP3THDPP4Item+0x139)[0x5652e54bfed9]
mysqld(_ZN17Item_in_subselect10fix_fieldsEP3THDPP4Item+0x8d)[0x5652e54c01fd]
mysqld(_ZN17Item_in_optimizer10fix_fieldsEP3THDPP4Item+0x1a0)[0x5652e544c790]
mysqld(_ZN9Item_cond10fix_fieldsEP3THDPP4Item+0x447)[0x5652e544a667]
mysqld(_ZN3THD16sp_fix_func_itemEPP4Item+0x90)[0x5652e516a230]
mysqld(_ZN3THD20sp_prepare_func_itemEPP4Itemj+0xf)[0x5652e516a24f]
mysqld(_ZN20sp_instr_jump_if_not9exec_coreEP3THDPj+0x1e)[0x5652e516a2ae]
mysqld(_ZN13sp_lex_keeper23reset_lex_and_exec_coreEP3THDPjbP8sp_instr+0x154)[0x5652e516fdd4]
mysqld(_ZN7sp_head7executeEP3THDb+0x9e6)[0x5652e516bcd6]
mysqld(_ZN7sp_head15execute_triggerEP3THDPK25st_mysql_const_lex_stringS4_P13st_grant_info+0x1b1)[0x5652e516c5e1]
mysqld(_ZN19Table_triggers_list16process_triggersEP3THD14trg_event_type20trg_action_time_typeb+0x10c)[0x5652e529ba8c]
mysqld(_Z36fill_record_n_invoke_before_triggersP3THDP5TABLER4ListI4ItemES6_b14trg_event_type+0x86)[0x5652e51a7d16]
mysqld(_Z12mysql_insertP3THDP10TABLE_LISTR4ListI4ItemERS3_IS5_ES6_S6_15enum_duplicatesb+0x12c7)[0x5652e51d5447]
mysqld(_Z21mysql_execute_commandP3THD+0x1659)[0x5652e52018e9]
mysqld(_Z11mysql_parseP3THDPcjP12Parser_statebb+0x22a)[0x5652e5208d4a]
mysqld(_Z16dispatch_command19enum_server_commandP3THDPcjbb+0x1689)[0x5652e520b559]
mysqld(_Z10do_commandP3THD+0x148)[0x5652e520cb48]
mysqld(_Z24do_handle_one_connectionP7CONNECT+0x2c6)[0x5652e52e7ca6]
mysqld(handle_one_connection+0x3d)[0x5652e52e7d9d]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7fd38aa4a6db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fd389e4888f]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7fd30c00fee0): INSERT INTO `scommesse0226198`.`PARTITA` (`Numero`, `Turno`, `Citta`, `Data`, `OraInizio`, `Squadra1`, `Squadra2`, `Arbitro`, `EsitoVincitore`) VALUES (2, 'Qualificazioni', 'Roma', '2019-09-05', '18:00:00', 'Germania', 'Albania', 'Costanzo Pisani', 'X')
Connection ID (thread ID): 11
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=off,mrr_cost_based=off,mrr_sort_keys=off,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=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on
 
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.
Writing a core file...
Working directory at /var/lib/mysql
Resource Limits:
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        unlimited            unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             unlimited            unlimited            processes 
Max open files            1048576              1048576              files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       31164                31164                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        
Core pattern: |/usr/share/apport/apport %p %s %c %d %P
 
ERROR 2013 (HY000) at line 2270: Lost connection to MySQL server during query
ERROR 2013 (HY000) at line 8585: Lost connection to MySQL server during query
Testing application...
/docker-entrypoint.sh: line 197:   131 Segmentation fault      (core dumped) "$@" --skip-networking --socket="${SOCKET}"

Can you help me solve this problem ?
If i try to run the same script in mysqlworkbench it run successfully, but i need to run with docker.

I found MDEV-12490 but it's unsolved and in the comment i found that this is the same problem of MDEV-12379 but i'm not agree...



 Comments   
Comment by Alice Sherepa [ 2019-08-08 ]

I repeated the crash on 10.4.7
On debug version 10.4 I am getting assertion `sl->join == 0' failing in reinit_stmt_before_use (MDEV-20290),
but that test case does not crash on non-debug server.
The test case below is sporadic, crashes in 90% cases, but sometimes not, and giving slightly different stacktraces (adding to make them searchable)

 
CREATE TABLE  `t1` (
  `Numero` INT(11) NOT NULL,
  `t2` VARCHAR(20) NOT NULL,
  `Citta` VARCHAR(20) NOT NULL,
  `Data` DATE NOT NULL,
  `OraInizio` TIME NOT NULL,
  `Squadra1` VARCHAR(20) NULL DEFAULT NULL,
  `Squadra2` VARCHAR(20) NULL DEFAULT NULL,
  `Arbitro` VARCHAR(20) NULL DEFAULT NULL,
  `EsitoVincitore` CHAR(1) NULL DEFAULT 'X',
  PRIMARY KEY (`t2`, `Numero`),
  UNIQUE INDEX `uq_citta_data` (`Citta` ASC, `Data` ASC),
  UNIQUE INDEX `uq_data_arbitro` (`Data` ASC, `Arbitro` ASC),
  INDEX `fk_t1_2_idx` (`Arbitro` ASC),
  INDEX `fk_t1_3_idx` (`Squadra1` ASC),
  INDEX `fk_t1_4_idx` (`Squadra2` ASC));
 
DELIMITER $$
 
CREATE  TRIGGER `t1_BEFORE_INSERT` BEFORE INSERT ON `t1` FOR EACH ROW
BEGIN
IF NEW.Squadra1 in (select Squadra1 from t1 where t2 = NEW.t2) OR NEW.Squadra1 in (select Squadra2 from t1 where t2 = NEW.t2)
  THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'foo';
END IF;
 
END$$
 
 
DELIMITER ;
 
INSERT INTO `t1` (`Numero`, `t2`, `Citta`, `Data`, `OraInizio`, `Squadra1`, `Squadra2`, `Arbitro`, `EsitoVincitore`) VALUES (1, 'Qualificazioni', 'Milano', '2019-09-05', '15:00:00', 'Francia', 'Croazia', 'Jason Lundberg', 'X');
INSERT INTO `t1` (`Numero`, `t2`, `Citta`, `Data`, `OraInizio`, `Squadra1`, `Squadra2`, `Arbitro`, `EsitoVincitore`) VALUES (2, 'Qualificazioni', 'Roma', '2019-09-05', '18:00:00', 'Germania', 'Albania', 'Costanzo Pisani', 'X');
INSERT INTO `t1` (`Numero`, `t2`, `Citta`, `Data`, `OraInizio`, `Squadra1`, `Squadra2`, `Arbitro`, `EsitoVincitore`) VALUES (3, 'Qualificazioni', 'Bari', '2019-09-05', '21:00:00', 'Ucraina', 'Svezia', 'Louis Lapointe', 'X');

10.4.7

sql/sql_list.h:516(List<Cached_item>::delete_elements())[0x558ae81f39a0]
sql/sql_list.h:149(base_list::empty())[0x558ae81e859c]
sql/sql_select.cc:4420(JOIN::destroy())[0x558ae81e8ae6]
sql/sql_union.cc:2034(st_select_lex::cleanup())[0x558ae8231e08]
sql/item_subselect.cc:3713(subselect_single_select_engine::prepare(THD*))[0x558ae842354b]
sql/item_subselect.cc:282(Item_subselect::fix_fields(THD*, Item**))[0x558ae8423008]
sql/item_subselect.cc:3381(Item_in_subselect::fix_fields(THD*, Item**))[0x558ae84233a7]
sql/item_cmpfunc.cc:1357(Item_in_optimizer::fix_fields(THD*, Item**))[0x558ae83bbfc6]
sql/item.h:961(Item::fix_fields_if_needed_for_scalar(THD*, Item**))[0x558ae83b8d80]
sql/sp_head.cc:356(THD::sp_fix_func_item(Item**))[0x558ae81058b6]
sql/sp_head.cc:343(THD::sp_prepare_func_item(Item**, unsigned int))[0x558ae81058e8]
sql/sp_head.cc:3937(sp_instr_jump_if_not::exec_core(THD*, unsigned int*))[0x558ae810593e]
sql/sp_head.cc:3343(sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*))[0x558ae810a854]
sql/sp_head.cc:1348(sp_head::execute(THD*, bool))[0x558ae8107364]
sql/sp_head.cc:1758(sp_head::execute_trigger(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, st_grant_info*))[0x558ae8107b42]
sql/sql_trigger.cc:2203(Table_triggers_list::process_triggers(THD*, trg_event_type, trg_action_time_type, bool))[0x558ae822b08e]
sql/sql_base.cc:8657(fill_record_n_invoke_before_triggers(THD*, TABLE*, List<Item>&, List<Item>&, bool, trg_event_type))[0x558ae8144f6b]
sql/sql_insert.cc:972(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool))[0x558ae816cc7d]
sql/sql_parse.cc:4538(mysql_execute_command(THD*))[0x558ae819d808]
sql/sql_parse.cc:10268(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x558ae819fdb1]
sql/sql_lex.h:4686(Parser_state::reset(char*, unsigned int))[0x558ae81a17e0]
sql/sql_parse.cc:1360(do_command(THD*))[0x558ae81a2cff]
sql/sql_connect.cc:1404(do_handle_one_connection(CONNECT*))[0x558ae8271be9]
sql/sql_connect.cc:1308(handle_one_connection)[0x558ae8271d24]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f4ae88426ba]
x86_64/clone.S:111(clone)[0x7f4ae7ce941d]

10.4.7

sql/sql_select.cc:19424(free_tmp_table(THD*, TABLE*))[0x55be8625328c]
sql/sql_select.cc:13583(JOIN::cleanup(bool))[0x55be8626650a]
sql/sql_select.cc:4420(JOIN::destroy())[0x55be86266ae6]
sql/sql_union.cc:2034(st_select_lex::cleanup())[0x55be862afe08]
sql/item_subselect.cc:3713(subselect_single_select_engine::prepare(THD*))[0x55be864a154b]
sql/item_subselect.cc:282(Item_subselect::fix_fields(THD*, Item**))[0x55be864a1008]
sql/item_subselect.cc:3381(Item_in_subselect::fix_fields(THD*, Item**))[0x55be864a13a7]
sql/item_cmpfunc.cc:1357(Item_in_optimizer::fix_fields(THD*, Item**))[0x55be86439fc6]
sql/item.h:961(Item::fix_fields_if_needed_for_scalar(THD*, Item**))[0x55be86436d80]
sql/sp_head.cc:356(THD::sp_fix_func_item(Item**))[0x55be861838b6]
sql/sp_head.cc:343(THD::sp_prepare_func_item(Item**, unsigned int))[0x55be861838e8]
sql/sp_head.cc:3937(sp_instr_jump_if_not::exec_core(THD*, unsigned int*))[0x55be8618393e]
sql/sp_head.cc:3343(sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*))[0x55be86188854]
sql/sp_head.cc:1348(sp_head::execute(THD*, bool))[0x55be86185364]
sql/sp_head.cc:1758(sp_head::execute_trigger(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, st_grant_info*))[0x55be86185b42]
sql/sql_trigger.cc:2203(Table_triggers_list::process_triggers(THD*, trg_event_type, trg_action_time_type, bool))[0x55be862a908e]
sql/sql_base.cc:8657(fill_record_n_invoke_before_triggers(THD*, TABLE*, List<Item>&, List<Item>&, bool, trg_event_type))[0x55be861c2f6b]
sql/sql_insert.cc:972(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool))[0x55be861eac7d]
sql/sql_parse.cc:4538(mysql_execute_command(THD*))[0x55be8621b808]
sql/sql_parse.cc:10268(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55be8621ddb1]
sql/sql_lex.h:4686(Parser_state::reset(char*, unsigned int))[0x55be8621f7e0]
sql/sql_parse.cc:1360(do_command(THD*))[0x55be86220cff]
sql/sql_connect.cc:1404(do_handle_one_connection(CONNECT*))[0x55be862efbe9]
sql/sql_connect.cc:1308(handle_one_connection)[0x55be862efd24]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fe77adfd6ba]
x86_64/clone.S:111(clone)[0x7fe77a2a441d]

10.4.7

sql/sql_list.h:419(base_list_iterator::next())[0x556da5774b28]
sql/sql_select.cc:13625(JOIN::cleanup(bool))[0x556da56b458f]
sql/sql_select.cc:4420(JOIN::destroy())[0x556da56b4ae6]
sql/sql_union.cc:2034(st_select_lex::cleanup())[0x556da56fde08]
sql/item_subselect.cc:3713(subselect_single_select_engine::prepare(THD*))[0x556da58ef54b]
sql/item_subselect.cc:282(Item_subselect::fix_fields(THD*, Item**))[0x556da58ef008]
sql/item_subselect.cc:3381(Item_in_subselect::fix_fields(THD*, Item**))[0x556da58ef3a7]
sql/item_cmpfunc.cc:1357(Item_in_optimizer::fix_fields(THD*, Item**))[0x556da5887fc6]
sql/item.h:961(Item::fix_fields_if_needed_for_scalar(THD*, Item**))[0x556da5884d80]
sql/sp_head.cc:356(THD::sp_fix_func_item(Item**))[0x556da55d18b6]
sql/sp_head.cc:343(THD::sp_prepare_func_item(Item**, unsigned int))[0x556da55d18e8]
sql/sp_head.cc:3937(sp_instr_jump_if_not::exec_core(THD*, unsigned int*))[0x556da55d193e]
sql/sp_head.cc:3343(sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*))[0x556da55d6854]
sql/sp_head.cc:1348(sp_head::execute(THD*, bool))[0x556da55d3364]
sql/sp_head.cc:1758(sp_head::execute_trigger(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, st_grant_info*))[0x556da55d3b42]
sql/sql_trigger.cc:2203(Table_triggers_list::process_triggers(THD*, trg_event_type, trg_action_time_type, bool))[0x556da56f708e]
sql/sql_base.cc:8657(fill_record_n_invoke_before_triggers(THD*, TABLE*, List<Item>&, List<Item>&, bool, trg_event_type))[0x556da5610f6b]
sql/sql_insert.cc:972(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool))[0x556da5638c7d]
sql/sql_parse.cc:4538(mysql_execute_command(THD*))[0x556da5669808]
sql/sql_parse.cc:10268(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x556da566bdb1]
sql/sql_lex.h:4686(Parser_state::reset(char*, unsigned int))[0x556da566d7e0]
sql/sql_parse.cc:1360(do_command(THD*))[0x556da566ecff]
sql/sql_connect.cc:1404(do_handle_one_connection(CONNECT*))[0x556da573dbe9]
sql/sql_connect.cc:1308(handle_one_connection)[0x556da573dd24]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f8cb499c6ba]
x86_64/clone.S:111(clone)[0x7f8cb3e4341d]

10.4.7

sql/sql_select.cc:13133(st_join_table::cleanup())[0x558e4747655c]
sql/sql_select.cc:13570(JOIN::cleanup(bool))[0x558e4748968a]
sql/sql_select.cc:4420(JOIN::destroy())[0x558e47489ae6]
sql/sql_union.cc:2034(st_select_lex::cleanup())[0x558e474d2e08]
sql/item_subselect.cc:3713(subselect_single_select_engine::prepare(THD*))[0x558e476c454b]
sql/item_subselect.cc:282(Item_subselect::fix_fields(THD*, Item**))[0x558e476c4008]
sql/item_subselect.cc:3381(Item_in_subselect::fix_fields(THD*, Item**))[0x558e476c43a7]
sql/item_cmpfunc.cc:1357(Item_in_optimizer::fix_fields(THD*, Item**))[0x558e4765cfc6]
sql/item.h:961(Item::fix_fields_if_needed_for_scalar(THD*, Item**))[0x558e47659d80]
sql/sp_head.cc:356(THD::sp_fix_func_item(Item**))[0x558e473a68b6]
sql/sp_head.cc:343(THD::sp_prepare_func_item(Item**, unsigned int))[0x558e473a68e8]
sql/sp_head.cc:3937(sp_instr_jump_if_not::exec_core(THD*, unsigned int*))[0x558e473a693e]
sql/sp_head.cc:3343(sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*))[0x558e473ab854]
sql/sp_head.cc:1348(sp_head::execute(THD*, bool))[0x558e473a8364]
sql/sp_head.cc:1758(sp_head::execute_trigger(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, st_grant_info*))[0x558e473a8b42]
sql/sql_trigger.cc:2203(Table_triggers_list::process_triggers(THD*, trg_event_type, trg_action_time_type, bool))[0x558e474cc08e]
sql/sql_base.cc:8657(fill_record_n_invoke_before_triggers(THD*, TABLE*, List<Item>&, List<Item>&, bool, trg_event_type))[0x558e473e5f6b]
sql/sql_insert.cc:972(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool))[0x558e4740dc7d]
sql/sql_parse.cc:4538(mysql_execute_command(THD*))[0x558e4743e808]
sql/sql_parse.cc:10268(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x558e47440db1]
sql/sql_lex.h:4686(Parser_state::reset(char*, unsigned int))[0x558e474427e0]
sql/sql_parse.cc:1360(do_command(THD*))[0x558e47443cff]
sql/sql_connect.cc:1404(do_handle_one_connection(CONNECT*))[0x558e47512be9]
sql/sql_connect.cc:1308(handle_one_connection)[0x558e47512d24]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f78fbd246ba]
x86_64/clone.S:111(clone)[0x7f78fb1cb41d]

Comment by Oleksandr Byelkin [ 2020-10-08 ]

duplicate of MDEV-23094

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