summaryrefslogtreecommitdiff
path: root/open_issues/pfinet_vs_system_time_changes.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues/pfinet_vs_system_time_changes.mdwn')
-rw-r--r--open_issues/pfinet_vs_system_time_changes.mdwn101
1 files changed, 101 insertions, 0 deletions
diff --git a/open_issues/pfinet_vs_system_time_changes.mdwn b/open_issues/pfinet_vs_system_time_changes.mdwn
new file mode 100644
index 00000000..09b00d30
--- /dev/null
+++ b/open_issues/pfinet_vs_system_time_changes.mdwn
@@ -0,0 +1,101 @@
+[[!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" ?