On Wed, 2017-08-09 at 21:22 +0800, Gris Ge wrote: > diff --git a/multipathd/cli.c b/multipathd/cli.c > index 32d49766..002abe61 100644 > --- a/multipathd/cli.c > +++ b/multipathd/cli.c > @@ -475,7 +475,7 @@ parse_cmd (char * cmd, char ** reply, int * len, void * data, int timeout ) > /* > * execute handler > */ > - if (clock_gettime(CLOCK_MONOTONIC, &tmo) == 0) { > + if (clock_gettime(CLOCK_REALTIME, &tmo) == 0) { > tmo.tv_sec += timeout; > } else { > tmo.tv_sec = 0; Hello Gris, This is a good catch. Thanks for this fix. > diff --git a/multipathd/main.c b/multipathd/main.c > index 4be2c579..67997d08 100644 > --- a/multipathd/main.c > +++ b/multipathd/main.c > @@ -198,7 +198,7 @@ int set_config_state(enum daemon_status state) > if (running_state != DAEMON_IDLE) { > struct timespec ts; > > - clock_gettime(CLOCK_MONOTONIC, &ts); > + clock_gettime(CLOCK_REALTIME, &ts); > ts.tv_sec += 1; > rc = pthread_cond_timedwait(&config_cond, > &config_lock, &ts); But this change looks wrong to me. Have you noticed that pthread_condattr_setclock(&attr, CLOCK_MONOTONIC) is used to make config_cond use the monotonic clock? See also libmultipath/time-util.c. Bart. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel