Bug #39022 | Mysql randomly crashing in lock_sec_rec_cons_read_sees | ||
---|---|---|---|
Submitted: | 25 Aug 2008 21:02 | Modified: | 18 Jun 2010 2:11 |
Reporter: | Jonatas Cruz | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S1 (Critical) |
Version: | 5.0.67, 5.1.34, 5.1.38,5.1.41 | OS: | Any (2003 x64, linux x64, solaris, Mac OS X) |
Assigned to: | Georgi Kodinov | CPU Architecture: | Any |
Tags: | crashing windows server x64 |
[25 Aug 2008 21:02]
Jonatas Cruz
[25 Aug 2008 22:02]
MySQL Verification Team
According call stack provided resolving manually: 00750389, MYSQLD-NT.EXE, lock_sec_rec_cons_read_sees, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\innobase\lock\lock0lock.c line 569 00710316, MYSQLD-NT.EXE, row_search_for_mysql, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\innobase\row\row0sel.c line 3833 00449067, MYSQLD-NT.EXE, ha_innobase::general_fetch, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\ha_innodb.cc line 4036 00457B89, MYSQLD-NT.EXE, handler::read_multi_range_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\handler.cc line 2583 00503438, MYSQLD-NT.EXE, QUICK_RANGE_SELECT::get_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\opt_range.cc line 6872 0050B49C, MYSQLD-NT.EXE, QUICK_ROR_INTERSECT_SELECT::get_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\opt_range.cc line 6657 00518FF6, MYSQLD-NT.EXE, rr_quick, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\records.cc line 224 005B784D, MYSQLD-NT.EXE, sub_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 10668 005D0F36, MYSQLD-NT.EXE, do_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 10426 005D2260, MYSQLD-NT.EXE, JOIN::exec, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 2106 005D2AA3, MYSQLD-NT.EXE, mysql_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 2287 005D30B8, MYSQLD-NT.EXE, handle_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 257 0059919D, MYSQLD-NT.EXE, mysql_execute_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 2761 005A01D8, MYSQLD-NT.EXE, mysql_parse, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 6234 005A1899, MYSQLD-NT.EXE, dispatch_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1900 005A2C47, MYSQLD-NT.EXE, do_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1595 005A2FC6, MYSQLD-NT.EXE, handle_one_connection, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1187 0068B669, MYSQLD-NT.EXE, pthread_start, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\mysys\my_winthread.c line 85 007D5C37, MYSQLD-NT.EXE, _callthreadstart, f:\rtm\vctools\crt_bld\self_64_amd64\crt\src\thread.c line 295 007D5D05, MYSQLD-NT.EXE, _threadstart, f:\rtm\vctools\crt_bld\self_64_amd64\crt\src\thread.c line 275 77D6B6DA, No module at that address, No function at that address,
[26 Aug 2008 3:39]
Valeriy Kravchuk
Please, send your my.ini file content. How much RAM and how many CPUs/cores do you have? Had you noted any specific queries/actions that lead to these crashes?
[26 Aug 2008 8:28]
MySQL Verification Team
looks like trx->read_view was null?
Attachment: bug39022_readable_stack_trace.txt (text/plain), 1.08 KiB.
[26 Aug 2008 12:59]
Jonatas Cruz
Valeriy My my.ini file: ************************************************** [client] port=33306 [mysql] default-character-set=latin1 [mysqld] binlog-ignore-db=bpmail log-bin="D:/mysql/binlogs/Zeus" server-id=1 expire_logs_days=90 skip-name-resolve port=33306 basedir="C:/Program Files/MySQL/MySQL Server 5.0/" datadir="D:/mysql/databases/" default-character-set=latin1 default-storage-engine=MYISAM sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_allowed_packet=10M max_connections=1000 max_connect_errors=100 connect_timeout=30 wait_timeout=60 query_cache_size=300M table_cache=1M tmp_table_size=64M thread_cache_size=80 myisam_max_sort_file_size=100G myisam_max_extra_sort_file_size=100G myisam_sort_buffer_size=50M key_buffer_size=100M innodb_buffer_pool_size=2G read_buffer_size=4M sort_buffer_size=10M read_rnd_buffer_size=8M innodb_data_home_dir="D:/mysql/databases/" innodb_additional_mem_pool_size=6M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=8M innodb_log_file_size=100M innodb_thread_concurrency=0 innodb_file_per_table ************************************************** The server has 8 GB RAM and 2 x Intel Xeon Quadcore E5335 (x64). It is a dedicated database server. There is not others applications running on. I not noted none query leading to the crash. Thanks Jonatas
[26 Aug 2008 13:01]
Jonatas Cruz
Shane I not understand your comment. Could you explain? Thanks Jonatas
[24 Oct 2008 12:19]
Heikki Tuuri
Looking more carefully, this might be yet another MRR bug: lock_sec_rec_cons_read_sees, lock0lock.c line 569 row_search_for_mysql, row0sel.c line 3833 ha_innobase::general_fetch, ha_innodb.cc line 4036 handler::read_multi_range_next, handler.cc line 2583 QUICK_RANGE_SELECT::get_next, opt_range.cc line 6872 QUICK_ROR_INTERSECT_SELECT::get_next, opt_range.cc line 6657 rr_quick, records.cc line 224 sub_select, sql_select.cc line 10668 do_select, sql_select.cc line 10426 JOIN::exec, sql_select.cc line 2106 mysql_select, sql_select.cc line 2287 handle_select, sql_select.cc line 257 mysql_execute_command, sql_parse.cc line 2761 mysql_parse, sql_parse.cc line 6234 dispatch_command, sql_parse.cc line 1900 do_command, sql_parse.cc line 1595 handle_one_connection, sql_parse.cc line 1187
[24 Oct 2008 12:41]
Heikki Tuuri
Marko analyzed that trx->read_view is probably NULL or points outside the memory bounds. It is unlikely to be NULL, because row_search_for_mysql() sets it to a non-NULL value.
[24 Oct 2008 16:36]
Calvin Sun
Did crashes always have the same call stack? Could you please provide the userdump when it crashes? You can follow the instructions described in this article - http://support.microsoft.com/kb/241215. Thanks, Calvin
[25 Nov 2008 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[26 Oct 2009 5:18]
MySQL Verification Team
suspect that bug #46175 is related..
[3 Dec 2009 10:06]
MySQL Verification Team
Saw a crash with this query: select a,b from t1 where c not in (select x from y) another thread was busy doing this at the same time: delete from y; I'll try make a testcase again.
[3 Dec 2009 13:42]
MySQL Verification Team
sorry for all the comments. I found out 5.1.41 IS AFFECTED. Here's a testcase that shows it. Start server with --log-bin and start two mysql sessions. thread 1: drop table if exists t1,t2; create table t1(a tinyint not null,b tinyint,primary key(b))engine=innodb; create table t2(d tinyint not null,unique key(d))engine=innodb; insert into t1 values (13,0),(8,1),(9,2),(6,3), (11,5),(11,6),(7,7),(7,8),(4,9),(6,10),(3,11),(11,12), (12,13),(7,14); insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10), (11),(12),(13),(14); start transaction; thread 2: replace into t2 values (-17); select d from t2,t1 where d=(select max(a) from t1 where t1.a > t2.d); thread 1: replace into t1(a,b) values (67,20); thread 2: commit; start transaction; replace into t1(a,b) values (65,-50); replace into t2 values (-91); select d from t2,t1 where d=(select max(a) from t1 where t1.a > t2.d); #waits thread 1: select d from t2,t1 where d=(select max(a) from t1 where t1.a > t2.d); #crashes
[3 Dec 2009 14:02]
Valeriy Kravchuk
Verified just as described in a recent test case from Shane with recent 5.1.42 from bzr on Mac OS X: 091203 16:00:29 - mysqld got signal 10 ; 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. 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. key_buffer_size=8384512 read_buffer_size=131072 max_used_connections=2 max_threads=151 threads_connected=2 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 337715 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd: 0x1038c18 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 = 0xb026af64 thread_stack 0x30000 0 mysqld 0x00579d3e my_print_stacktrace + 44 1 mysqld 0x00100f78 handle_segfault + 836 2 libSystem.B.dylib 0x940472bb _sigtramp + 43 3 ??? 0xffffffff 0x0 + 4294967295 4 mysqld 0x003cc725 lock_clust_rec_cons_read_sees + 62 5 mysqld 0x0040d4e4 row_search_for_mysql + 5236 6 mysqld 0x00439dc6 _ZN11ha_innobase13general_fetchEPhjj + 242 7 mysqld 0x00439f7d _ZN11ha_innobase8rnd_nextEPh + 207 8 mysqld 0x00245096 _Z13rr_sequentialP11READ_RECORD + 110 9 mysqld 0x0018917c _Z18error_if_full_joinP4JOIN + 4142 10 mysqld 0x00189224 _Z16sub_select_cacheP4JOINP13st_join_tableb + 44 11 mysqld 0x00187fe1 _Z10sub_selectP4JOINP13st_join_tableb + 65 12 mysqld 0x00199b2d _ZN4JOIN9join_freeEv + 1687 13 mysqld 0x001ac1eb _ZN4JOIN4execEv + 9451 14 mysqld 0x001a6c69 _Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex + 879 15 mysqld 0x001ac571 _Z13handle_selectP3THDP6st_lexP13select_resultm + 569 16 mysqld 0x001129cc _Z15update_precheckP3THDP10TABLE_LIST + 1150 17 mysqld 0x00115016 _Z21mysql_execute_commandP3THD + 2936 18 mysqld 0x0011ead1 _Z11mysql_parseP3THDPKcjPS2_ + 625 19 mysqld 0x0011f897 _Z16dispatch_command19enum_server_commandP3THDPcj + 3063 20 mysqld 0x00120c5c _Z10do_commandP3THD + 666 21 mysqld 0x0010b5e2 handle_one_connection + 372 22 libSystem.B.dylib 0x9400c095 _pthread_start + 321 23 libSystem.B.dylib 0x9400bf52 thread_start + 34 Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x1079428 = select d from t2,t1 where d=(select max(a) from t1 where t1.a > t2.d) thd->thread_id=1 thd->killed=NOT_KILLED
[7 Dec 2009 7:13]
Marko Mäkelä
This may be related to Bug #46175. Both seem to have trx->read_view == NULL.
[7 Dec 2009 9:56]
Marko Mäkelä
Bug #46175 seems to be caused by MySQL attempting to continue execution after a subselect (as far as I understand) failed due to a deadlock. InnoDB would have rolled back the transaction, and MySQL is trying to reuse the transaction object and trying to continue execution despite the error. As far as I understand, MySQL is mapping the deadlock error from the sub-(select) to a NULL value and pretending that everything is OK. Could this be the case here too?
[23 Dec 2009 10:45]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/95479 3294 Georgi Kodinov 2009-12-23 Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees flush_cached_records() was not correctly checking for errors after calling Item::val_xxx() methods. The expressions may contain subqueries or stored procedures that cause errors that should stop the statement. Fixed by correctly checking for errors and propagating them up the call stack.
[5 Feb 2010 10:49]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/99387 3364 Georgi Kodinov 2009-12-23 Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees flush_cached_records() was not correctly checking for errors after calling Item::val_xxx() methods. The expressions may contain subqueries or stored procedures that cause errors that should stop the statement. Fixed by correctly checking for errors and propagating them up the call stack.
[1 Mar 2010 8:45]
Bugs System
Pushed into 5.1.45 (revid:joro@sun.com-20100301083827-xnimmrjg6bh33o1o) (version source revid:joerg@mysql.com-20100212173307-ph563zr4wmoklgwd) (merge vers: 5.1.45) (pib:16)
[2 Mar 2010 14:34]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100302142746-u1gxdf5yk2bjrq3e) (version source revid:alik@sun.com-20100225090938-2j5ybqoau570mytu) (merge vers: 6.0.14-alpha) (pib:16)
[2 Mar 2010 14:39]
Bugs System
Pushed into 5.5.3-m2 (revid:alik@sun.com-20100302072233-t3uqgjzdukt1pyhe) (version source revid:alexey.kopytov@sun.com-20100209075938-mmcnyf6w631ozc45) (merge vers: 5.5.2-m2) (pib:16)
[2 Mar 2010 14:44]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100302072432-k8xvfkgcggkwgi94) (version source revid:alik@sun.com-20100224135227-rcqs9pe9b2in80pf) (pib:16)
[14 Mar 2010 1:55]
Paul DuBois
Noted in 5.1.45, 5.5.3, 6.0.14 changelogs. flush_cache_records() did not correctly check for errors that should cause statement execution to stop, leading to a server crash.
[9 Apr 2010 14:48]
Paul DuBois
Noted in 5.1.43sp1 changelog.
[12 Apr 2010 10:17]
Bugs System
Pushed into 5.1.47 (revid:build@mysql.com-20100412101220-adgau1r18kwgthps) (version source revid:build@mysql.com-20100412101220-adgau1r18kwgthps) (merge vers: 5.1.47) (pib:16)
[28 May 2010 6:12]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:40]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100422150658-fkhgnwwkyugtxrmu) (merge vers: 6.0.14-alpha) (pib:16)
[28 May 2010 7:08]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:alexey.kopytov@sun.com-20100429203306-tg0wz4y2xyx8edrl) (merge vers: 5.5.5-m3) (pib:16)
[30 May 2010 0:25]
Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug. Re-closing.
[9 Jun 2010 14:12]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/110637 3103 Martin Skold 2010-06-09 [merge] Merged in 5.1.45 added: mysql-test/include/not_binlog_format_row.inc mysql-test/r/bug39022.result mysql-test/r/no_binlog.result mysql-test/r/partition_debug_sync.result mysql-test/std_data/bug48449.frm mysql-test/suite/rpl/r/rpl_slow_query_log.result mysql-test/suite/rpl/t/rpl_slow_query_log-slave.opt mysql-test/suite/rpl/t/rpl_slow_query_log.test mysql-test/t/bug39022.test mysql-test/t/no_binlog.test mysql-test/t/partition_debug_sync.test renamed: mysql-test/r/variables+c.result => mysql-test/r/variables_community.result mysql-test/t/variables+c.test => mysql-test/t/variables_community.test modified: client/mysql.cc client/mysql_upgrade.c client/mysqladmin.cc client/mysqlbinlog.cc client/mysqlcheck.c client/mysqldump.c client/mysqlimport.c client/mysqlshow.c client/mysqlslap.c client/mysqltest.cc cmd-line-utils/readline/rlmbutil.h cmd-line-utils/readline/text.c configure.in extra/yassl/include/yassl_error.hpp extra/yassl/src/ssl.cpp extra/yassl/src/yassl_error.cpp mysql-test/include/mtr_warnings.sql mysql-test/lib/My/ConfigFactory.pm mysql-test/lib/My/SafeProcess.pm mysql-test/lib/My/SafeProcess/safe_process_win.cc mysql-test/lib/mtr_cases.pm mysql-test/lib/mtr_gprof.pl mysql-test/lib/mtr_misc.pl mysql-test/lib/mtr_report.pm mysql-test/lib/mtr_stress.pl mysql-test/lib/v1/mtr_stress.pl mysql-test/lib/v1/mysql-test-run.pl mysql-test/mysql-test-run.pl mysql-test/r/archive.result mysql-test/r/backup.result mysql-test/r/bigint.result mysql-test/r/csv.result mysql-test/r/default.result mysql-test/r/delete.result mysql-test/r/fulltext.result mysql-test/r/func_gconcat.result mysql-test/r/func_time.result mysql-test/r/group_by.result mysql-test/r/group_min_max.result mysql-test/r/having.result mysql-test/r/innodb-autoinc.result mysql-test/r/innodb_mysql.result mysql-test/r/join.result mysql-test/r/log_state.result mysql-test/r/multi_update.result mysql-test/r/myisam.result mysql-test/r/mysqltest.result mysql-test/r/show_check.result mysql-test/r/sp-bugs.result mysql-test/r/sp-error.result mysql-test/r/sp.result mysql-test/r/sp_notembedded.result mysql-test/r/sp_trans.result mysql-test/r/subselect.result mysql-test/r/type_bit.result mysql-test/r/type_blob.result mysql-test/r/type_timestamp.result mysql-test/r/view.result mysql-test/r/view_grant.result mysql-test/r/warnings.result mysql-test/suite/rpl/r/rpl_sp.result mysql-test/suite/rpl/t/rpl_loaddata_symlink.test mysql-test/suite/sys_vars/r/log_basic.result mysql-test/suite/sys_vars/r/log_bin_trust_routine_creators_basic.result mysql-test/suite/sys_vars/r/slow_query_log_func.result mysql-test/suite/sys_vars/t/slow_query_log_func.test mysql-test/t/archive.test mysql-test/t/bigint.test mysql-test/t/csv.test mysql-test/t/delete.test mysql-test/t/fulltext.test mysql-test/t/func_gconcat.test mysql-test/t/group_by.test mysql-test/t/group_min_max.test mysql-test/t/having.test mysql-test/t/innodb-autoinc.test mysql-test/t/innodb_mysql.test mysql-test/t/join.test mysql-test/t/multi_update.test mysql-test/t/myisam.test mysql-test/t/mysqltest.test mysql-test/t/sp-bugs.test mysql-test/t/sp_notembedded.test mysql-test/t/subselect.test mysql-test/t/type_bit.test mysql-test/t/view.test mysql-test/t/view_grant.test mysys/default.c scripts/mysqld_multi.sh server-tools/instance-manager/options.cc sql/field.cc sql/ha_partition.cc sql/item.cc sql/item.h sql/item_cmpfunc.h sql/item_row.cc sql/item_sum.cc sql/item_timefunc.cc sql/log.cc sql/log_event.cc sql/log_event_old.cc sql/mysql_priv.h sql/mysqld.cc sql/opt_range.cc sql/opt_sum.cc sql/share/errmsg.txt sql/sp.cc sql/sp_cache.cc sql/sp_head.cc sql/sql_base.cc sql/sql_class.cc sql/sql_class.h sql/sql_lex.cc sql/sql_lex.h sql/sql_parse.cc sql/sql_repl.cc sql/sql_select.cc sql/sql_select.h sql/sql_table.cc sql/sql_trigger.cc sql/sql_update.cc sql/sql_view.cc sql/table.cc sql/table.h storage/archive/ha_archive.cc storage/csv/ha_tina.cc storage/innobase/buf/buf0buf.c storage/innobase/buf/buf0rea.c storage/innobase/handler/ha_innodb.cc storage/innobase/include/buf0rea.h storage/innobase/lock/lock0lock.c storage/innobase/os/os0file.c storage/myisam/ft_boolean_search.c storage/myisam/mi_dynrec.c storage/myisam/mi_locking.c support-files/mysql.spec.sh
[17 Jun 2010 12:18]
Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:05]
Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:45]
Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)