Bug #59091 | perfschema.binlog_mix and perfschema.binlog_row tests fail with openssl | ||
---|---|---|---|
Submitted: | 21 Dec 2010 16:00 | Modified: | 7 Jan 2011 18:50 |
Reporter: | [ name withheld ] | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Tests | Severity: | S3 (Non-critical) |
Version: | 5.5.8 | OS: | Linux (Fedora 13 x86_64) |
Assigned to: | Marc ALFF | CPU Architecture: | Any |
[21 Dec 2010 16:00]
[ name withheld ]
[21 Dec 2010 23:38]
MySQL Verification Team
I couldn't repeat with current source server: ============================================================================== TEST RESULT TIME (ms) ------------------------------------------------------------ worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009 perfschema.binlog_mix [ pass ] 298 ------------------------------------------------------------ The servers were restarted 0 times Spent 0.298 of 9 seconds executing testcases Completed: All 1 tests were successful. [miguel@hegel mysql-test]$
[26 Dec 2010 21:09]
[ name withheld ]
Hmm, it's quite reproducible for me, on both x86_64 and i386 architectures. I wonder whether you are building with SSL support? On my machine, the test's command update performance_schema.setup_instruments set enabled='NO' where name like "wait/synch/rwlock/%"; affects the following 21 rows: mysql> select * from performance_schema.setup_instruments where name like "wait/synch/rwlock/%"; +------------------------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +------------------------------------------------------+---------+-------+ | wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock | NO | YES | | wait/synch/rwlock/sql/LOCK_grant | NO | YES | | wait/synch/rwlock/sql/LOGGER::LOCK_logger | NO | YES | | wait/synch/rwlock/sql/LOCK_sys_init_connect | NO | YES | | wait/synch/rwlock/sql/LOCK_sys_init_slave | NO | YES | | wait/synch/rwlock/sql/LOCK_system_variables_hash | NO | YES | | wait/synch/rwlock/sql/Query_cache_query::lock | NO | YES | | wait/synch/rwlock/sql/LOCK_dboptions | NO | YES | | wait/synch/rwlock/sql/MDL_lock::rwlock | NO | YES | | wait/synch/rwlock/sql/MDL_context::LOCK_waiting_for | NO | YES | | wait/synch/rwlock/myisam/MYISAM_SHARE::key_root_lock | NO | YES | | wait/synch/rwlock/myisam/MYISAM_SHARE::mmap_lock | NO | YES | | wait/synch/rwlock/innodb/btr_search_latch | NO | YES | | wait/synch/rwlock/innodb/dict_operation_lock | NO | YES | | wait/synch/rwlock/innodb/fil_space_latch | NO | YES | | wait/synch/rwlock/innodb/checkpoint_lock | NO | YES | | wait/synch/rwlock/innodb/trx_i_s_cache_lock | NO | YES | | wait/synch/rwlock/innodb/trx_purge_latch | NO | YES | | wait/synch/rwlock/innodb/index_tree_rw_lock | NO | YES | | wait/synch/rwlock/sql/THR_LOCK_servers | NO | YES | | wait/synch/rwlock/sql/THR_LOCK_udf | NO | YES | +------------------------------------------------------+---------+-------+ 21 rows in set (0.01 sec) and as far as I can see that's more than enough data to produce 3 update_rows binlog events. But maybe you're using a different set of build options such that fewer rows match the LIKE test.
[26 Dec 2010 21:15]
[ name withheld ]
To clarify --- I'm using these possibly-relevant cmake options: -DBUILD_CONFIG=mysql_release \ -DFEATURE_SET="community" \ -DENABLED_LOCAL_INFILE=ON \ -DENABLE_DTRACE=ON \ -DWITH_EMBEDDED_SERVER=ON \ -DWITH_READLINE=ON \ -DWITH_SSL=system \ -DWITH_ZLIB=system
[26 Dec 2010 22:17]
[ name withheld ]
... and in fact, a little bit of digging finds this in mysqld.cc: #if defined (HAVE_OPENSSL) && !defined(HAVE_YASSL) { &key_rwlock_openssl, "CRYPTO_dynlock_value::lock", 0}, #endif So I'll bet a nickel that the failure occurs only when using openssl. When you aren't, there are 20 or fewer rows to be updated, and it fits in two binlog events, so the expected result matches.
[30 Dec 2010 7:59]
Sveta Smirnova
Thank you for the feedback. You are right: I used -DWITH_SSL=bundled. Which exact version of OpenSSL do you have?
[30 Dec 2010 15:21]
[ name withheld ]
I'm testing with openssl-1.0.0c-1.fc13.x86_64, which is the current release on Fedora 13, but I seriously doubt that the exact version makes any difference. The basic problem here is that you've got regression test output that depends on how many performance counter rows there are, and that means it's a bad idea for the existence of a counter row to depend on platform or build options. Maybe a good fix would be to have the row be present unconditionally, but just be a no-op when not using openssl.
[30 Dec 2010 20:20]
Sveta Smirnova
Thank you for the feedback. Verified as described: tests fail if compiled with openssl-1.0.0c
[4 Jan 2011 9:05]
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/127862 3213 Marc Alff 2011-01-04 Bug#59091 perfschema.binlog_mix and perfschema.binlog_row tests fail with openssl Fixed the test case to be independent of build options used. Removed the lowercase-table-names constraint, since performance schema tables are now in lowercase.
[5 Jan 2011 7:03]
Bugs System
Pushed into mysql-5.5 5.5.9 (revid:marc.alff@oracle.com-20110105070214-hojt221fz4pvw1mf) (version source revid:marc.alff@oracle.com-20110104090402-khxhhbm6oy9k0owd) (merge vers: 5.5.9) (pib:24)
[5 Jan 2011 7:18]
Bugs System
Pushed into mysql-trunk 5.6.2 (revid:marc.alff@oracle.com-20110105071657-b4htma14d2m4due3) (version source revid:marc.alff@oracle.com-20110105071657-b4htma14d2m4due3) (merge vers: 5.6.2) (pib:24)
[5 Jan 2011 7:19]
Marc ALFF
Pushed into: - mysql-5.5 (5.5.9) - mysql-trunk (5.6.2)
[5 Jan 2011 14:01]
Paul DuBois
Changes to test suite. No changelog entry needed.