• Brad Fitzpatrick's avatar
    [release-branch.go1.8] net, net/http: adjust time-in-past constant even earlier · e35c01b4
    Brad Fitzpatrick authored
    The aLongTimeAgo time value in net and net/http is used to cancel
    in-flight read and writes. It was set to time.Unix(233431200, 0)
    which seemed like far enough in the past.
    
    But Raspberry Pis, lacking a real time clock, had to spoil the fun and
    boot in 1970 at the Unix epoch time, breaking assumptions in net and
    net/http.
    
    So change aLongTimeAgo to time.Unix(1, 0), which seems like the
    earliest safe value. I don't trust subsecond values on all operating
    systems, and I don't trust the Unix zero time. The Raspberry Pis do
    advance their clock at least. And the reported problem was that Hijack
    on a ResponseWriter hung forever, waiting for the connection read
    operation to finish. So now, even if kernel + userspace boots in under
    a second (unlikely), the Hijack will just have to wait for up to a
    second.
    
    Updates #19747
    Fixes #19771 (backport to Go 1.8.x)
    
    Change-Id: Id59430de2e7b5b5117d4903a788863e9d344e53a
    Reviewed-on: https://go-review.googlesource.com/38785
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    (cherry picked from commit e83fc2e44336423dab94bfe74fad4c4e6a4703b3)
    Reviewed-on: https://go-review.googlesource.com/38786Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    e35c01b4
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...