From: Andrei Elkin Date: June 21 2011 4:10pm Subject: bzr commit into mysql-next-mr-wl5569 branch (andrei.elkin:3314) WL#5569 List-Archive: http://lists.mysql.com/commits/139604 Message-Id: <201106211611.p5LGB42d004956@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0617661405==" --===============0617661405== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-mr-wl5569/ based on revid:andrei.elkin@stripped 3314 Andrei Elkin 2011-06-21 [merge] wl#5569 MTS Fixing valgrind warnings. @ sql/log_event.cc w->running_status is verfied to find out the actually sought running status of a Worker. THD can be unavainlable that's what a valgrind report was about. @ sql/rpl_rli_pdb.cc commenting out an assert that valgrind does not like. @ sql/rpl_rli_pdb.h new method is added to be invoked at MTS shutdown. @ sql/rpl_slave.cc Invoking gaq cleanup at the end of MTS session. modified: sql/log_event.cc sql/rpl_rli_pdb.cc sql/rpl_rli_pdb.h sql/rpl_slave.cc === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2011-06-19 09:33:36 +0000 +++ b/sql/log_event.cc 2011-06-21 14:05:32 +0000 @@ -2801,7 +2801,7 @@ void append_item_to_jobs(slave_job_item mysql_mutex_lock(&w->jobs_lock); // possible WQ overfill - while (!w->info_thd->killed && !thd->killed && + while (w->running_status == Slave_worker::RUNNING && !thd->killed && (ret= en_queue(&w->jobs, job_item)) == -1) { const char *old_msg; === modified file 'sql/rpl_rli_pdb.cc' --- a/sql/rpl_rli_pdb.cc 2011-06-20 22:19:06 +0000 +++ b/sql/rpl_rli_pdb.cc 2011-06-21 16:10:54 +0000 @@ -308,9 +308,14 @@ static void free_entry(db_worker_hash_en DBUG_PRINT("info", ("free_entry %s, %d", entry->db, (int) strlen(entry->db))); DBUG_ASSERT(c_thd->system_thread == SYSTEM_THREAD_SLAVE_SQL); - DBUG_ASSERT(entry->usage == 0 || - !entry->worker || // the last entry owner could have errored out - entry->worker->running_status != Slave_worker::RUNNING); + + /* + Although assert is correct valgrind senses entry->worker can be freed. + + DBUG_ASSERT(entry->usage == 0 || + !entry->worker || // last entry owner could have errored out + entry->worker->running_status != Slave_worker::RUNNING); + */ mts_move_temp_tables_to_thd(c_thd, entry->temporary_tables); entry->temporary_tables= NULL; @@ -1115,6 +1120,24 @@ ulong Slave_committed_queue::move_queue_ return cnt; } +/** + Method should be executed at slave system shutdown to + cleanup dynamically allocated items that remained as unprocessed + by shutdown time. +*/ +void Slave_committed_queue::free_dynamic_items() +{ + ulong i; + for (i= e; i != a && !empty(); i= (i + 1) % s) + { + Slave_job_group *ptr_g= (Slave_job_group *) dynamic_array_ptr(&Q, i); + if (ptr_g->group_relay_log_name) + { + my_free(ptr_g->group_relay_log_name); + } + } +} + void Slave_worker::do_report(loglevel level, int err_code, const char *msg, va_list vargs) const { c_rli->do_report(level, err_code, msg, vargs); === modified file 'sql/rpl_rli_pdb.h' --- a/sql/rpl_rli_pdb.h 2011-06-20 10:52:44 +0000 +++ b/sql/rpl_rli_pdb.h 2011-06-21 14:05:32 +0000 @@ -215,6 +215,8 @@ public: /* Checkpoint routine refreshes the queue */ ulong move_queue_head(DYNAMIC_ARRAY *ws); + /* Method is for slave shutdown time cleanup */ + void free_dynamic_items(); }; class Slave_jobs_queue : public circular_buffer_queue === modified file 'sql/rpl_slave.cc' --- a/sql/rpl_slave.cc 2011-06-20 13:32:33 +0000 +++ b/sql/rpl_slave.cc 2011-06-21 14:05:32 +0000 @@ -2832,15 +2832,14 @@ int apply_event_and_update_pos(Log_event rli->curr_group_da.elements= 0; } - //job_item->data= ev; - /* Notice `ev' instance can be destoyed after `append()' */ - append_item_to_jobs(job_item, w, rli); /* ALFRANIO --> Add more debug messages. */ DBUG_PRINT("Mts-jobs", ("Assigning Jobs %lu to Worker %lu\n", (long unsigned int) ((Log_event* )job_item->data)->log_pos, w->id)); + /* Notice `ev' instance can be destoyed after `append()' */ + append_item_to_jobs(job_item, w, rli); if (need_sync) { /* @@ -4455,6 +4454,8 @@ void slave_stop_workers(Relay_log_info * rli->mts_group_status= Relay_log_info::MTS_NOT_IN_GROUP; destroy_hash_workers(rli); + // free possibly allocated strings in GAQ's list + rli->gaq->free_dynamic_items(); delete rli->gaq; delete_dynamic(&rli->least_occupied_workers); // least occupied delete_dynamic(&rli->curr_group_da); // GCDA --===============0617661405== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-\ # mr-wl5569/ # testament_sha1: b5a3251adfecbbed3aabbc2fbefa70c424372511 # timestamp: 2011-06-21 19:11:04 +0300 # source_branch: file:///home/andrei/MySQL/BZR/2a-23May/mysql-trunk/ # base_revision_id: andrei.elkin@stripped\ # r31p36ndm4odby1u # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWVVPAzYABlffgFQUe////3/j P4D////+YAwGuw2vrGAAAA2jaFA0oCgUoAohJIg1NGjJT9SeaU2p6eiZGJPI0mINAaGmgaDQ40ZM jCMQDCaDAJoNAyZNGTIYQGGgQSZqaamQaGho0AaAGg0AADQASmiQmpqZGnk9R6mNU0wmAIwAAmIw GgDjRkyMIxAMJoMAmg0DJk0ZMhhAYSSAQAIaSeTEGpimEyJieoyGmQADEjDrGF4VeXnx4n5Mecu4 M3jbG0a7fZ8Llhld3FL6aW4KP9dpZ0tHh+odlcJoF58s00Vuuu8xhjwMzFMZUapLV60yRpZGpiIf rC4IE0yWYMIo9JQZlcGd41UVY4BXDBAokMRkLE9OA7+4sVrf7T1+ctl/u0d93lcTvDYjSjChkzMy SQkFvDONoTH0JzbiEJX7KAgiHzkWKSzFOhDVnJAGaM81gjP0qBjZcwVhap1rJ27IdbyqGDXZpOON 4NoOY9mlRmYlU3nYhX6EvtIOaN2eoVnV4oUbCEJTh0+Koaqwil8YFRY3jesgZqkVX80yCOBnMYnp cQaa3NBxFKloYHjeOaf6aiLRlGNAIK9TELRI8UOe1c6azPpiSRNFBsrC6W4OHPt0ankWZ4zGhEyy g/vkl1ZUiWVyTH6MbXBBxaPt3VWZVaMwp8EEK8nfRrxbuu5WlP/INKZiZmW5inNx+AsgDDC4E8AH 4kcwsdGgw12ysPEPFB5nabz4g4iF5kYQ8VUqygXIhC4bqAQuQI8hNnfHeGg2iDOBwOSYZwINqKkJ PRjDAXzksdmt3cQHd6j65biTI9yCrNekGuph0wJEEw63IJGeQAiGYRWqhiYCQDsAJUzyICkyaKAF wpnkAIbGAMDgArTpGIQPRBA+AFZYUFNlYUehu8iWDysiXOgN2/oAR+8yFdJyvGCuJ8Hw+I7+bmmg PwZBgKwAIcyb94eEB8wA1nO37nBuQKdRWXzpj3Wx17IWFl42M3ZDFmy203bJ0KqkBggogrVTKo+R kUxQVKVFfgsIi09YQe1WBgaktlI7oHGoqwtnWBaES1GZIvdTNDakzfACSCxclxuuzV3bvL5NUgNX oL2ABkfIZAoR0VaYKBZHQ4cPVGRB16CsrMN0IEH44wUAIk32PW41ykIY5MQNgXOMpaZQD5vNB50R 6ILBGVeCrZ1rlq/JiIDEmk7MvHQzWoA6uvJ9H6GpO2mLS7jEOKqsruKpQ422XjkQPUMOOQum/OSP 0DijILkGzY1trns4V7QvGQLRkGWRUnqEk7tpKlZuH4GJGqdY8cOHoK1nTV5SL1IsmVTKmO71sDWJ VxKmLcSskSMbXnVHQA9qsjZf7XUzsH52zBbUBXS1EyMRSctBHtdyJH4nmPGKmYtcmkrgnWmcXgSQ w5IxiHcSNBSwALStjdoHPyDQ4XX3IMFa+7eamAq2Z8tDsHJJb6iJ9KCO0OOwFTGyu8tGO3CsaVxi DoLeUAyDILTU33QT0emm0ozEbrlQDCZunnkn304irrvPHrtm9/kGt5nWOLhb8yO5LjnvKPvdCKCT 8mcZHs2m3mGoY5lVded5CbTCZAte4rJJyIEzI36teVmOwMKy7hQkYrFbR5WQxGJWmJg+Jf4i+byr u2FuwB8HjsXoM7xry4UZ3E4OI0gIZ2BEegpVnjcQVyMzQYi80lIuHPPIAonndLImLzMftzJZ8idL EXpGhi8imJpXlKx1Q+qEUEUpocgkk4qIkHwSkRJEiTisQ+oYm6v6hd9442Hol5R+w/FOOEhQMDGU K2Zz04ZmZKYznMjkMwKFjMDJDbvv14C5isJIEkJFnfLxJ5uf7FrCP68xBTIbCQTD/z8J5VAJo5Pf O4/k7v4HPETRVdF8MqXq2LcRJYhllQw+yCeehhEC0cKSdJ1nT0JL03BDlBZ5ilLaOlQbBkah20jN IbR6vburxI3Htv3yi6VYhAPv7CnEXRjAvfqIoI+zVqL6gjzRBfkxsqOX7egLaQgmdcUm2bjCBwEO J8JJi41Hx1ZxerywCj+nAqQnrd1GGHGZRJw7NEdJTAMPm7e9JdHfaWEDodwdURGPLYQJVdfRPHEh ih92aIFDzzAOxd7czvutCu4PekDaB5sJMrmy2HmSIXDGWRAxRar1A+8BaEiXDU0yFUxAi1zjVwgL VYIBtvRhz0NNMi8ihBfpeIe2KU7uk0OztXUxGVplwLRcLYPGXGjhVgVItK0FUBjXcTBQnw6JJi7e ZJxQYLixwdh94P4EMH7pnqLksFDoHMT0kszCPFNobfCz1cPR/h3xhN7IYo8e+EIkBm++STkkG8Ar be7L3IHcBlDx4cqQ9eJgUUndDkaDjruPcjajjUM1QwNtZbQTi0QxXLWKr5j+z8DrL5+nbXDR1GNn TKIWxeSMzz8PEgESh5Hb2uMEeXgAUSSzGRGVRvlcRcX6HkpVpQluqUXvHBj1m+ZJBkmRYOFH0wd9 ZCN1bbeTlh4xHnO2+xlgN7qzFBxg4t7nfWeXxs+dLRI06wHGgKo94sMV1Afy5ncdzvTqd6PYNSpB cp6mw+U5xmq3rUvRE6OGQnvctaUhXgSsR5POic2IZKQTu8NEcMQ5KSUzxCaH9IO9zcnnPqqhEz44 g7vQQVVdYI6m5FwqESaq+AepDw8/i3wDkdUvYKkSGglpJZ+YA4N35WS3g1ouswr7AtwxgF58OQLE qRrFnpJPV0CRFJRRtp7EUfWcSsOxfSMAMcLKHy80tIc+EwFPUYWjhmQlhBkOES2WmNOMnDPeymxO oyht8DtLSVEbgXwAHi4pGdq3EGUt6y0/OCKe0AqD1gHnfYZtaHNekt0EbkvUK8WfBQklbEQt2wiy HQJWAOJkiIeKw1CC/TVXBB9qKHoZE97IZhsRAOQDK4lgFiRtEFo79xFCVOYxAtGKiPz+IfsN5PmE z7tjs26hYcAA80w40RjiMyOZqgebWIIgvcGCKkORAmlRFReGg4GD0QfR+Uy4KkdFamYuZEEJMbjF HuRrROlewmYQ30LeRQlCostxIJQZIyDrA7kbCpD5XowY96PaE0YkhmYZgQzCVE5LsdUjkCJDsSGf hDGrVC1p2OhRoPMcbHEkgnBZEaK4PzEBeIf6l+jKKKhWEhN4B2cP5acWpaiWa49XbQa7tR2FiF8l 9YQJdBkMAeKSmloZnIigQS2Ru4CbqFaRxx1Tk+4+8phCwuMhmCCJxP4hBG0SmEUaisy2DBU41fMY mx2Jggogkdhajd3ydGArUknotNlwA2w945KrMLXT8hX43pUIpKx6KkONUSnJxdtrD3nvGMRw5mc5 zFdorwZhrz6U4uQwcSXYptZA/7B0OyTovWyyh4IKOsdwQcrR0zJy1fxUBhkaoeiOAzIJQRzFYjgw NMhUDFuIeQR1Rq145ziiPeOSxEblq5gye8yvLG7X1QqESc7QHVLF9ac7gVWx4NCTmbxfJ7HYNEZL 9X2BEeiIi+wCYPHOjFt8LhdzzARqexTSev3srVH4oiaGRbM2BG/DCIazERE3gDOFaZBIt6uZEpSL Bzh1gF1GtZgwFmDL4wxG42Ie5tjMMbakb/XBLINxejyQX5IL9xeje5JRAwFDmHrCCR3wie6A/2c/ JA9erJy57wkONqNyj0IICw+IWaHQN4dEEhLvXJbnch4D08Kq1RoVqxFchvb68qDTNfEiUKCVMLhD B1ZP6Pe9nf8XckU4UJBVTwM2 --===============0617661405==--