jmd@sbctri.sbc.com (James M. Doherty) (01/28/91)
Can anyone out there help us determine what is causing this error, currently we are running isis at about 20 sites, recently I ported the isis to the tandem integreity S2 a fault tolerant platform running SYS V3.2 with a berkly fast file system. There are also several sun workstations involved with the network and others. In order to port the code to the tandem we had to compile it without unix domain sockets. All of our other machines support this. Could this be the cause ? The error message we are getting follows : =========================================== ... Time is now Mon Jan 28 08:34:24 1991 Time warp! Adjusting timers by 0.-010 secs Time warp! Adjusting timers by 0.-160 secs Time warp! Adjusting timers by 0.-730 secs Time warp! Adjusting timers by 0.-200 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-750 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-750 secs ... Time is now Mon Jan 28 08:35:26 1991 Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-110 secs ... Time is now Mon Jan 28 08:37:01 1991 Time warp! Adjusting timers by 0.-150 secs Time warp! Adjusting timers by 0.-110 secs =========================================== I am concerned because isis seems to come up and then crash after a period of 5 to 10 minutes. The code in question is in : pr_main.c: ============================================ time_warp(delta) { register qnode *qp; print("Time warp! Adjusting timers by %d.%.3d secs\n", delta/1000, delta%1000); for(qp = time_queue->qu_next; qp != time_queue; qp = qp->qu_next) qp->qu_time += delta; net_timewarp(delta); } ============================================ It is referenced in main_loop with the following : ============================================ /* Detect small time jumps here */ time_warp(delta); } if(rv == 0) bclr(&in_mask); if(btst(&out_mask)) cl_restart_io(out_mask); } ============================================ Gettime() { static PREV_TIME; struct timeval tp; register time, delta; gettimeofday(&tp, (struct timezone*)0); time = (tp.tv_sec-time_0.tv_sec)*1000 + tp.tv_usec/1000; PREV_TIME = ISIS_TIME; ISIS_TIME = time; delta = time-PREV_TIME; if(delta < 0 || delta > 180000) time_warp(delta); return(time); } ============================================ Any thoughts or help would be appreciated !