> BTW please cc: [EMAIL PROTECTED] so that this discussion is on record.
Oh, sorry, I thought that was a bad idea after the bug was closed.


The ridiculously high values come from the line

      sources = MallocArray(struct SRC_Instance_Record *, max_n_sources);

in SRC_CreateNewInstance in sources.c.

I put a watchpoint on
  sources[0]->stats.offset_time.tv_sec
with condition '> 0xffffffff'.
It never triggered when at the calltree
  main () at main.c:304
  SCH_MainLoop () at sched.c:470
  read_from_socket () at ntp_io.c:215
  NSR_ProcessReceive () at ntp_sources.c:258
  receive_packet () at ntp_core.c:1063
  SRC_SelectSource () sources.c:693
  REF_SetReference () at reference.c:408
  LCL_AccumulateOffset () at local.c:446
  slew_sources () at sources.c:761
       sources is defined static in this file.
  SST_SlewSamples () at sourcestats.c:698
       parameter inst = sources[1]->stats in caller
  UTI_DiffTimevalsToDouble () at util.c:161
       parameter b = inst->offset_time of caller

the value was, for the first time, used to calculate the result of 
UTI_DiffTimevalsToDouble (line numbers apply to 1.23-2 sources plus the 
instrumentation patches I sent you off-list).

This missing initialization was obviously harmless in the 32-bit version, but 
you should ask upstream for the implications of a huge random starting value.
It might be that with your divider/remainder patch the program won't loop till 
the sun goes out, but nontheless take an eternity until the system time 
converges to UTC.







-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to