[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