Re: [chrony-users] Chronyd unexpected abort after server was set to "online" |
[ Thread Index |
Date Index
| More chrony.tuxfamily.org/chrony-users Archives
]
On Mon, Jun 16, 2014 at 02:38:22PM +0200, Arndt Kritzner wrote:
> Miroslav, thanks for your quick answer. With your suggested modifications applied I get this log output:
>
> ~ # chronyd -d -d
> main.c:355:(main)[16-12:44:24] chronyd version 1.29.1 starting
> sys_linux.c:1022:(get_version_specific_details)[16-12:44:25] Linux kernel major=3 minor=4 patch=93
> sys_linux.c:1080:(get_version_specific_details)[16-12:44:25] hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000
> slew_delta_tick=833 max_tick_bias=1000 shift_pll=2
> reference.c:194:(REF_Initialise)[16-12:44:25] Initial frequency -83300.000 ppm
> acquire.c:699:(process_measurements)[16-12:44:25] System's initial offset : 946.636438 seconds fast of true (step)
> ntp_core.c:1575:(NCR_TakeSourceOnline)[16-12:31:14] Source 148.251.9.60 online
> sourcestats.c:345:(find_best_sample_index)[16-12:31:15] n=1 i=0 best=-1 elapsed=-0.000000e+00
> chronyd: sourcestats.c: 346: find_best_sample_index: Assertion `elapsed >= 0.0' failed.
> Aborted
Hm, negative zero should be equal to positive zero. This looks like a
bug in the floating point implementation. I'm not familiar with AVR32,
does it have a HW implementation or is it emulated?
To make sure this is really the case and not some kind of numerical problem,
can you please compile and run the following program?
#include <stdio.h>
int main(int argc, char **argv) {
double x = argc - 1;
printf("%e %d\n", x, x >= 0.0);
x = -x;
printf("%e %d\n", x, x >= 0.0);
return 0;
}
Here, it prints this:
0.000000e+00 0x0p+0 1
-0.000000e+00 -0x0p+0 1
Thanks,
--
Miroslav Lichvar
--
To unsubscribe email chrony-users-request@xxxxxxxxxxxxxxxxxxxx
with "unsubscribe" in the subject.
For help email chrony-users-request@xxxxxxxxxxxxxxxxxxxx
with "help" in the subject.
Trouble? Email listmaster@xxxxxxxxxxxxxxxxxxxx.