[Pacemaker] [Problem] lrmd detects monitor time-out by revision of the system time.

renayama19661014 at ybb.ne.jp renayama19661014 at ybb.ne.jp
Wed Sep 10 05:07:30 UTC 2014


Hi Andrew,

Thank you for comments.

> I'll file a bug against glib on RHEL6 so that it gets fixed there.
> Can you send me your simple reproducer program?




I make revision during practice of timer_func2() at the time
When timer_func2() is carried out, time-out of timer_func() is completed before planned time.

-----
#include <stdio.h>
#include <glib.h>
#include <sys/times.h>
gboolean timer_func(gpointer data){
        printf("TIMER EXPIRE!\n");
        fflush(stdout);
        exit(1);
//      return FALSE;
}
gboolean timer_func2(gpointer data){
        clock_t         ret;
        struct tms buff;

        ret = times(&buff);

        printf("TIMER2 EXPIRE! %d\n", ret);
        fflush(stdout);
        return TRUE;
}
int main(int argc, char** argv){
        GMainLoop *m;
        clock_t         ret;
        struct tms buff;        gint64 t;

//      t = g_get_monotonic_time();
        m = g_main_new(FALSE);
        g_timeout_add(5000, timer_func2, NULL);
        g_timeout_add(60000, timer_func, NULL);
        ret = times(&buff);
        printf("START! %d\n", ret);]
        g_main_run(m);
}
-----



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/9/10, Wed 13:56
> Subject: Re: [Pacemaker] [Problem] lrmd detects monitor time-out by revision of the system time.
> 
> 
> On 10 Sep 2014, at 2:48 pm, renayama19661014 at ybb.ne.jp wrote:
> 
>>  Hi Andrew,
>> 
>>  I confirmed it in various ways.
>> 
>>  The conclusion varies in movement by a version of glib.
>>   * The problem occurs in RHEL6.x.
>>   * The problem does not occur in RHEL7.0.
>> 
>>  And this problem is solved in glib of a new version.
>> 
>>  A change of next glib seems to solve a problem in a new version.
>>   * 
> https://github.com/GNOME/glib/commit/91113a8aeea40cc2d7dda65b09537980bb602a06#diff-fc9b4bb280a13f8e51c51b434e7d26fd
>> 
>>  Many users expect right movement in old glib.
>>   * Till it shifts to RHEL7...
>> 
>>  Do you not make modifications in Pacemaker to support an old version?
>>   * Model it on old G_xxxx() function.
> 
> I'll file a bug against glib on RHEL6 so that it gets fixed there.
> Can you send me your simple reproducer program?
> 
>> 
>>  Best Regards,
>>  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/9/8, Mon 19:55
>>>  Subject: Re: [Pacemaker] [Problem] lrmd detects monitor time-out by 
> revision of the system time.
>>> 
>>> 
>>>  On 8 Sep 2014, at 7:12 pm, renayama19661014 at ybb.ne.jp wrote:
>>> 
>>>>  Hi Andrew,
>>>> 
>>>>>>>>  I confirmed some problems, but seem to be caused by 
> the 
>>>  fact that 
>>>> 
>>>>>  an event 
>>>>>>>  occurs somehow or other in g_main_loop of lrmd in the 
> period 
>>>  when it is 
>>>>>  shorter 
>>>>>>>  than a monitor.
>>>>>>> 
>>>>>>>  So if you create a trivial program with g_main_loop and 
> a 
>>>  timer, and 
>>>>>  then change 
>>>>>>>  the system time, does the timer expire early?
>>>>>> 
>>>>>>  Yes.
>>>>> 
>>>>>  That sounds like a glib bug. Ideally we'd get it fixed 
> there rather 
>>>  than 
>>>>>  work-around it in pacemaker.
>>>>>  Have you spoken to them at all?
>>>>> 
>>>> 
>>>> 
>>>>  No.
>>>>  I investigate glib library a little more.
>>>>  And I talk with community of glib.
>>>> 
>>>>  I may talk again afterwards.
>>> 
>>>  Cool. I somewhat expect them to say "working as designed".
>>>  Which would be unfortunate, but it shouldn't be too hard to work 
> around.
>>> 
> 




More information about the Pacemaker mailing list