CCSMBRK@TECHNION.BITNET (Moshe Barak) (12/29/89)
Hi .. We are running NetNews V2 for few days now . Occasionally the server would crash in routine GetTime . Tracing it I came to the conclusion that when the command CP ACNT ALL CLOSE is issued ( we do it few times a day for our accounting system ) GetTime will fail on proccessing a negative number , resulting from G.VIRTCPU retaining it's original value while VCPU being reset by the ACNT command. As we issue CP ACNT command at least 6 times a day , this caused us a real problem as quite some few commands use the GetTime routine (PURGE, STAT to name a few ). I'm appending the console log below .. Thanks Moshe p.s : I bypassed the problem caused by the server crashing on this by adding a line for each VCPU and TOTCPU in GetTime routine,something like : if vcpu <= g.virtcpu then vcpu = vcpu + g.virtcpu . while this solved us the server crash , which was the urgent thing to do for us , it will not produce correct statistical values .. any ideas ? ---------- Log starts here .... --------------------- 13:48:02 Waiting for interrupt . . . /--->>> counters zeroed here by CP ACNT COMMAND : m.b CONNECT= 00:03:58 VIRTCPU= 000:15.05 TOTCPU= 000:18.01 13:49:28 Processing message from CCSMBRK: STAT 2466 *-* /* Returns elapsed time, virtual cpu, & total cpu */ 2467 *-* time = diag('C') >>> "12/27/8913:49:29??????::???????*" 2468 *-* numeric digits 32 >>> "32" 2469 *-* parse var time 17 vcpu 25 tcpu +8 . >>> "??????::" >>> "???????*" >.> "" 2470 *-* vcpu = c2d(vcpu) / 1000000 >>> "0.087291" 2471 *-* tcpu = c2d(tcpu) / 1000000 >>> "0.143452" 2472 *-* say' return' time('E') vcpu-g.virtcpu tcpu-g.totcpu /---->>> and as a result GetTime receives a negative number: m.b . >>> " return 225.120688 -14.748796 -17.431164" return 225.120688 -14.748796 -17.431164 /------>>>>>> ,since vcpu has been initialized while g.virtcpu not. m.b 2473 *-* say vcpu g.virtcpu tcpu g.totcpu >>> "0.087291 14.836087 0.143452 17.574616" 0.087291 14.836087 0.143452 17.574616 2474 *-* trace n num=225.130203 OUTSTATS -14.748796 Virtual CPU adding articles num=-14.748796 2488 +++ secs = format(num // 60, 2, 2) 1874 +++ info = right(FormatTime(num),11) ' ' text 1857 +++ call OutStats vcpu - g.p_virtcpu 'Virtual CPU adding articl es' 261 +++ msg = CmdSTATS(args) 261 +++ interpret 'msg = Cmd'CmdVerb'(args)' /* Go do the command */ 231 +++ call ProcessCommand userid umsg 116 +++ call ProcessMESSAGE 116 +++ interpret 'call Process'interrupt : DMSREX475E Error 40 running NNSERVER EXEC, line 2488: Incorrect call to routine