[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#436340: Installation freezes during "configure the clock" step



Luigi Rocca wrote:
> - Only negative clock skew make the script hang.
> - The script seems not to hang, but to *wait* an amount of time 
> proportional to
> the clock skew found by rdate before going on to the partitioning step.
> I've actually tried this with -1s, -30s, -90s...

Warning: I took a quick peek at the source but I don't know much about
debian-installer internals, this could be wrong.

If this image is using cdebconf with the newt frontend, it looks like
this is caused by newt.  In cdebconf/src/modules/frontend/newt/newt.c
in newt_make_progress_bar, it calls newtFormSetTimer(..,1).  When 
newt_progress_set is later called, this should cause newtFormRun 
to return after 1ms of inactivity, returning control to the installer.

However, it looks like newt tries to be too clever with the timeout --
it computes when the next timeout should occur based on when the last
timeout occurred.  If the last timeout was at 12:00:00.000, it decides
that the next timeout should be at 12:00:00.001.  So if the clock
jumps around between progress bar updates,  newtFormRun (newt/form.c)
will do one of two things:
  - if time jumps forward, it will see that it's already past
    12:00:00.001 and return immediately -- no problem.
  - if time jumps backwards, it will wait until the time catches up
    with 12:00:00.001 -- the "hang" that Luigi noted.

-jim



Reply to: