[Pacemaker] [Problem]When Pacemaker uses a new version of glib, g_source_remove fails.

Andrew Beekhof andrew at beekhof.net
Fri Oct 10 08:19:21 CEST 2014


/me slaps forhead

this one should work

diff --git a/lib/services/services.c b/lib/services/services.c
index 8590b56..753e257 100644
--- a/lib/services/services.c
+++ b/lib/services/services.c
@@ -313,6 +313,7 @@ services_action_free(svc_action_t * op)
 
     if (op->opaque->repeat_timer) {
         g_source_remove(op->opaque->repeat_timer);
+        op->opaque->repeat_timer = 0;
     }
     if (op->opaque->stderr_gsource) {
         mainloop_del_fd(op->opaque->stderr_gsource);
@@ -425,6 +426,7 @@ services_action_kick(const char *name, const char *action, int interval /* ms */
     } else {
         if (op->opaque->repeat_timer) {
             g_source_remove(op->opaque->repeat_timer);
+            op->opaque->repeat_timer = 0;
         }
         recurring_action_timer(op);
         return TRUE;
@@ -459,6 +461,7 @@ handle_duplicate_recurring(svc_action_t * op, void (*action_callback) (svc_actio
         if (dup->pid != 0) {
             if (op->opaque->repeat_timer) {
                 g_source_remove(op->opaque->repeat_timer);
+                op->opaque->repeat_timer = 0;
             }
             recurring_action_timer(dup);
         }
diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c
index 961ff18..2279e4e 100644
--- a/lib/services/services_linux.c
+++ b/lib/services/services_linux.c
@@ -227,6 +227,7 @@ recurring_action_timer(gpointer data)
     op->stdout_data = NULL;
     free(op->stderr_data);
     op->stderr_data = NULL;
+    op->opaque->repeat_timer = 0;
 
     services_action_async(op, NULL);
     return FALSE;


On 10 Oct 2014, at 4:45 pm, renayama19661014 at ybb.ne.jp wrote:

> Hi Andrew,
> 
> I applied three corrections that you made and checked movement.
> I picked all "abort" processing with g_source_remove() of services.c just to make sure.
>  * I set following "abort" in four places that carried out g_source_remove
> 
>>>>          if (g_source_remove(op->opaque->repeat_timer) == FALSE)  
>> {
>>>>                  abort();
>>>>          }
> 
> 
> As a result, "abort" still occurred.
> 
> 
> The problem does not seem to be yet settled by your correction.
> 
> 
> (gdb) where
> #0  0x00007fdd923e1f79 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> #1  0x00007fdd923e5388 in __GI_abort () at abort.c:89
> #2  0x00007fdd92b9fe77 in crm_abort (file=file at entry=0x7fdd92bd352b "logging.c", 
>     function=function at entry=0x7fdd92bd48c0 <__FUNCTION__.23262> "crm_glib_handler", line=line at entry=73, 
>     assert_condition=assert_condition at entry=0xe20b80 "Source ID 40 was not found when attempting to remove it", do_core=do_core at entry=1, 
>     do_fork=<optimized out>, do_fork at entry=1) at utils.c:1195
> #3  0x00007fdd92bc7ca7 in crm_glib_handler (log_domain=0x7fdd92130b6e "GLib", flags=<optimized out>, 
>     message=0xe20b80 "Source ID 40 was not found when attempting to remove it", user_data=<optimized out>) at logging.c:73
> #4  0x00007fdd920f2ae1 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007fdd920f2d72 in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #6  0x00007fdd920eac5c in g_source_remove () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #7  0x00007fdd92984b55 in cancel_recurring_action (op=op at entry=0xe19b90) at services.c:365
> #8  0x00007fdd92984bee in services_action_cancel (name=name at entry=0xe1d2d0 "dummy2", action=<optimized out>, interval=interval at entry=10000)
>     at services.c:387
> #9  0x000000000040405a in cancel_op (rsc_id=rsc_id at entry=0xe1d2d0 "dummy2", action=action at entry=0xe10d90 "monitor", interval=10000)
>     at lrmd.c:1404
> #10 0x000000000040614f in process_lrmd_rsc_cancel (client=0xe17290, id=74, request=0xe1be10) at lrmd.c:1468
> #11 process_lrmd_message (client=client at entry=0xe17290, id=74, request=request at entry=0xe1be10) at lrmd.c:1507
> #12 0x0000000000402bac in lrmd_ipc_dispatch (c=0xe169c0, data=<optimized out>, size=361) at main.c:148
> #13 0x00007fdd91e4d4d9 in qb_ipcs_dispatch_connection_request () from /usr/lib/libqb.so.0
> #14 0x00007fdd92bc409d in gio_read_socket (gio=<optimized out>, condition=G_IO_IN, data=0xe158a8) at mainloop.c:437
> #15 0x00007fdd920ebce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> ---Type <return> to continue, or q <return> to quit---
> #16 0x00007fdd920ec048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #17 0x00007fdd920ec30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #18 0x0000000000402774 in main (argc=<optimized out>, argv=0x7fff22cac268) at main.c:344
> 
> Best Regards,
> Hideo Yamauchi.
> 
> 
> ----- Original Message -----
>> From: "renayama19661014 at ybb.ne.jp" <renayama19661014 at ybb.ne.jp>
>> To: Andrew Beekhof <andrew at beekhof.net>; The Pacemaker cluster resource manager <pacemaker at oss.clusterlabs.org>
>> Cc: 
>> Date: 2014/10/10, Fri 10:55
>> Subject: Re: [Pacemaker] [Problem]When Pacemaker uses a new version of glib, g_source_remove fails.
>> 
>> Hi Andrew,
>> 
>> Okay!
>> 
>> I test your patch.
>> And I inform you of a result.
>> 
>> Many thanks!
>> Hideo Yamauchi.
>> 
>> 
>> 
>> ----- Original Message -----
>>> From: Andrew Beekhof <andrew at beekhof.net>
>>> To: renayama19661014 at ybb.ne.jp; The Pacemaker cluster resource manager 
>> <pacemaker at oss.clusterlabs.org>
>>> Cc: 
>>> Date: 2014/10/10, Fri 10:47
>>> Subject: Re: [Pacemaker] [Problem]When Pacemaker uses a new version of 
>> glib, g_source_remove fails.
>>> 
>>> Perfect!
>>> 
>>> Can you try this:
>>> 
>>> diff --git a/lib/services/services.c b/lib/services/services.c
>>> index 8590b56..cb0f0ae 100644
>>> --- a/lib/services/services.c
>>> +++ b/lib/services/services.c
>>> @@ -417,6 +417,7 @@ services_action_kick(const char *name, const char 
>> *action, 
>>> int interval /* ms */
>>>      free(id);
>>> 
>>>      if (op == NULL) {
>>> +        op->opaque->repeat_timer = 0;
>>>          return FALSE;
>>>      }
>>> 
>>> @@ -425,6 +426,7 @@ services_action_kick(const char *name, const char 
>> *action, 
>>> int interval /* ms */
>>>      } else {
>>>          if (op->opaque->repeat_timer) {
>>>              g_source_remove(op->opaque->repeat_timer);
>>> +            op->opaque->repeat_timer = 0;
>>>          }
>>>          recurring_action_timer(op);
>>>          return TRUE;
>>> @@ -459,6 +461,7 @@ handle_duplicate_recurring(svc_action_t * op, void 
>>> (*action_callback) (svc_actio
>>>          if (dup->pid != 0) {
>>>              if (op->opaque->repeat_timer) {
>>>                  g_source_remove(op->opaque->repeat_timer);
>>> +                op->opaque->repeat_timer = 0;
>>>              }
>>>              recurring_action_timer(dup);
>>>          }
>>> 
>>> 
>>> On 10 Oct 2014, at 12:16 pm, renayama19661014 at ybb.ne.jp wrote:
>>> 
>>>>   Hi Andrew,
>>>> 
>>>>   Setting of gdb of the Ubuntu environment does not yet go well and I 
>> touch 
>>> lrmd and cannot acquire trace.
>>>>   Please wait for this a little more.
>>>> 
>>>> 
>>>>   But.. I let lrmd terminate abnormally when g_source_remove() of 
>>> cancel_recurring_action() returned FALSE.
>>>>   -----
>>>>   gboolean
>>>>   cancel_recurring_action(svc_action_t * op)
>>>>   {
>>>>      crm_info("Cancelling operation %s", op->id);
>>>> 
>>>>      if (recurring_actions) {
>>>>          g_hash_table_remove(recurring_actions, op->id);
>>>>      }
>>>> 
>>>>      if (op->opaque->repeat_timer) {
>>>>          if (g_source_remove(op->opaque->repeat_timer) == FALSE)  
>> {
>>>>                  abort();
>>>>          }
>>>>   (snip)
>>>>   -------core----
>>>>   #0  0x00007f30aa60ff79 in __GI_raise (sig=sig at entry=6) at 
>>> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>>>> 
>>>>   56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or 
>> directory.
>>>>   (gdb) where
>>>>   #0  0x00007f30aa60ff79 in __GI_raise (sig=sig at entry=6) at 
>>> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>>>>   #1  0x00007f30aa613388 in __GI_abort () at abort.c:89
>>>>   #2  0x00007f30aadcde77 in crm_abort (file=file at entry=0x7f30aae0152b 
>>> "logging.c", 
>>>>      function=function at entry=0x7f30aae028c0 <__FUNCTION__.23262> 
>>> "crm_glib_handler", line=line at entry=73, 
>>>>      assert_condition=assert_condition at entry=0x19d2ad0 "Source ID 
>> 63 
>>> was not found when attempting to remove it", do_core=do_core at entry=1, 
>>>>      do_fork=<optimized out>, do_fork at entry=1) at utils.c:1195
>>>>   #3  0x00007f30aadf5ca7 in crm_glib_handler (log_domain=0x7f30aa35eb6e 
>>> "GLib", flags=<optimized out>, 
>>>>      message=0x19d2ad0 "Source ID 63 was not found when attempting 
>> to 
>>> remove it", user_data=<optimized out>) at logging.c:73
>>>>   #4  0x00007f30aa320ae1 in g_logv () from 
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   #5  0x00007f30aa320d72 in g_log () from 
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   #6  0x00007f30aa318c5c in g_source_remove () from 
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   #7  0x00007f30aabb2b55 in cancel_recurring_action 
>> (op=op at entry=0x19caa90) 
>>> at services.c:363
>>>>   #8  0x00007f30aabb2bee in services_action_cancel 
>> (name=name at entry=0x19d0530 
>>> "dummy3", action=<optimized out>, 
>> interval=interval at entry=10000)
>>>>      at services.c:385
>>>>   #9  0x000000000040405a in cancel_op (rsc_id=rsc_id at entry=0x19d0530 
>>> "dummy3", action=action at entry=0x19cec10 "monitor", 
>>> interval=10000)
>>>>      at lrmd.c:1404
>>>>   #10 0x000000000040614f in process_lrmd_rsc_cancel (client=0x19c8290, 
>> id=74, 
>>> request=0x19ca8a0) at lrmd.c:1468
>>>>   #11 process_lrmd_message (client=client at entry=0x19c8290, id=74, 
>>> request=request at entry=0x19ca8a0) at lrmd.c:1507
>>>>   #12 0x0000000000402bac in lrmd_ipc_dispatch (c=0x19c79c0, 
>>> data=<optimized out>, size=361) at main.c:148
>>>>   #13 0x00007f30aa07b4d9 in qb_ipcs_dispatch_connection_request () from 
>>> /usr/lib/libqb.so.0
>>>>   #14 0x00007f30aadf209d in gio_read_socket (gio=<optimized out>, 
>>> condition=G_IO_IN, data=0x19c68a8) at mainloop.c:437
>>>>   #15 0x00007f30aa319ce5 in g_main_context_dispatch () from 
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   ---Type <return> to continue, or q <return> to quit---
>>>>   #16 0x00007f30aa31a048 in ?? () from 
>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   #17 0x00007f30aa31a30a in g_main_loop_run () from 
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>>>   #18 0x0000000000402774 in main (argc=<optimized out>, 
>>> argv=0x7fffcdd90b88) at main.c:344
>>>>   ---------
>>>> 
>>>>   Best Regards,
>>>>   Hideo Yamauchi.
>>>> 
>>>> 
>>>> 
>>>>   ----- Original Message -----
>>>>>   From: "renayama19661014 at ybb.ne.jp" 
>>> <renayama19661014 at ybb.ne.jp>
>>>>>   To: Andrew Beekhof <andrew at beekhof.net>
>>>>>   Cc: The Pacemaker cluster resource manager 
>>> <pacemaker at oss.clusterlabs.org>
>>>>>   Date: 2014/10/7, Tue 11:15
>>>>>   Subject: Re: [Pacemaker] [Problem]When Pacemaker uses a new 
>> version of 
>>> glib, g_source_remove fails.
>>>>> 
>>>>>   Hi Andrew,
>>>>> 
>>>>>>   Not quite. Returning FALSE from the callback also removes the 
>>> source from 
>>>>>   glib.
>>>>>>   So your test case effectively removes t1 twice: once 
>> implicitly by 
>>>>>   returning 
>>>>>>   FALSE in timer_func1() and then again explicitly in 
>> timer_func3()
>>>>> 
>>>>> 
>>>>>   Your opinion is right.
>>>>> 
>>>>> 
>>>>>   If Pacemaker repeats and does not remove the resources which timer 
>> 
>>> concluded in 
>>>>>   FALSE, glib does not return the error.
>>>>> 
>>>>> 
>>>>>   Many Thanks,
>>>>>   Hideo Yamauchi.
>>>>> 
>>>>> 
>>>>>   ----- Original Message -----
>>>>>>   From: Andrew Beekhof <andrew at beekhof.net>
>>>>>>   To: renayama19661014 at ybb.ne.jp
>>>>>>   Cc: The Pacemaker cluster resource manager 
>>>>>   <pacemaker at oss.clusterlabs.org>
>>>>>>   Date: 2014/10/7, Tue 11:06
>>>>>>   Subject: Re: [Pacemaker] [Problem]When Pacemaker uses a new 
>> version 
>>> of 
>>>>>   glib, g_source_remove fails.
>>>>>> 
>>>>>> 
>>>>>>   On 7 Oct 2014, at 1:03 pm, renayama19661014 at ybb.ne.jp wrote:
>>>>>> 
>>>>>>>    Hi Andrew,
>>>>>>> 
>>>>>>>>>    These problems seem to be due to a correction of 
>> next 
>>> glib 
>>>>>   somehow 
>>>>>>   or 
>>>>>>>>    other.
>>>>>>>>>     * 
>>>>>>>> 
>>>>>> 
>>>>> 
>>> 
>> https://github.com/GNOME/glib/commit/393503ba5bdc7c09cd46b716aaf3d2c63a6c7f9c
>>>>>>>>   
>>>>>>>>    The glib behaviour on unbuntu seems reasonable, 
>> removing 
>>> a source 
>>>>>>   multiple times 
>>>>>>>>    IS a valid error.
>>>>>>>>    I need the stack trace to know where/how this 
>> situation 
>>> can occur 
>>>>>   in 
>>>>>>   pacemaker.
>>>>>>> 
>>>>>>> 
>>>>>>>    Pacemaker does not remove resources several times as far 
>> as I 
>>> 
>>>>>   confirmed it.
>>>>>>>    In Ubuntu(glib2.40), an error occurs just to remove 
>> resources 
>>> first.
>>>>>> 
>>>>>>   Not quite. Returning FALSE from the callback also removes the 
>>> source from 
>>>>>   glib.
>>>>>>   So your test case effectively removes t1 twice: once 
>> implicitly by 
>>>>>   returning 
>>>>>>   FALSE in timer_func1() and then again explicitly in 
>> timer_func3()
>>>>>> 
>>>>>>> 
>>>>>>>    Confirmation and the deletion of resources seem to be 
>>> necessary not to 
>>>>> 
>>>>>>   produce an error in Ubuntu.
>>>>>>>    And this works well in glib of RHEL6.x.(and RHEL7.0)
>>>>>>> 
>>>>>>>           if (g_main_context_find_source_by_id (NULL, t1) 
>> != 
>>> NULL) {
>>>>>>>                   g_source_remove(t1);
>>>>>>>           }
>>>>>>> 
>>>>>>>    I send it to you after acquiring stack trace.
>>>>>>> 
>>>>>>>    Many Thanks!
>>>>>>>    Hideo Yamauchi.
>>>>>>> 
>>>>>>>    ----- Original Message -----
>>>>>>>>    From: Andrew Beekhof <andrew at beekhof.net>
>>>>>>>>    To: renayama19661014 at ybb.ne.jp; The Pacemaker 
>> cluster 
>>> resource 
>>>>>   manager 
>>>>>>   <pacemaker at oss.clusterlabs.org>
>>>>>>>>    Cc: 
>>>>>>>>    Date: 2014/10/7, Tue 09:44
>>>>>>>>    Subject: Re: [Pacemaker] [Problem]When Pacemaker 
>> uses a 
>>> new 
>>>>>   version of 
>>>>>>   glib, g_source_remove fails.
>>>>>>>> 
>>>>>>>> 
>>>>>>>>    On 6 Oct 2014, at 4:09 pm, 
>> renayama19661014 at ybb.ne.jp 
>>> wrote:
>>>>>>>> 
>>>>>>>>>    Hi All,
>>>>>>>>> 
>>>>>>>>>    When I move the next sample in 
>>> RHEL6.5(glib2-2.22.5-7.el6) and 
>>>>> 
>>>>>>>>    Ubuntu14.04(libglib2.0-0:amd64 2.40.0-2), movement 
>> is 
>>> different.
>>>>>>>>> 
>>>>>>>>>     * Sample : test2.c
>>>>>>>>>    {{{
>>>>>>>>>    #include <stdio.h>
>>>>>>>>>    #include <stdlib.h>
>>>>>>>>>    #include <glib.h>
>>>>>>>>>    #include <sys/times.h>
>>>>>>>>>    guint t1, t2, t3;
>>>>>>>>>    gboolean timer_func2(gpointer data){
>>>>>>>>>            printf("TIMER 
>> EXPIRE!2\n");
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            return FALSE;
>>>>>>>>>    }
>>>>>>>>>    gboolean timer_func1(gpointer data){
>>>>>>>>>            clock_t         ret;
>>>>>>>>>            struct tms buff;
>>>>>>>>> 
>>>>>>>>>            ret = times(&buff);
>>>>>>>>>            printf("TIMER EXPIRE!1 
>> %d\n", 
>>>>>   (int)ret);
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            return FALSE;
>>>>>>>>>    }
>>>>>>>>>    gboolean timer_func3(gpointer data){
>>>>>>>>>            printf("TIMER EXPIRE 
>> 3!\n");
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            printf("remove 
>> timer1!\n");
>>>>>>>>> 
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            g_source_remove(t1);
>>>>>>>>>            printf("remove 
>> timer2!\n");
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            g_source_remove(t2);
>>>>>>>>>            printf("remove 
>> timer3!\n");
>>>>>>>>>            fflush(stdout);
>>>>>>>>>            g_source_remove(t3);
>>>>>>>>>            return FALSE;
>>>>>>>>>    }
>>>>>>>>>    int main(int argc, char** argv){
>>>>>>>>>            GMainLoop *m;
>>>>>>>>>            clock_t         ret;
>>>>>>>>>            struct tms buff;
>>>>>>>>>            gint64 t;
>>>>>>>>>            m = g_main_new(FALSE);
>>>>>>>>>            t1 = g_timeout_add(1000, timer_func1, 
>> NULL);
>>>>>>>>>            t2 = g_timeout_add(60000, timer_func2, 
>> NULL);
>>>>>>>>>            t3 = g_timeout_add(5000, timer_func3, 
>> NULL);
>>>>>>>>>            ret = times(&buff);
>>>>>>>>>            printf("START! %d\n", 
>>> (int)ret);
>>>>>>>>>            g_main_run(m);
>>>>>>>>>    }
>>>>>>>>> 
>>>>>>>>>    }}}
>>>>>>>>>     * Result
>>>>>>>>>    ---- RHEL6.5(glib2-2.22.5-7.el6) ---- 
>>>>>>>>>    [root at snmp1 ~]# ./test2
>>>>>>>>>    START! 429576012
>>>>>>>>>    TIMER EXPIRE!1 429576112
>>>>>>>>>    TIMER EXPIRE 3!
>>>>>>>>>    remove timer1!
>>>>>>>>>    remove timer2!
>>>>>>>>>    remove timer3!
>>>>>>>>> 
>>>>>>>>>    ---- Ubuntu14.04(libglib2.0-0:amd64 2.40.0-2) 
>> ----
>>>>>>>>>    root at a1be102:~# ./test2
>>>>>>>>>    START! 1718163089
>>>>>>>>>    TIMER EXPIRE!1 1718163189
>>>>>>>>>    TIMER EXPIRE 3!
>>>>>>>>>    remove timer1!
>>>>>>>>> 
>>>>>>>>>    (process:1410): GLib-CRITICAL **: Source ID 1 
>> was not 
>>> found 
>>>>>   when 
>>>>>>   attempting 
>>>>>>>>    to remove it
>>>>>>>>>    remove timer2!
>>>>>>>>>    remove timer3!
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>    These problems seem to be due to a correction of 
>> next 
>>> glib 
>>>>>   somehow 
>>>>>>   or 
>>>>>>>>    other.
>>>>>>>>>     * 
>>>>>>>> 
>>>>>> 
>>>>> 
>>> 
>> https://github.com/GNOME/glib/commit/393503ba5bdc7c09cd46b716aaf3d2c63a6c7f9c
>>>>>>>> 
>>>>>>>>    The glib behaviour on unbuntu seems reasonable, 
>> removing 
>>> a source 
>>>>>>   multiple times 
>>>>>>>>    IS a valid error.
>>>>>>>>    I need the stack trace to know where/how this 
>> situation 
>>> can occur 
>>>>>   in 
>>>>>>   pacemaker.
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>    In g_source_remove() until before change, the 
>>> deletion of the 
>>>>>   timer 
>>>>>>   which 
>>>>>>>>    practice completed is possible, but 
>> g_source_remove() 
>>> after the 
>>>>>   change 
>>>>>>   causes an 
>>>>>>>>    error.
>>>>>>>>> 
>>>>>>>>>    Under this influence, we get the following crit 
>> error 
>>> in the 
>>>>>>   environment of 
>>>>>>>>    Pacemaker using a new version of glib.
>>>>>>>>> 
>>>>>>>>>    lrmd[1632]:    error: crm_abort: 
>> crm_glib_handler: 
>>> Forked 
>>>>>   child 
>>>>>>   1840 to 
>>>>>>>>>    record non-fatal assert at logging.c:73 : Source 
>> ID 
>>> 51 was not 
>>>>> 
>>>>>>   found when 
>>>>>>>>>    attempting to remove it
>>>>>>>>>    lrmd[1632]:    crit: crm_glib_handler: GLib: 
>> Source 
>>> ID 51 was 
>>>>>   not 
>>>>>>   found 
>>>>>>>>>    when attempting to remove it
>>>>>>>>> 
>>>>>>>>>    It seems that some kind of coping is necessary 
>> in 
>>> Pacemaker 
>>>>>   when I 
>>>>>>   think 
>>>>>>>>    about next.
>>>>>>>>>     * Distribution using a new version of glib 
>> including 
>>> Ubuntu.
>>>>>>>>>     * Version up of future glib of RHEL.
>>>>>>>>> 
>>>>>>>>>    A similar problem is reported in the ML.
>>>>>>>>>     * 
>>>>>>   
>> http://www.gossamer-threads.com/lists/linuxha/pacemaker/91333#91333
>>>>>>>>>     * 
>>>>>   http://www.gossamer-threads.com/lists/linuxha/pacemaker/92408
>>>>>>>>> 
>>>>>>>>>    Best Regards,
>>>>>>>>>    Hideo Yamauchi.
>>>>>>>>> 
>>>>>>>>>    _______________________________________________
>>>>>>>>>    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
>>>>>>>> 
>>>>>> 
>>>>> 
>>>>>   _______________________________________________
>>>>>   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
>>>>> 
>>>> 
>>>>   _______________________________________________
>>>>   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
>>> 
>> 
>> _______________________________________________
>> 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
>> 
> 
> _______________________________________________
> 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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://oss.clusterlabs.org/pipermail/pacemaker/attachments/20141010/592e2fe5/attachment.sig>


More information about the Pacemaker mailing list