{"push_id":2077107679,"size":6,"distinct_size":6,"ref":"refs/heads/inplace_alter","head":"44fb9b5b56b1bfe40f5b4492c4e51d23f520beea","before":"a992747cfa904192440f8062d7a88e6a0bc06da3","commits":[{"sha":"0fc059a84bd5cdd0622c41ab7a223d78ae92de16","author":{"name":"Manuel Ung","email":"c1d59253d15d34fa0648204ca4e012a3582e1f6e@fb.com"},"message":"Fix crash during shutdown in audit plugin code path\n\nSummary:\nOn server shutdown, there exists a race condition that can trigger a segfault if an audit plugin is installed. The root cause because the `THD::audit_class_plugins` array is accessed concurrently without locks.\n\nThis is the sequence of actions that can trigger a crash:\n1. The shutdown thread calls close_connections on all connected clients.\n2. The connection thread will call into the audit plugin because it will receive a network error from `close_connections`, and will log the error into the audit plugin. The thread then adds the plugin to `THD::audit_class_plugins`, but it has not updated `audit_class_mask` yet.\n3. The shutdown thread sees that `audit_class_mask` is not set, and also adds the plugin into `THD::audit_class_plugins`, but it has only extended the array, without setting the value of the 2nd element of the array.\n4. The connection thread then goes ahead and updates `audit_class_mask` and finishes `acquire_plugins`. It then calls `mysql_audit_notify` and sees the array of size 2, and when it loops over the 2nd element, it segfaults because the value is uninitalized.\n\nThe fix is to add a lock per THD that protects these data structures. They should be relatively uncontended since the shutdown thread is the only thread that calls `acquire_plugins` on another THD.\n\nThe corresponding code in 5.7/8.0 has been largely refactored, but I suspect this will still be an issue since it doesn't seem like the corresponding data structures are synchronized.\n\nReviewed By: asandryh\n\nDifferential Revision: D6103777\n\nfbshipit-source-id: 17763c6","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/0fc059a84bd5cdd0622c41ab7a223d78ae92de16"},{"sha":"bbd97abdf4030883648e1137932529a35e8b07ed","author":{"name":"Jay Edgar","email":"fcf433c1ae8fab93c4b455096a25a524a23b11ac@fb.com"},"message":"Put RPC_ID into the session state portion of the OK packet\n\nSummary: For future expansion we want to move the RPC_ID from the 'info' section to the 'session state' section of the OK packet.  This diff adds it to the 'session state' section without removing it from the 'info' section.  Once this has landed we can update MyRouter to pull it out of the 'session state' section and once that is landed we can remove the code that puts it in the 'info' section.\n\nReviewed By: anca-agape\n\nDifferential Revision: D6096092\n\nfbshipit-source-id: 2993f3a","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/bbd97abdf4030883648e1137932529a35e8b07ed"},{"sha":"c990944c4f535d905824bdfbd704108164d17737","author":{"name":"George O. Lorch III","email":"e364369d49eb2808b7f3c5bf9f2645a5f131849a@percona.com"},"message":"Created new information_schema.rocksdb_deadlock table.\n\nSummary:\nThis table tracks historic deadlocks based on the functionality introduced in\n\"Display Deadlock Paths\".\nCopied the deadlock_tracking test and touched it up to test the new table as\nopposed to the SHOW ENGINE ROCKSDB TRANSACTION STATUS.\nCloses https://github.com/facebook/mysql-5.6/pull/729\n\nDifferential Revision: D6054713\n\nfbshipit-source-id: 9c055e6","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/c990944c4f535d905824bdfbd704108164d17737"},{"sha":"aceaa9bf880f2e5b59bbf867c4f6093be063fa6d","author":{"name":"Manuel Ung","email":"c1d59253d15d34fa0648204ca4e012a3582e1f6e@fb.com"},"message":"Add information_schema table for query attributes\n\nSummary: Currently, there's no way to know what query attributes were sent to the server, because it is only exposed to the audit plugin. Add an I_S table for this.\n\nReviewed By: abal147\n\nDifferential Revision: D6140354\n\nfbshipit-source-id: 0fec874","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/aceaa9bf880f2e5b59bbf867c4f6093be063fa6d"},{"sha":"f99a2f924bf58618a62f5ebd9fc54733d37b8e11","author":{"name":"Manuel Ung","email":"c1d59253d15d34fa0648204ca4e012a3582e1f6e@fb.com"},"message":"Skip scan does not work with bloom filters in MyRocks\n\nSummary:\nDuring skip scan, we don't reset the end range when we iterate to the next prefix to scan. For MyRocks, end range is used to determine whether bloomfilters can be used or not, so because it was not reset, MyRocks was making the wrong decisions about whether bloomfilters are usable or not.\n\nThe fix is to reset it before every prefix scan.\n\nCloses https://github.com/facebook/mysql-5.6/issues/744\n\nReviewed By: yoshinorim\n\nDifferential Revision: D6140923\n\nfbshipit-source-id: 258ab5b","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/f99a2f924bf58618a62f5ebd9fc54733d37b8e11"},{"sha":"44fb9b5b56b1bfe40f5b4492c4e51d23f520beea","author":{"name":"Manuel Ung","email":"c1d59253d15d34fa0648204ca4e012a3582e1f6e@fb.com"},"message":"Implement inplace alter for auto_increment","distinct":true,"url":"https://api.github.com/repos/lth/mysql-5.6/commits/44fb9b5b56b1bfe40f5b4492c4e51d23f520beea"}]}
{"actor":{"display_login":"lth"}}