Merge lp:~vkolesnikov/pbxt/pbxt-bug-489088 into lp:pbxt

Proposed by Vladimir Kolesnikov
Status: Merged
Merged at revision: not available
Proposed branch: lp:~vkolesnikov/pbxt/pbxt-bug-489088
Merge into: lp:pbxt
Diff against target: 61 lines (+27/-1)
2 files modified
ChangeLog (+4/-0)
src/myxt_xt.cc (+23/-1)
To merge this branch: bzr merge lp:~vkolesnikov/pbxt/pbxt-bug-489088
Reviewer Review Type Date Requested Status
PBXT Core Pending
Review via email: mp+15421@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Paul McCullagh (paul-mccullagh) wrote :

Hi Vlad,

Could you please add a release note.

Revision history for this message
Vladimir Kolesnikov (vkolesnikov) wrote :

done!

lp:~vkolesnikov/pbxt/pbxt-bug-489088 updated
744. By Vladimir Kolesnikov

added a release note

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2009-11-25 15:02:05 +0000
+++ ChangeLog 2009-11-30 14:30:26 +0000
@@ -1,6 +1,10 @@
1PBXT Release Notes1PBXT Release Notes
2==================2==================
33
4------- 1.0.09g RC3 - not yet released
5
6RN290: Fixed bug #489088: On shutdown MySQL reports: [Warning] Plugin 'PBXT' will be forced to shutdown
7
4------- 1.0.09f RC3 - 2009-11-258------- 1.0.09f RC3 - 2009-11-25
59
6RN290: Fixed bug #345524: pbxt does not compile on 64 bit windows. Currently atomic operations are not supported on this platform.10RN290: Fixed bug #345524: pbxt does not compile on 64 bit windows. Currently atomic operations are not supported on this platform.
711
=== modified file 'src/myxt_xt.cc'
--- src/myxt_xt.cc 2009-11-27 14:12:44 +0000
+++ src/myxt_xt.cc 2009-11-30 14:30:26 +0000
@@ -3093,12 +3093,23 @@
3093 return NULL;3093 return NULL;
3094 }3094 }
30953095
3096 if (!(new_thd = new THD())) {3096 if (!(new_thd = new THD)) {
3097 my_thread_end();3097 my_thread_end();
3098 xt_register_error(XT_REG_CONTEXT, XT_ERR_MYSQL_ERROR, 0, "Unable to create MySQL thread (THD)");3098 xt_register_error(XT_REG_CONTEXT, XT_ERR_MYSQL_ERROR, 0, "Unable to create MySQL thread (THD)");
3099 return NULL;3099 return NULL;
3100 }3100 }
31013101
3102 /*
3103 * If PBXT is the default storage engine, then creating any THD objects will add extra
3104 * references to the PBXT plugin object and will effectively deadlock the plugin so
3105 * that server will have to force plugin shutdown. To avoid deadlocking and forced shutdown
3106 * we must dereference the plugin after creating THD objects.
3107 */
3108 LEX_STRING& plugin_name = (*new_thd->variables.table_plugin)->name;
3109 if ((plugin_name.length == 4) && (strncmp(plugin_name.str, "PBXT", plugin_name.length) == 0)) {
3110 (*new_thd->variables.table_plugin)->ref_count--;
3111 }
3112
3102 new_thd->thread_stack = (char *) &new_thd;3113 new_thd->thread_stack = (char *) &new_thd;
3103 new_thd->store_globals();3114 new_thd->store_globals();
3104 lex_start(new_thd);3115 lex_start(new_thd);
@@ -3134,6 +3145,17 @@
3134 close_thread_tables(thd);3145 close_thread_tables(thd);
3135#endif3146#endif
31363147
3148 /*
3149 * In myxt_create_thread we decremented plugin ref-count to avoid dead-locking.
3150 * Here we need to increment ref-count to avoid assertion failures.
3151 */
3152 if (thd->variables.table_plugin) {
3153 LEX_STRING& plugin_name = (*thd->variables.table_plugin)->name;
3154 if ((plugin_name.length == 4) && (strncmp(plugin_name.str, "PBXT", plugin_name.length) == 0)) {
3155 (*thd->variables.table_plugin)->ref_count++;
3156 }
3157 }
3158
3137 delete thd;3159 delete thd;
31383160
3139 /* Remember that we don't have a THD */3161 /* Remember that we don't have a THD */

Subscribers

People subscribed via source and target branches