[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_hurd]] # IRC, unknown channel, unknown date <grey_gandalf> I did a sudo date... <grey_gandalf> and the machine hangs This was very likely a misdiagnosis. # IRC, freenode, #hurd, 2011-03-25 <tschwinge> antrik: I suspect it'S some timing stuff in pfinet that perhaps uses absolute time, and somehow wildely gets confused? <antrik> tschwinge: BTW, pfinet doesn't actually die I think -- it just drops open connections... <antrik> perhaps it thinks they timed out <tschwinge> antrik: Isn't the translator restarted instead? <antrik> don't think so <antrik> when pfinet actually dies, I also loose the NFS mounts, which doesn't happen in this case <antrik> hehe "... and the machine hangs" <antrik> he didn't bother to check that the machine is perfectly fine, only the SSH connection got dropped <tschwinge> Ah, I see. So it'S perhaps indeed simply closes TCP connections that have been without data for ``too long''? <antrik> yeah, that's my guess <antrik> my clock is speeding, so ntpdate sets it in the past <antrik> perhaps there is some math that concludes the connection have been inactive for -200 seconds, which (unsigned) is more than any timeout :-) <tschwinge> (The other way round, you might likely get some integer wrap-around, and thus the same result.) <tschwinge> Yes. # IRC, freenode, #hurd, 2011-10-26 <antrik> anyways, when ntpdate adjusts to the past, the connections hang, roughly for the amount of time being adjusted <antrik> they do not die though <antrik> (well, if it's long enough, they probably timeout on the other side...) # IRC, freenode, #hurd, 2011-10-27 <antrik> oh, another interesting thing I observed is that the the subhurd pfinet did *not* drop the connection... only the main Hurd one. I thought the clock is system-wide?... <tschwinge> It is. <antrik> it's really fascinating that only the pfinet on the Hurd instance where I set the date is affected, and not the pfinet in the other instance # IRC, freenode, #hurd, 2012-06-28 <bddebian> great, now setting the date/time fucked my machine <pinotree> yes, we lack a monotonic clock <pinotree> there are select() loops that use gettimeofday to determine how much time to wait <pinotree> thus if the time changes (eg goes back), the calculation goes crazy <antrik> pinotree: didn't you implement a monotonic clock?... <pinotree> started to <antrik> bddebian: did it really fuck the machine? normally it only resets TCP connections... <pinotree> yeah, i remember such gettimeofay-based select-loops at least in pfinet <antrik> I don't think it's a loop. it just drops the connections, believing they have timed out <bddebian> antrik: Well in this case I don't know because I am at work but it fucked me because I now cannot get to it.. :) <antrik> bddebian: that's odd... you should be able to just log in again IIRC # IRC, freenode, #hurd, 2012-07-29 <antrik> pfinet can't cope with larger system time changes because it can't use a monotonic clock [[clock_gettime]]. <braunr> well when librt becomes easily usable everywhere (it it's possible), it will be quite easy to work around this issue <pinotree> yes and no, you just need a monotonic clock and clock_gettime able to use it <braunr> why "no" ?