[Pacemaker] Pacemaker-1.1.4, when?

Andrew Beekhof andrew at beekhof.net
Fri Nov 12 07:28:16 UTC 2010


Ah, silly me.

After
+    iter->offset = 0;

you need:
+    iter->values = NULL;


On Fri, Nov 12, 2010 at 2:07 AM, nozawat <nozawat at gmail.com> wrote:
> Hi Andrew,
>
>  I show below a result of print.
>
> 1)print *iter
> (gdb) print *iter
> $1 = {offset = 2, hash = 0x12aa7ec0, values = 0x7fff1568e580}
> -----
>
> 2)print *values
> (gdb) print *values
> $2 = {data = 0x7fff1568e5c0, next = 0x2b247ebb85a1, prev = 0x1}
> -----
>
> Regards,
> Tomo
>
> 2010/11/12 Andrew Beekhof <andrew at beekhof.net>
>>
>> On Thu, Nov 11, 2010 at 3:50 PM, nozawat <nozawat at gmail.com> wrote:
>> > Hi Andrew
>> >
>> >  Sorry,pengine output a core.
>>
>> could you go up to frame #1 and run:
>> print *iter
>> print *values
>>
>> >
>> > -----
>> > gdb) where
>> > #0  0x00002b247fa8b53a in g_list_nth_data () from
>> > /lib64/libglib-2.0.so.0
>> > #1  0x00002b247ebc5027 in g_hash_table_iter_next (iter=0x7fff1568e4c0,
>> > key=0x0, value=0x7fff1568e4e0)
>> >     at ../include/crm/common/util.h:
>> > 348
>> > #2  0x00002b247ebc9301 in native_rsc_location (rsc=0x12aa9cc0,
>> > constraint=0x12af5480) at native.c:1215
>> > #3  0x00002b247ebcf56c in group_rsc_location (rsc=0x12aa9cc0,
>> > constraint=0x12af5480) at group.c:421
>> > #4  0x00002b247ebb85a1 in apply_placement_constraints
>> > (data_set=0x7fff1568e6b0) at allocate.c:523
>> > #5  0x00002b247ebb96f6 in stage2 (data_set=0x7fff1568e6b0) at
>> > allocate.c:872
>> > #6  0x00002b247ebb6754 in do_calculations (data_set=0x7fff1568e6b0,
>> > xml_input=0x1295ec90, now=0x0)
>> >     at pengine.c:262
>> > #7  0x00002b247ebb5d3e in process_pe_message (msg=0x12941e60,
>> > xml_data=0x1295a610, sender=0x12940ac0)
>> >     at pengine.c:124
>> > #8  0x0000000000401265 in pe_msg_callback (client=0x12940ac0,
>> > user_data=0x0)
>> > at main.c:60
>> > #9  0x00002b247f634b97 in G_CH_dispatch_int (source=0x1293fd80,
>> > callback=0,
>> > user_data=0x0) at GSource.c:637
>> > #10 0x00002b247fa8ddb4 in g_main_context_dispatch () from
>> > /lib64/libglib-2.0.so.0
>> > #11 0x00002b247fa90c0d in ?? () from /lib64/libglib-2.0.so.0
>> > #12 0x00002b247fa90f1a in g_main_loop_run () from
>> > /lib64/libglib-2.0.so.0
>> > #13 0x000000000040186f in main (argc=1, argv=0x7fff1568eb48) at
>> > main.c:177
>> > (gdb)
>> >
>> > ------
>> >
>> > Regards,
>> > Tomo
>> >
>> >
>> >
>> >
>> > 2010/11/11 Andrew Beekhof <andrew at beekhof.net>
>> >>
>> >> On Thu, Nov 11, 2010 at 12:31 PM, nozawat <nozawat at gmail.com> wrote:
>> >> > Hi Andrew,
>> >> >
>> >> >  I ran it. However, an error has been output.
>> >> >  Probably I have a feeling that glib does not move well.
>> >> >  I attached ha-log.
>> >> >
>> >> >  I feel like cannot read a library well.
>> >> >  It is contents of core as follows.
>> >>
>> >> you'll need the debuginfo package installed
>> >>
>> >> > ----
>> >> > $ gdb /usr/sbin/corosync core.27920
>> >> > GNU gdb Fedora (6.8-37.el5)
>> >> > Copyright (C) 2008 Free Software Foundation, Inc.
>> >> > License GPLv3+: GNU GPL version 3 or later
>> >> > <http://gnu.org/licenses/gpl.html>
>> >> > This is free software: you are free to change and redistribute it.
>> >> > There is NO WARRANTY, to the extent permitted by law.  Type "show
>> >> > copying"
>> >> > and "show warranty" for details.
>> >> > This GDB was configured as "x86_64-redhat-linux-gnu"...
>> >> >
>> >> > warning: core file may not match specified executable file.
>> >> > Core was generated by `/usr/lib64/heartbeat/pengine'.
>> >> > Program terminated with signal 11, Segmentation fault.
>> >> > [New process 27920]
>> >> > #0  0x00002b247fa8b53a in ?? ()
>> >> > (gdb) where
>> >> > #0  0x00002b247fa8b53a in ?? ()
>> >> > #1  0x00002b247ebc5027 in ?? ()
>> >> > #2  0x0000000000000000 in ?? ()
>> >> > ------
>> >> >
>> >> > Regards,
>> >> > Tomo
>> >> >
>> >> > 2010/11/11 Andrew Beekhof <andrew at beekhof.net>
>> >> >>
>> >> >> On Thu, Nov 11, 2010 at 10:26 AM, nozawat <nozawat at gmail.com> wrote:
>> >> >> > Hi Andrew,
>> >> >> >
>> >> >> >  Thanks for a revision.
>> >> >> >  I confirmed completion of compiling it.
>> >> >> >  I revised it a little, I attach a patch.
>> >> >>
>> >> >> Thanks!  Did you try running it?
>> >> >>
>> >> >> >
>> >> >> > Regards,
>> >> >> > Tomo
>> >> >> >
>> >> >> >
>> >> >> > 2010/11/11 Andrew Beekhof <andrew at beekhof.net>
>> >> >> >>
>> >> >> >> This might be a little better:
>> >> >> >>
>> >> >> >> diff -r dd75da218e4f configure.ac
>> >> >> >> --- a/configure.ac      Fri Oct 29 12:12:45 2010 +0200
>> >> >> >> +++ b/configure.ac      Tue Nov 09 13:20:55 2010 +0100
>> >> >> >> @@ -654,7 +654,7 @@ AC_MSG_RESULT(using $GLIBCONFIG)
>> >> >> >>
>> >> >> >>  AC_CHECK_LIB(glib-2.0, g_hash_table_get_values)
>> >> >> >>  if test "x$ac_cv_lib_glib_2_0_g_hash_table_get_values" !=
>> >> >> >> x""yes;
>> >> >> >> then
>> >> >> >> -   AC_MSG_ERROR(Your version of Glib is too old, you need at
>> >> >> >> least
>> >> >> >> 2.14)
>> >> >> >> +   AC_MSG_WARN(Your version of Glib is too old, you should have
>> >> >> >> at
>> >> >> >> least
>> >> >> >> 2.14)
>> >> >> >>  fi
>> >> >> >>
>> >> >> >>  #
>> >> >> >> diff -r dd75da218e4f include/crm/common/util.h
>> >> >> >> --- a/include/crm/common/util.h Fri Oct 29 12:12:45 2010 +0200
>> >> >> >> +++ b/include/crm/common/util.h Tue Nov 09 13:20:55 2010 +0100
>> >> >> >> @@ -298,4 +298,59 @@ extern int node_score_infinity;
>> >> >> >>  extern xmlNode *create_operation_update(xmlNode *parent,
>> >> >> >> lrm_op_t
>> >> >> >> *op, const char *caller_version, int target_rc, const char
>> >> >> >> *origin,
>> >> >> >> int level);
>> >> >> >>  extern void free_lrm_op(lrm_op_t *op);
>> >> >> >>
>> >> >> >> +#if HAVE_LIBGLIB_2_0
>> >> >> >> +
>> >> >> >> +#else
>> >> >> >> +
>> >> >> >> +typedef struct fake_ghi
>> >> >> >> +{
>> >> >> >> +       int         offset;
>> >> >> >> +       GHashTable *hash;
>> >> >> >> +       GList      *values;
>> >> >> >> +
>> >> >> >> +} GHashTableIter;
>> >> >> >> +
>> >> >> >> +static inline void g_hash_append_value(gpointer key, gpointer
>> >> >> >> value,
>> >> >> >> gpointer user_data)
>> >> >> >> +{
>> >> >> >> +    GList **values = (GList **)user_data;
>> >> >> >> +    *values = g_list_append(*values, value);
>> >> >> >> +}
>> >> >> >> +
>> >> >> >> +static inline GList *g_hash_table_get_values(GHashTable
>> >> >> >> *hash_table);
>> >> >> >> +{
>> >> >> >> +    GList *values = NULL;
>> >> >> >> +    g_hash_table_foreach(hash_table, g_hash_append_value,
>> >> >> >> &values);
>> >> >> >> +}
>> >> >> >> +
>> >> >> >> +static inline void g_hash_table_iter_init(GHashTableIter *iter,
>> >> >> >> GHashTable *hash_table)
>> >> >> >> +{
>> >> >> >> +    iter->offset = 0;
>> >> >> >> +    iter->hash = hash_table;
>> >> >> >> +
>> >> >> >> +    /* iter->values = g_hash_table_get_values(hash_table); */
>> >> >> >> +
>> >> >> >> +    /* We could cache the values, but then we need to clean up
>> >> >> >> the
>> >> >> >> list
>> >> >> >> +     * later which doesn't fit the glib2 API
>> >> >> >> +     * So instead we calculate it in _next() every time its
>> >> >> >> needed
>> >> >> >> +     */
>> >> >> >> +}
>> >> >> >> +
>> >> >> >> +
>> >> >> >> +static inline gboolean g_hash_table_iter_next(GHashTableIter
>> >> >> >> *iter,
>> >> >> >> gpointer *key, gpointer *value)
>> >> >> >> +{
>> >> >> >> +    GList *values = iter->values;
>> >> >> >> +    if(iter->values == NULL) {
>> >> >> >> +       values = g_hash_table_get_values(iter->hash_table);
>> >> >> >> +    }
>> >> >> >> +
>> >> >> >> +    iter->offset++;
>> >> >> >> +    *value = g_list_nth_data(values, iter->offset);
>> >> >> >> +
>> >> >> >> +    if(iter->values == NULL) {
>> >> >> >> +       g_list_free(values);
>> >> >> >> +    }
>> >> >> >> +    return (*value) != NULL;
>> >> >> >> +}
>> >> >> >> +
>> >> >> >>  #endif
>> >> >> >> +
>> >> >> >> +#endif
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> _______________________________________________
>> >> >> 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >
>> >
>> > _______________________________________________
>> > 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>> >
>> >
>>
>> _______________________________________________
>> 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>
>
> _______________________________________________
> 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://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>
>




More information about the Pacemaker mailing list