[Pacemaker] [PATCH] Couldn't find src in NULL - missing null check

Andrew Beekhof andrew at beekhof.net
Thu Oct 11 02:41:27 CEST 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