[Pacemaker] [PATCH] Couldn't find src in NULL - missing null check
Andrew Beekhof
andrew at beekhof.net
Thu Oct 11 00:41:27 UTC 2012
I've merged both patches now. Thanks :)
On Sun, Oct 7, 2012 at 3:28 AM, Grüninger, Andreas (LGL Extern)
<Andreas.Grueninger at lgl.bwl.de> wrote:
> I found this in the logfile:
>
> ....
> Sep 29 19:14:29 [770] cib: notice: log_cib_diff: cib:diff: Diff: --- 0.11.3
> Sep 29 19:14:29 [770] cib: notice: log_cib_diff: cib:diff: Diff: +++ 0.12.1
> Sep 29 19:14:29 [776] crmd: notice: do_state_transition: State transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC cause=C_FSA_INTERNAL origin=abort_transition_graph ]
> Sep 29 19:14:29 [770] cib: notice: cib:diff: -- <cib admin_epoch="0" epoch="11" num_updates="3" />
> Sep 29 19:14:29 [770] cib: notice: cib:diff: ++ <meta_attributes id="ClusterMon_SNMPTraps-meta_attributes" >
> Sep 29 19:14:29 [6626] crm_mon: error: crm_element_value: Couldn't find src in NULL
> Sep 29 19:14:29 [770] cib: notice: cib:diff: ++ <nvpair id="ClusterMon_SNMPTraps-meta_attributes-target-role" name="target-role" value="Stopped" />
> Sep 29 19:14:29 [770] cib: notice: cib:diff: ++ </meta_attributes>
> Sep 29 19:14:29 [770] cib: info: cib_process_request: Operation complete: op cib_replace for section re
> ...
>
> The error stems from the call of cib_process_diff in lib/cib/cib_ops.c.
> Some calls of cib_process_diff with NULL for argument req:
>
> ./cib/cibmon.c:234: rc = cib_process_diff(op, cib_force_diff, NULL, NULL, diff, cib_last, &cib_copy, NULL);
> ./cib/messages.c:261: rc = cib_process_diff(op, options, section, req, input, existing_cib, result_cib, answer);
> ./lib/cib/cib_utils.c:755: rc = cib_process_diff(NULL, cib_none, NULL, NULL, diff, input, output, NULL);
> ./lib/cib/cib_ops.c:544:cib_process_diff(const char *op, int options, const char *section, xmlNode * req, xmlNode * input,
> ./lib/cib/cib_file.c:233: {CIB_OP_APPLY_DIFF, FALSE, cib_process_diff},
>
> This patch and another one is available in https://github.com/beekhof/pacemaker/pulls.
>
> diff --git a/lib/cib/cib_ops.c b/lib/cib/cib_ops.c
> index 66f0e20..e166f63 100644
> --- a/lib/cib/cib_ops.c
> +++ b/lib/cib/cib_ops.c
> @@ -561,7 +561,10 @@ cib_process_diff(const char *op, int options, const char *section, xmlNode * req
> int diff_del_epoch = 0;
> int diff_del_admin_epoch = 0;
>
> - const char *originator = crm_element_value(req, F_ORIG);
> + char *originator = NULL;
> + if (req != NULL) {
> + originator = crm_element_value(req, F_ORIG);
> + }
> crm_trace("Processing \"%s\" event", op);
>
> cib_diff_version_details(input,
>
> Andreas
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
More information about the Pacemaker
mailing list