summaryrefslogtreecommitdiff
path: root/open_issues/pfinet_vs_system_time_changes.mdwn
blob: 09b00d30aae1f0d65f344035ad1a01cf8df82174 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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" ?