From 527a76dc7347343a1cf19d0cfd9a9a1718e0f6f2f010f78b54cec2eefab2f350 Mon Sep 17 00:00:00 2001 From: Tim Serong Date: Tue, 14 Feb 2012 03:25:00 +0000 Subject: [PATCH 1/2] - Core: Move several new fields since v1.1.6 to the end of the data types for ABI compliance - stonith: Default to 20s timeout for start and monitor operations of stonith resources which is same as "default-action-timeout" (bnc#733337) - Tools: ptest - Fix "-X, --xml-text" option to handle a XML string as its argument (bnc#736212) - cib: Fix segfault caused by destroying an already freed hash table (cl#5023) - stonith: Expose IDs of stonith resources to stonith agents through "$CRM_meta_st_device_id" environment variable (bnc#728579) OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=31 --- bug-728579_pacemaker-stonith-dev-id.diff | 38 +++++++++++++++++-- pacemaker-abi-compliance.diff | 48 ++++++++++++++++++++++++ pacemaker-cib-new-segfault.diff | 18 +++++++++ pacemaker-ptest-xml-text.diff | 38 +++++++++++++++++++ pacemaker-stonith-timeout.diff | 24 ++++++++++++ pacemaker.changes | 13 +++++++ pacemaker.spec | 11 +++++- 7 files changed, 186 insertions(+), 4 deletions(-) create mode 100644 pacemaker-abi-compliance.diff create mode 100644 pacemaker-cib-new-segfault.diff create mode 100644 pacemaker-ptest-xml-text.diff create mode 100644 pacemaker-stonith-timeout.diff diff --git a/bug-728579_pacemaker-stonith-dev-id.diff b/bug-728579_pacemaker-stonith-dev-id.diff index 83a3e41..a7a8b7c 100644 --- a/bug-728579_pacemaker-stonith-dev-id.diff +++ b/bug-728579_pacemaker-stonith-dev-id.diff @@ -1,12 +1,44 @@ +commit 543b4337b42f64fa46e2c01b7eb466dc4bd7665b +Author: Gao,Yan +Date: Fri Nov 11 14:03:56 2011 +0800 + + Medium: stonith: Expose IDs of stonith resources to stonith agents through "$CRM_meta_st_device_id" environment variable + diff --git a/fencing/commands.c b/fencing/commands.c -index 8269d30..b2660ca 100644 +index 8269d30..103389f 100644 --- a/fencing/commands.c +++ b/fencing/commands.c -@@ -368,6 +368,7 @@ static stonith_device_t *build_device_from_xml(xmlNode *msg) +@@ -368,6 +368,8 @@ static stonith_device_t *build_device_from_xml(xmlNode *msg) device->agent = crm_element_value_copy(dev, "agent"); device->namespace = crm_element_value_copy(dev, "namespace"); device->params = xml2list(dev); -+ g_hash_table_insert(device->params, crm_strdup("CRM_" F_STONITH_DEVICE), crm_strdup(device->id)); ++ ++ g_hash_table_insert(device->params, crm_strdup(CRM_META "_" F_STONITH_DEVICE), crm_strdup(device->id)); device->work = mainloop_add_trigger(G_PRIORITY_HIGH, stonith_device_dispatch, device); /* TODO: Hook up priority */ +diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c +index 205bda8..a16fab9 100644 +--- a/lib/fencing/st_client.c ++++ b/lib/fencing/st_client.c +@@ -483,6 +483,8 @@ run_stonith_agent(const char *agent, const char *action, const char *victim, + + } else { + /* child */ ++ const char *st_dev_id_key = CRM_META "_" F_STONITH_DEVICE; ++ const char *st_dev_id_value = NULL; + + close(1); + if (dup(c_write_fd) < 0) +@@ -499,6 +501,11 @@ run_stonith_agent(const char *agent, const char *action, const char *victim, + close(p_read_fd); + close(p_write_fd); + ++ st_dev_id_value = g_hash_table_lookup(device_args, st_dev_id_key); ++ if (st_dev_id_value) { ++ setenv(st_dev_id_key, st_dev_id_value, 1); ++ } ++ + execlp(agent, agent, NULL); + exit(EXIT_FAILURE); + } diff --git a/pacemaker-abi-compliance.diff b/pacemaker-abi-compliance.diff new file mode 100644 index 0000000..4bd6bb7 --- /dev/null +++ b/pacemaker-abi-compliance.diff @@ -0,0 +1,48 @@ +commit 7f95c09d53cae9c5a6e2348c2d4ad7fd5e59affe +Author: Gao,Yan +Date: Tue Dec 13 14:15:01 2011 +0800 + + Meidum: Core: Move several new fields since v1.1.6 to the end of the data types for ABI compliance + +diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h +index 1110248..8b00e09 100644 +--- a/include/crm/pengine/status.h ++++ b/include/crm/pengine/status.h +@@ -90,7 +90,6 @@ typedef struct pe_working_set_s { + GHashTable *config_hash; + GHashTable *domains; + GHashTable *tickets; +- GHashTable *template_rsc_sets; + + GListPtr nodes; + GListPtr resources; +@@ -113,6 +112,8 @@ typedef struct pe_working_set_s { + /* final output */ + xmlNode *graph; + ++ GHashTable *template_rsc_sets; ++ + } pe_working_set_t; + + struct node_shared_s { +diff --git a/include/crm/transition.h b/include/crm/transition.h +index 22f095f..02eff03 100644 +--- a/include/crm/transition.h ++++ b/include/crm/transition.h +@@ -96,7 +96,6 @@ typedef struct crm_graph_s { + int num_synapses; + + int batch_limit; +- int migration_limit; + int network_delay; + int stonith_timeout; + int transition_timeout; +@@ -108,6 +107,8 @@ typedef struct crm_graph_s { + int incomplete; + + GListPtr synapses; /* synpase_t* */ ++ ++ int migration_limit; + GHashTable *migrating; + + } crm_graph_t; diff --git a/pacemaker-cib-new-segfault.diff b/pacemaker-cib-new-segfault.diff new file mode 100644 index 0000000..bcda772 --- /dev/null +++ b/pacemaker-cib-new-segfault.diff @@ -0,0 +1,18 @@ +commit 7da9e833b63d83c32852154481572f816754c114 +Author: Gao,Yan +Date: Tue Dec 20 05:45:15 2011 +0800 + + Medium: cib: Bug cl#5023 - Fix segfault caused by destroying an already freed hash table + +diff --git a/lib/cib/cib_client.c b/lib/cib/cib_client.c +index 26c0205..523c9d8 100644 +--- a/lib/cib/cib_client.c ++++ b/lib/cib/cib_client.c +@@ -412,6 +412,7 @@ cib_delete(cib_t * cib) + } + + g_hash_table_destroy(cib_op_callback_table); ++ cib_op_callback_table = NULL; + cib->cmds->free(cib); + cib = NULL; + } diff --git a/pacemaker-ptest-xml-text.diff b/pacemaker-ptest-xml-text.diff new file mode 100644 index 0000000..2bfaf75 --- /dev/null +++ b/pacemaker-ptest-xml-text.diff @@ -0,0 +1,38 @@ +commit 581af7d3061a3ff680e0a15351099df255cf6b03 +Author: Gao,Yan +Date: Mon Dec 19 14:39:03 2011 +0800 + + Medium: Tools: ptest - Fix "-X, --xml-text" option to handle a XML string as its argument + +diff --git a/pengine/ptest.c b/pengine/ptest.c +index 6372a72..545f695 100644 +--- a/pengine/ptest.c ++++ b/pengine/ptest.c +@@ -167,6 +167,7 @@ main(int argc, char **argv) + const char *dot_file = NULL; + const char *graph_file = NULL; + const char *input_file = NULL; ++ const char *input_xml = NULL; + + /* disable glib's fancy allocators that can't be free'd */ + GMemVTable vtable; +@@ -203,7 +204,8 @@ main(int argc, char **argv) + inhibit_exit = TRUE; + break; + case 'X': +- use_stdin = TRUE; ++ /*use_stdin = TRUE;*/ ++ input_xml = optarg; + break; + case 's': + show_scores = TRUE; +@@ -290,6 +292,9 @@ main(int argc, char **argv) + } else if (use_stdin) { + source = "stdin"; + cib_object = filename2xml(NULL); ++ } else if (input_xml) { ++ source = "input string"; ++ cib_object = string2xml(input_xml); + } + + if (cib_object == NULL && source) { diff --git a/pacemaker-stonith-timeout.diff b/pacemaker-stonith-timeout.diff new file mode 100644 index 0000000..eb14e6f --- /dev/null +++ b/pacemaker-stonith-timeout.diff @@ -0,0 +1,24 @@ +commit a8ba707d19757e9aea4496e7bddf4ddc428ca582 +Author: Gao,Yan +Date: Tue Dec 13 14:48:26 2011 +0800 + + Low: stonith: Default to 20s timeout for start and monitor operations of stonith resources which is same as "default-action-timeout" (bnc#733337) + +diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c +index 205bda8..a4977d5 100644 +--- a/lib/fencing/st_client.c ++++ b/lib/fencing/st_client.c +@@ -97,10 +97,10 @@ static const char META_TEMPLATE[] = + " %s\n" + "%s\n" + " \n" +- " \n" ++ " \n" + " \n" +- " \n" +- " \n" ++ " \n" ++ " \n" + " \n" + " \n" + " \n" diff --git a/pacemaker.changes b/pacemaker.changes index 29c2153..f038dd7 100644 --- a/pacemaker.changes +++ b/pacemaker.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Tue Jan 17 05:33:09 UTC 2012 - ygao@suse.com + +- Core: Move several new fields since v1.1.6 to the end of the data + types for ABI compliance +- stonith: Default to 20s timeout for start and monitor operations of + stonith resources which is same as "default-action-timeout" (bnc#733337) +- Tools: ptest - Fix "-X, --xml-text" option to handle a XML string as its + argument (bnc#736212) +- cib: Fix segfault caused by destroying an already freed hash table (cl#5023) +- stonith: Expose IDs of stonith resources to stonith agents through + "$CRM_meta_st_device_id" environment variable (bnc#728579) + ------------------------------------------------------------------- Mon Jan 9 08:26:22 UTC 2012 - tserong@suse.com diff --git a/pacemaker.spec b/pacemaker.spec index a56aac2..ad69e51 100644 --- a/pacemaker.spec +++ b/pacemaker.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %global pcmk_docdir %{_docdir}/%{name} %if 0%{?suse_version} %define _libexecdir %{_libdir} @@ -50,7 +51,11 @@ Patch3: pacemaker-rsc_ticket-schema.diff Patch4: pacemaker-template-schema.diff Patch5: bug-728579_pacemaker-stonith-dev-id.diff Patch6: pacemaker-NodeUtilization-RA.diff -Patch7: fix-glib_h-include.patch +Patch7: pacemaker-abi-compliance.diff +Patch8: pacemaker-stonith-timeout.diff +Patch9: pacemaker-ptest-xml-text.diff +Patch10: pacemaker-cib-new-segfault.diff +Patch20: fix-glib_h-include.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Conflicts: heartbeat < 3.0 # We need libglue2, not libheartbeat2 @@ -186,6 +191,10 @@ Authors: %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch20 -p1 ########################################################### %build From ed572b59136e8656a5346c8be3da9082b0a35fd99e60ff625aa4286512a7f0a0 Mon Sep 17 00:00:00 2001 From: Tim Serong Date: Tue, 14 Feb 2012 03:25:58 +0000 Subject: [PATCH 2/2] Bump release number OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=32 --- pacemaker.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/pacemaker.spec b/pacemaker.spec index ad69e51..fd694ea 100644 --- a/pacemaker.spec +++ b/pacemaker.spec @@ -15,7 +15,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - %global pcmk_docdir %{_docdir}/%{name} %if 0%{?suse_version} %define _libexecdir %{_libdir}