Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

builders: run Plan 9 builders on GCE #9491

Closed
bradfitz opened this issue Jan 2, 2015 · 87 comments
Closed

builders: run Plan 9 builders on GCE #9491

bradfitz opened this issue Jan 2, 2015 · 87 comments

Comments

@bradfitz
Copy link
Contributor

bradfitz commented Jan 2, 2015

This bug is about running the Plan 9 builders on GCE with the buildlet.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

@0intro, the Plan 9 VM comes up on GCE and I see it say:

Plan 9
i8042: kbdinit failed
E820: 00000000 0009fc00 memory
E820: 0009fc00 000a0000 reserved
E820: 000f0000 00100000 reserved
E820: 00100000 bfffd000 memory
E820: bfffd000 c0000000 reserved
E820: fffbc000 100000000 reserved
E820: 100000000 126600000 memory
cpu0:  2601MHz GenuineIntel Core i7 (cpuid: AX 0x206D7 DX 0x1F8BFBFF)
ELCR: 0C00
#l0: virtio: 1Gbps port 0xC040 irq 11: 42010af050c9
3072M memory: 256M kernel data, 2815M user, 3440M swap
usbinit...usbd.../boot/usbd: /dev/usb: no hubs
no /srv/usb...no usb disk...pickmethod...read #e/nobootprompt...pickmethod done
bind #æ...bind #S...partinit...auth...usbinit...usbd.../boot/usbd: /dev/usb: no hubs
no /srv/usb...no usb disk...mount usbd...boot: can't open /srv/usb: '/srv/usb' file does not exist
time...
fossil(#S/sd01/fossil)...version...can't stat /srv/partfs.sdXX: '/srv/partfs.sdXX' file does not exist

init: starting /bin/rc
downloading git
starting buildlet script
2015/01/03 13:28:00 Listening on :80 ...

So it appears to be running the buildlet binary that I cross-compiled for plan9-386.

But the coordinator can never connect to it over TCP on the buildlet's internal IP address. Does ":80" not mean "all interfaces" like it does everywhere else?

The OpenBSD builder used this exact same config and worked fine, so I think this is a Plan 9 issue.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

Yes, it seems that the Plan 9 networking is up, but only for the external interface, not the internal interface.

Inspecting it from a VM on the same VLAN:

# Internal IP:
bradfitz@go-builder-1 ~ $ ping 10.240.80.201
PING 10.240.80.201 (10.240.80.201) 56(84) bytes of data.
^C
--- 10.240.80.201 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

# External IP:
bradfitz@go-builder-1 ~ $ ping 23.236.55.181
PING 23.236.55.181 (23.236.55.181) 56(84) bytes of data.
64 bytes from 23.236.55.181: icmp_seq=1 ttl=248 time=1.40 ms
64 bytes from 23.236.55.181: icmp_seq=2 ttl=248 time=0.974 ms
64 bytes from 23.236.55.181: icmp_seq=3 ttl=248 time=0.975 ms
64 bytes from 23.236.55.181: icmp_seq=4 ttl=248 time=0.975 ms
64 bytes from 23.236.55.181: icmp_seq=5 ttl=248 time=0.961 ms
^C
--- 23.236.55.181 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 0.961/1.058/1.405/0.173 ms


# immediate disconnect, per the firewall rules: this is good:
bradfitz@go-builder-1 ~ $ curl 23.236.55.181
curl: (7) Failed connect to 23.236.55.181:80; Connection refused

# Hangs forever, instead of connecting to the buildlet:
bradfitz@go-builder-1 ~ $ curl 10.240.80.201
(hangs forever ...)

@0intro
Copy link
Member

0intro commented Jan 3, 2015

Yes, I've not configured the second interface. You should try to add the following lines in the termrc:

bind -a '#'l1 /net
ip/ipconfig ether /net/ether1

I've updated the script in CL 2251.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

Didn't work:

init: starting /bin/rc
bind: #l1: no free devices
ipconfig: /net/ipifc/clone: bind ether /net/ether1: '/net/ether1' cs: file does not exist
downloading git
starting buildlet script
2015/01/03 16:29:49 Listening on :80 ...

@0intro
Copy link
Member

0intro commented Jan 3, 2015

I'm quite surprised. It works fine with two network controllers in QEMU.

#l0: virtio: 1Gbps port 0xC040 irq 11: 525400123456
#l1: virtio: 1Gbps port 0xC060 irq 11: 525400123457
term% ls '#'l0 '#'l1
'#l0/ether0'
'#l1/ether1'

I'll try on GCE and investigate further.

Brad, is there anything notable in the GCE console output,
just after #l0: virtio: 1Gbps port 0xC040 irq 11?

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

Sorry, I don't have the output anymore after I deleted the instance. I'm now working on Windows. :(

If you can test on GCE, that'd be great.

@0intro
Copy link
Member

0intro commented Jan 3, 2015

Don't worry, I'll investigate in my side.

@0intro
Copy link
Member

0intro commented Jan 3, 2015

Just to be sure. In your network configuration, is there two network
controllers or a single network controller with two network addresses?

In your example, are 23.236.55.181 and 10.240.80.201 both configured
on your machine, or is 23.236.55.181 just the external address on the NAT?

I'm not sure to understand the topology of your network.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 3, 2015

The default GCE network, whatever that is.

When I go to console.developers.google.com and then my project, then "Compute", then "Networks", in "All networks" I see only 1 network, named "default", with Address 10.240.0.0/16 and gateway 10.240.0.1. Despite that, Linux and OpenBSD and Windows all let me use the machine's internal (10.*) address, or its public internet address.

@0intro
Copy link
Member

0intro commented Jan 3, 2015

OK, so there is only one network controller and one address
and 23.236.55.181 is the external address on the NAT.

It looks like a routing issue on my side. This is surprising,
since the default route is the one provided by the DHCP,
and your VMs are all in the local 10.240.0.0/16 subnet.

@0intro
Copy link
Member

0intro commented Jan 4, 2015

I can reproduce the issue on my side. The machine is accessible
from the external address on the NAT, but not from the local
10.240.0.0/16 private network address.

The route table looks like:

0.0.0.0         /96  10.240.0.1      4    none   -
10.0.0.0        /104 10.0.0.0        4i   ifc    -
10.0.0.0        /128 10.0.0.0        4b   ifc    -
10.240.165.205  /128 10.240.165.205  4u   ifc    0
10.255.255.255  /128 10.255.255.255  4b   ifc    -
255.255.255.255 /128 255.255.255.255 4b   ifc    -

There is a default route via 10.240.0.1 and a local route
to 10.0.0.0/8, so it should work, but it doesn't.

I'll investigate further tomorrow.

@0intro
Copy link
Member

0intro commented Jan 4, 2015

I had to remove the local route to make it work.

Apparently, they expect us to pass through 10.240.0.1 to
send a packet to a machine located in the same subnet.

0.0.0.0         /96  10.240.0.1      4    none   -
10.0.0.0        /104 10.0.0.0        4i   ifc    -
10.0.0.0        /128 10.0.0.0        4b   ifc    -
10.240.209.72   /128 10.240.209.72   4u   ifc    0
10.255.255.255  /128 10.255.255.255  4b   ifc    -
127.0.0.0       /104 127.0.0.0       4i   ifc    -
127.0.0.0       /128 127.0.0.0       4b   ifc    -
127.0.0.1       /128 127.0.0.1       4u   ifc    -
127.255.255.255 /128 127.255.255.255 4b   ifc    -
255.255.255.255 /128 255.255.255.255 4b   ifc    -
term% echo route 10.240.221.98 >/net/iproute
10.240.221.98: 10.240.0.0      /112 10.240.0.0      4    none   0
term% ip/ping -n 3 10.240.221.98
sending 3 64 byte messages 1000 ms apart to icmp!10.240.221.98!1
term% echo remove 10.0.0.0 /104 10.0.0.0 >/net/iproute
term% echo route 10.240.221.98 >/net/iproute
10.240.221.98: 0.0.0.0         /96  10.240.0.1      4    none   0
term% ip/ping -n 3 10.240.221.98
sending 3 64 byte messages 1000 ms apart to icmp!10.240.221.98!1
0: rtt 778 µs, avg rtt 778 µs, ttl = 64
1: rtt 591 µs, avg rtt 684 µs, ttl = 64
2: rtt 469 µs, avg rtt 612 µs, ttl = 64

They use the same configuration on the Linux instances (no local route):

$ ip r
default via 10.240.0.1 dev eth0  proto static  metric 1024 
10.240.0.1 dev eth0  proto static  scope link  metric 1 

Brad, I've updated the make script in CL 2251, so it should be fine now.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

Now it gets further (I could get the buildlet running and the coordinator doing builds!), but outgoing DNS doesn't appear to work (the http://godoc.org/google.golang.org/cloud/compute/metadata#OnGCE function reports false, but it should return true). Once I hard-coded that to return true on plan9, I then get:

# Testing packages.
ok      cmd/addr2line   14.777s
?       cmd/cgo [no test files]
ok      cmd/fix 3.368s
ok      cmd/go  3.348s
ok      cmd/gofmt   3.402s
ok      cmd/link    3.375s
ok      cmd/nm  34.397s
ok      cmd/objdump 14.820s
ok      cmd/pack    51.093s
?       cmd/pprof   [no test files]
?       cmd/yacc    [no test files]
ok      archive/tar 3.360s
ok      archive/zip 3.921s
ok      bufio   3.697s
ok      bytes   3.425s
ok      cmd/internal/goobj  3.345s
?       cmd/internal/objfile    [no test files]
?       cmd/pprof/internal/commands [no test files]
?       cmd/pprof/internal/driver   [no test files]
?       cmd/pprof/internal/fetch    [no test files]
?       cmd/pprof/internal/plugin   [no test files]
?       cmd/pprof/internal/profile  [no test files]
?       cmd/pprof/internal/report   [no test files]
?       cmd/pprof/internal/svg  [no test files]
?       cmd/pprof/internal/symbolizer   [no test files]
?       cmd/pprof/internal/symbolz  [no test files]
?       cmd/pprof/internal/tempfile [no test files]
ok      compress/bzip2  3.397s
ok      compress/flate  3.849s
ok      compress/gzip   3.340s
ok      compress/lzw    3.446s
ok      compress/zlib   4.305s
ok      container/heap  3.359s
ok      container/list  3.334s
ok      container/ring  3.368s
?       crypto  [no test files]
ok      crypto/aes  3.348s
ok      crypto/cipher   5.016s
ok      crypto/des  3.340s
ok      crypto/dsa  5.008s
ok      crypto/ecdsa    5.037s
ok      crypto/elliptic 5.055s
ok      crypto/hmac 3.349s
ok      crypto/md5  5.015s
ok      crypto/rand 5.023s
ok      crypto/rc4  3.490s
ok      crypto/rsa  5.222s
ok      crypto/sha1 4.984s
ok      crypto/sha256   3.334s
ok      crypto/sha512   3.366s
ok      crypto/subtle   3.344s
--- FAIL: TestTLSUniqueMatches (0.00s)
    tls_test.go:121: announce tcp [::1]:0: not a local IP address
FAIL
FAIL    crypto/tls  7.416s
ok      crypto/x509 15.490s
?       crypto/x509/pkix    [no test files]
ok      database/sql    3.436s
ok      database/sql/driver 3.360s
ok      debug/dwarf 3.325s
ok      debug/elf   3.365s
ok      debug/gosym 3.340s
ok      debug/macho 3.345s
ok      debug/pe    3.439s
ok      debug/plan9obj  3.323s
?       encoding    [no test files]
ok      encoding/ascii85    3.348s
ok      encoding/asn1   3.342s
ok      encoding/base32 3.336s
ok      encoding/base64 3.345s
ok      encoding/binary 3.339s
ok      encoding/csv    3.356s
ok      encoding/gob    3.398s
ok      encoding/hex    3.351s
ok      encoding/json   3.499s
ok      encoding/pem    3.354s
ok      encoding/xml    3.379s
ok      errors  3.348s
ok      expvar  3.368s
ok      flag    3.350s
ok      fmt 3.397s
ok      go/ast  3.372s
ok      go/build    3.903s
ok      go/doc  3.337s
ok      go/format   3.350s
ok      go/parser   3.390s
ok      go/printer  3.680s
ok      go/scanner  3.267s
ok      go/token    3.345s
?       hash    [no test files]
ok      hash/adler32    3.354s
ok      hash/crc32  3.331s
ok      hash/crc64  3.344s
ok      hash/fnv    3.337s
ok      html    3.365s
ok      html/template   3.410s
ok      image   3.454s
ok      image/color 3.356s
?       image/color/palette [no test files]
ok      image/draw  3.421s
ok      image/gif   3.405s
ok      image/jpeg  3.560s
ok      image/png   3.365s
ok      index/suffixarray   3.311s
ok      io  3.477s
ok      io/ioutil   3.224s
ok      log 3.368s
?       log/syslog  [no test files]
ok      math    3.340s
ok      math/big    3.890s
ok      math/cmplx  3.349s
ok      math/rand   3.816s
ok      mime    3.342s
ok      mime/internal/quotedprintable   5.354s
ok      mime/multipart  5.092s
--- FAIL: TestConnAndListener (0.00s)
    conn_test.go:50: Listen failed: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestDialTimeout (0.00s)
    dial_test.go:29: announce tcp [::1]:0: not a local IP address
--- FAIL: TestSelfConnect (0.00s)
    dial_test.go:129: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestDialer (0.00s)
    dial_test.go:438: Listen failed: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestDialerKeepAlive (0.00s)
    dial_test.go:29: announce tcp [::1]:0: not a local IP address
--- FAIL: TestFileListener (0.00s)
    file_test.go:36: Listen failed: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestTCPListenClose (0.00s)
    net_test.go:126: Listen failed: announce tcp 127.0.0.1:0: not a local IP address
panic: test timed out after 2m0s

goroutine 85 [running]:
testing.func·008()
    /tmp/buildlet-scatch334102632/src/testing/testing.go:681 +0xf2
created by time.goFunc
    /tmp/buildlet-scatch334102632/src/time/sleep.go:129 +0x4b

goroutine 1 [chan receive]:
testing.RunTests(0x226724, 0x2bb580, 0x70, 0x70, 0xa300)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:556 +0x8a5
testing.(*M).Run(0x104280c0, 0x2c9920)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:485 +0x5d
main.main()
    net/_test/_testmain.go:316 +0x176

goroutine 84 [syscall]:
syscall.Syscall6(0x3, 0x1043c120, 0x17, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x303d6000, 0x2fc8e, 0x1045a9fc, ...)
    /tmp/buildlet-scatch334102632/src/syscall/asm_plan9_386.s:57 +0x5
syscall.Pwrite(0x3, 0x1043c120, 0x17, 0x20, 0xffffffff, 0xffffffff, 0x8, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/syscall/zsyscall_plan9_386.go:138 +0x79
syscall.Write(0x3, 0x1043c120, 0x17, 0x20, 0x1043c120, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/syscall/syscall_plan9.go:127 +0x5f
os.(*File).write(0x104400c8, 0x1043c120, 0x17, 0x20, 0x1043c100, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/os/file_plan9.go:266 +0x75
os.(*File).Write(0x104400c8, 0x1043c120, 0x17, 0x20, 0x20, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/os/file.go:139 +0x75
os.(*File).WriteString(0x104400c8, 0x1043c100, 0x17, 0xf, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/os/file.go:199 +0x81
net.dialPlan9(0x1c7000, 0x3, 0x303e87f8, 0x0, 0x303e87f8, 0x1043c060, 0x0, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/ipsock_plan9.go:157 +0x2bc
net.dialTCP(0x1c7000, 0x3, 0x0, 0x1043c060, 0x0, 0x0, 0x0, 0x0, 0x2bd20, 0x0, ...)
    /tmp/buildlet-scatch334102632/src/net/tcpsock_plan9.go:107 +0x28c
net.dialSingle(0x1c7000, 0x3, 0x1d83c8, 0xf, 0x0, 0x0, 0x303e87f8, 0x1043c060, 0x0, 0x0, ...)
    /tmp/buildlet-scatch334102632/src/net/dial.go:235 +0x381
net.func·018(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/dial.go:163 +0xcf
net.dialChannel(0x1c7000, 0x3, 0x303e87f8, 0x1043c060, 0x1043c080, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/buildlet-scatch334102632/src/net/dial_gen.go:24 +0x181
net.dial(0x1c7000, 0x3, 0x303e87f8, 0x1043c060, 0x1043c080, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/buildlet-scatch334102632/src/net/fd_plan9.go:38 +0x87
net.(*Dialer).Dial(0x10428210, 0x1c7000, 0x3, 0x1d83c8, 0xf, 0x0, 0x0, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/dial.go:170 +0x536
net.Dial(0x1c7000, 0x3, 0x1d83c8, 0xf, 0x0, 0x0, 0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/dial.go:143 +0x73
net.TestErrorNil(0x10426360)
    /tmp/buildlet-scatch334102632/src/net/net_test.go:228 +0x40
testing.tRunner(0x10426360, 0x2bb8bc)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:447 +0xb6
created by testing.RunTests
    /tmp/buildlet-scatch334102632/src/testing/testing.go:555 +0x86b
FAIL    net 123.357s

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

And more:

--- FAIL: TestClient (0.00s)
panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address [recovered]
    panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address

goroutine 42 [running]:
testing.func·006()
    /tmp/buildlet-scatch334102632/src/testing/testing.go:441 +0x14a
net/http/httptest.newLocalListener(0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:68 +0x310
net/http/httptest.NewUnstartedServer(0x305f5b68, 0x3cdac8, 0x10601ef8)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:96 +0x20
net/http/httptest.NewServer(0x305f5b68, 0x3cdac8, 0x1066c960)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:83 +0x2f
net/http_test.TestClient(0x1066c960)
    /tmp/buildlet-scatch334102632/src/net/http/client_test.go:70 +0x73
testing.tRunner(0x1066c960, 0x4c528c)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:447 +0xb6
created by testing.RunTests
    /tmp/buildlet-scatch334102632/src/testing/testing.go:555 +0x86b

goroutine 1 [chan receive]:
testing.RunTests(0x3cd644, 0x4c5100, 0xd5, 0xd5, 0x10669f01)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:556 +0x8a5
testing.(*M).Run(0x1061c000, 0x1061c01c)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:485 +0x5d
net/http_test.TestMain(0x1061c000)
    /tmp/buildlet-scatch334102632/src/net/http/main_test.go:19 +0x27
main.main()
    net/http/_test/_testmain.go:516 +0x176
FAIL    net/http    1.630s
ok      net/http/cgi    0.248s
ok      net/http/cookiejar  0.058s
ok      net/http/fcgi   0.053s
--- FAIL: TestServer (0.00s)
panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address [recovered]
    panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address

goroutine 7 [running]:
testing.func·006()
    /tmp/buildlet-scatch334102632/src/testing/testing.go:441 +0x14a
net/http/httptest.newLocalListener(0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:68 +0x310
net/http/httptest.NewUnstartedServer(0x304996b0, 0x2b1560, 0x304996b0)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:96 +0x20
net/http/httptest.NewServer(0x304996b0, 0x2b1560, 0x379624)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:83 +0x2f
net/http/httptest.TestServer(0x104cc420)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server_test.go:16 +0x4c
testing.tRunner(0x104cc420, 0x36887c)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:447 +0xb6
created by testing.RunTests
    /tmp/buildlet-scatch334102632/src/testing/testing.go:555 +0x86b

goroutine 1 [chan receive]:
testing.RunTests(0x2b14a0, 0x368870, 0x2, 0x2, 0x4aa301)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:556 +0x8a5
testing.(*M).Run(0x104c01e0, 0x36a680)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:485 +0x5d
main.main()
    net/http/httptest/_test/_testmain.go:60 +0x176
FAIL    net/http/httptest   0.056s
--- FAIL: TestReverseProxy (0.00s)
panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address [recovered]
    panic: httptest: failed to listen on a port: announce tcp [::1]:0: not a local IP address

goroutine 24 [running]:
testing.func·006()
    /tmp/buildlet-scatch334102632/src/testing/testing.go:441 +0x14a
net/http/httptest.newLocalListener(0x0, 0x0)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:68 +0x310
net/http/httptest.NewUnstartedServer(0x304a8b88, 0x104b8488, 0x304a8b88)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:96 +0x20
net/http/httptest.NewServer(0x304a8b88, 0x104b8488, 0x387c94)
    /tmp/buildlet-scatch334102632/src/net/http/httptest/server.go:83 +0x2f
net/http/httputil.TestReverseProxy(0x104d85a0)
    /tmp/buildlet-scatch334102632/src/net/http/httputil/reverseproxy_test.go:52 +0xad
testing.tRunner(0x104d85a0, 0x378938)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:447 +0xb6
created by testing.RunTests
    /tmp/buildlet-scatch334102632/src/testing/testing.go:555 +0x86b

goroutine 1 [chan receive]:
testing.RunTests(0x2bc9f0, 0x378920, 0x6, 0x6, 0x1)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:556 +0x8a5
testing.(*M).Run(0x104ce000, 0x387960)
    /tmp/buildlet-scatch334102632/src/testing/testing.go:485 +0x5d
main.main()
    net/http/httputil/_test/_testmain.go:62 +0x176
FAIL    net/http/httputil   0.057s
ok      net/http/internal   0.044s
?       net/http/pprof  [no test files]
ok      net/mail    0.049s
2015/01/05 01:42:42 net.Listen tcp :0: announce tcp 127.0.0.1:0: not a local IP address
FAIL    net/rpc 0.064s
ok      net/rpc/jsonrpc 0.068s
--- FAIL: TestSendMail (0.00s)
    smtp_test.go:424: Unable to to create listener: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestTLSClient (0.00s)
    smtp_test.go:624: announce tcp [::1]:0: not a local IP address
--- FAIL: TestTLSConnState (0.00s)
    smtp_test.go:624: announce tcp [::1]:0: not a local IP address
FAIL
FAIL    net/smtp    2.316s
ok      net/textproto   3.363s
ok      net/url 3.375s
ok      os  11.200s
--- FAIL: TestExtraFiles (0.00s)
    exec_test.go:394: announce tcp 127.0.0.1:0: not a local IP address
--- FAIL: TestExtraFilesRace (0.00s)
    exec_test.go:460: announce tcp 127.0.0.1:0: not a local IP address
FAIL
FAIL    os/exec 26.710s
ok      os/signal   3.344s
ok      os/user 3.343s
ok      path    3.353s
ok      path/filepath   3.835s
ok      reflect 2.989s
ok      regexp  3.574s
ok      regexp/syntax   3.658s

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

@0intro, are you able to run Go's all.rc on GCE with the image you gave me?

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

... because keep in mind that I'm getting the results above via the buildlet program (in x/tools/dashboard/buildlet), so it's possible that the all.rc subcommand via os/exec is running in a weird environment that's missing something (environment variables?) that Plan 9 needs in order to do e.g. DNS or networking.

@0intro
Copy link
Member

0intro commented Jan 5, 2015

Yes, I figured out what was the issue.

The buildlet was started before the machine was properly configured.
I've to move the startup of buildlet from /cfg/*/cpurc to /cfg/*/cpustart.
That's why I haven't encountered this issue when running all.rc on GCE.

I'll fix the make script once I'll be back home.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

It takes the build a couple minutes to hit its first error. Does the buildlet inherit the bad environment from the moment it starts? i.e. is the network configuration part of the environment, or is it global across the whole machine?

Because if it's global (like Linux, etc), then by the time the buildlet is actually running tests, the network should already be fixed by your start-up scripts.

@0intro
Copy link
Member

0intro commented Jan 5, 2015

The loopback is set up in /rc/bin/cpurc, after calling /cfg/*/cpurc.

ip/ipconfig loopback /dev/null 127.1

So, /cfg/*/cpurc is called, the buildlet runs, then the machine
shuts down and the loopback is still not configured.
That's why you get all these errors:

127.0.0.1:0: not a local IP address

I'm not sure about the DNS issue however. I call the DNS
resolver in /cfg/*/cpurc before running the buildlet.

ndb/dns -r

However, when connected on my Plan 9 instance on GCE,
I was able to resolve metadata.google.internal successfully.

cpu% ip/ping -n 3 metadata.google.internal
sending 3 64 byte messages 1000 ms apart to icmp!metadata.google.internal!1
0: rtt 66 µs, avg rtt 66 µs, ttl = 255
1: rtt 169 µs, avg rtt 117 µs, ttl = 255
2: rtt 168 µs, avg rtt 134 µs, ttl = 255
cpu% ndb/dnsquery
> metadata.google.internal ip
metadata.google.internal ip 169.254.169.254

@0intro
Copy link
Member

0intro commented Jan 5, 2015

Please give a try to this script and let me know.

http://www.9legacy.org/9legacy/doc/gce/make.bash

I'll update the CL later.

@0intro
Copy link
Member

0intro commented Jan 5, 2015

I've updated the make script in CL 2251.

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

The networking issues all seem fixed now, but all.rc still fails with a hang in the runtime tests. Looks like it's blocking forever waiting on a Read system call, or waiting for a process to end:

http://build.golang.org/log/917ac618c9c8698a4ce9cd2897ee62e44577ccbd

Have you successfully run all.rc on GCE on the /tmp filesystem? Is that a different filesystem implementation than other places?

@0intro
Copy link
Member

0intro commented Jan 5, 2015

I've experienced a similar issue when running all.rc in GCE.

In this configuration, /tmp is running Fossil, like the rest of the file system.
The amd64 builder, for example, is running Go in ramfs.

I wonder if something is really blocked or if the test could
just be too slow.

I'll investigate.

By the way, is the OnGCE() function working now?

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

By the way, is the OnGCE() function working now?

Yes, it seems like it is.

@0intro
Copy link
Member

0intro commented Jan 5, 2015

The runtime test passes in my QEMU, but not in my g1-small GCE instance.

Brad, what kind of GCE instance are you running?

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 5, 2015

n1-highcpu-2 now. Previously (when the net tests were failing) I was using n1-highcpu-4.

@0intro
Copy link
Member

0intro commented Jan 8, 2015

Yes, bug369 is failing. It also fails in the old builders. This is issue #9428.

I wouldn't say I got better performance. It's astoundingly slow on GCE.
It's much faster on QEMU running on my laptop however.

@0intro
Copy link
Member

0intro commented Jan 8, 2015

The Plan 9 port on GCE is very new. I'm sure there is still room for improvement.

Now that the Plan 9 trybot is working (even partially), I think it allows
more people to contribute fix and improvements to the Plan 9 port of Go.

@0intro
Copy link
Member

0intro commented Jan 8, 2015

8m was indeed a bit short to run the parallel runtime test.

cpu% GOMAXPROCS=2 go test runtime -short -timeout 480s -cpu 1,2,4
ok      runtime 414.607s
cpu% GOMAXPROCS=2 go test runtime -short -timeout 480s -cpu 1,2,4
ok      runtime 428.175s
cpu% GOMAXPROCS=2 go test runtime -short -timeout 480s -cpu 1,2,4
panic: test timed out after 8m0s
[...]
cpu% GOMAXPROCS=2 go test runtime -short -timeout 680s -cpu 1,2,4
ok      runtime 510.677s

@0intro
Copy link
Member

0intro commented Jan 8, 2015

Just for the record, I ran all.rc in a n1-highcpu-2 instance this night.
all.rc completed in 122 minutes, including:

  • 2 minutes for the build
  • 17 minutes for the library tests
  • 8 minutes for the parallel runtime test
  • 95 minutes for the compiler tests

As a comparison, on the 386 hardware builder (not using ramfs).
all.rc completes in 43 minutes, including:

  • 2 minutes for the build
  • 8 minutes for the library tests
  • 3 minutes for the parallel runtime test
  • 30 minutes for the compiler tests

And, the same disk image as on GCE, but running on QEMU on my laptop (using ramfs):
all.rc completes in 36 minutes, including:

  • 1 minute for the build
  • 6 minutes for the library tests
  • 3 minutes for the parallel runtime test
  • 26 minutes for the compiler tests

Here is the full output on n1-highcpu-2:

# Building C bootstrap tool.
cmd/dist

# Building compilers and Go bootstrap tool for host, plan9/386.
lib9
libbio
liblink
cmd/gc
warning: /tmp/go/src/cmd/gc/y.tab.c:2060[/tmp/go/src/cmd/gc/y.tab.c:5632] result of operation not used
warning: /tmp/go/src/cmd/gc/y.tab.c:2060[/tmp/go/src/cmd/gc/y.tab.c:5632] result of operation not used
warning: /tmp/go/src/cmd/gc/y.tab.c:2063[/tmp/go/src/cmd/gc/y.tab.c:5635] set and not used: yymsg
warning: /tmp/go/src/cmd/gc/y.tab.c:4951[/tmp/go/src/cmd/gc/y.tab.c:8499] useless or misleading comparison: ULONG <= 0xffffffff
warning: /tmp/go/src/cmd/gc/y.tab.c:4965[/tmp/go/src/cmd/gc/y.tab.c:8513] useless or misleading comparison: 0 < ULONG
warning: /tmp/go/src/cmd/gc/y.tab.c:4967[/tmp/go/src/cmd/gc/y.tab.c:8515] result of operation not used
warning: /tmp/go/src/cmd/gc/y.tab.c:2250[/tmp/go/src/cmd/gc/y.tab.c:5810] set and not used: yyptr
cmd/8l
cmd/8a
warning: /tmp/go/src/cmd/8a/y.tab.c:1374[/tmp/go/src/cmd/8a/y.tab.c:4392] result of operation not used
warning: /tmp/go/src/cmd/8a/y.tab.c:1374[/tmp/go/src/cmd/8a/y.tab.c:4392] result of operation not used
warning: /tmp/go/src/cmd/8a/y.tab.c:1377[/tmp/go/src/cmd/8a/y.tab.c:4395] set and not used: yymsg
warning: /tmp/go/src/cmd/8a/y.tab.c:1565[/tmp/go/src/cmd/8a/y.tab.c:4571] set and not used: yyptr
cmd/8g
runtime
errors
sync/atomic
sync
io
unicode
unicode/utf8
unicode/utf16
bytes
math
strings
strconv
bufio
sort
container/heap
encoding/base64
syscall
time
os
reflect
fmt
encoding
encoding/json
flag
path/filepath
path
io/ioutil
log
regexp/syntax
regexp
go/token
go/scanner
go/ast
go/parser
os/exec
os/signal
net/url
text/template/parse
text/template
go/doc
go/build
cmd/go

# Building packages and commands for plan9/386.
runtime
errors
sync/atomic
sync
io
unicode
unicode/utf8
bytes
bufio
math
syscall
time
os
strconv
reflect
fmt
strings
cmd/internal/goobj
encoding/binary
cmd/internal/rsc.io/arm/armasm
cmd/internal/rsc.io/x86/x86asm
debug/dwarf
debug/elf
debug/gosym
debug/macho
debug/pe
debug/plan9obj
sort
regexp/syntax
regexp
text/tabwriter
cmd/internal/objfile
flag
log
cmd/addr2line
hash
crypto
crypto/md5
go/token
path/filepath
go/scanner
go/ast
io/ioutil
go/parser
go/printer
os/exec
cmd/cgo
go/format
path
cmd/fix
container/heap
encoding
encoding/base64
unicode/utf16
encoding/json
encoding/xml
net/url
text/template/parse
text/template
go/doc
go/build
compress/flate
hash/crc32
compress/gzip
container/list
crypto/subtle
crypto/cipher
crypto/aes
crypto/des
math/rand
math/big
crypto/elliptic
encoding/asn1
crypto/ecdsa
crypto/hmac
crypto/rand
crypto/rc4
crypto/rsa
crypto/sha1
crypto/sha256
crypto/dsa
crypto/sha512
crypto/x509/pkix
encoding/hex
encoding/pem
net
crypto/x509
crypto/tls
mime
mime/internal/quotedprintable
net/textproto
mime/multipart
net/http/internal
net/http
os/signal
cmd/go
runtime/pprof
cmd/gofmt
cmd/link
cmd/nm
cmd/objdump
cmd/pack
cmd/pprof/internal/profile
cmd/pprof/internal/plugin
html
html/template
cmd/pprof/internal/report
cmd/pprof/internal/svg
cmd/pprof/internal/tempfile
cmd/pprof/internal/commands
cmd/pprof/internal/driver
cmd/pprof/internal/fetch
cmd/pprof/internal/symbolizer
cmd/pprof/internal/symbolz
cmd/pprof
cmd/yacc
archive/tar
archive/zip
compress/bzip2
compress/lzw
hash/adler32
compress/zlib
container/ring
database/sql/driver
database/sql
encoding/ascii85
encoding/base32
encoding/csv
encoding/gob
expvar
hash/crc64
hash/fnv
image/color
image
image/color/palette
image/draw
image/gif
image/jpeg
image/png
index/suffixarray
log/syslog
math/cmplx
net/http/cgi
net/http/cookiejar
net/http/fcgi
net/http/httptest
net/http/httputil
net/http/pprof
net/mail
net/rpc
net/rpc/jsonrpc
net/smtp
os/user
runtime/debug
runtime/race
testing
testing/iotest
testing/quick
text/scanner

# Testing packages.
ok      cmd/addr2line   1.380s
?       cmd/cgo [no test files]
ok      cmd/fix 0.057s
ok      cmd/go  0.061s
ok      cmd/gofmt   0.106s
ok      cmd/link    0.066s
ok      cmd/nm  20.043s
ok      cmd/objdump 14.896s
ok      cmd/pack    52.116s
?       cmd/pprof   [no test files]
?       cmd/yacc    [no test files]
ok      archive/tar 3.724s
ok      archive/zip 3.966s
ok      bufio   3.708s
ok      bytes   3.421s
ok      cmd/internal/goobj  3.335s
?       cmd/internal/objfile    [no test files]
?       cmd/pprof/internal/commands [no test files]
?       cmd/pprof/internal/driver   [no test files]
?       cmd/pprof/internal/fetch    [no test files]
?       cmd/pprof/internal/plugin   [no test files]
?       cmd/pprof/internal/profile  [no test files]
?       cmd/pprof/internal/report   [no test files]
?       cmd/pprof/internal/svg  [no test files]
?       cmd/pprof/internal/symbolizer   [no test files]
?       cmd/pprof/internal/symbolz  [no test files]
?       cmd/pprof/internal/tempfile [no test files]
ok      compress/bzip2  3.425s
ok      compress/flate  3.862s
ok      compress/gzip   3.346s
ok      compress/lzw    3.430s
ok      compress/zlib   4.369s
ok      container/heap  3.341s
ok      container/list  3.364s
ok      container/ring  3.349s
?       crypto  [no test files]
ok      crypto/aes  3.380s
ok      crypto/cipher   5.009s
ok      crypto/des  3.358s
ok      crypto/dsa  5.012s
ok      crypto/ecdsa    5.029s
ok      crypto/elliptic 5.075s
ok      crypto/hmac 3.358s
ok      crypto/md5  5.023s
ok      crypto/rand 5.063s
ok      crypto/rc4  3.494s
ok      crypto/rsa  5.255s
ok      crypto/sha1 5.006s
ok      crypto/sha256   3.357s
ok      crypto/sha512   3.345s
ok      crypto/subtle   3.355s
ok      crypto/tls  7.469s
ok      crypto/x509 15.378s
?       crypto/x509/pkix    [no test files]
ok      database/sql    3.403s
ok      database/sql/driver 3.336s
ok      debug/dwarf 3.363s
ok      debug/elf   3.380s
ok      debug/gosym 3.352s
ok      debug/macho 3.354s
ok      debug/pe    3.411s
ok      debug/plan9obj  3.363s
?       encoding    [no test files]
ok      encoding/ascii85    3.362s
ok      encoding/asn1   3.360s
ok      encoding/base32 3.358s
ok      encoding/base64 3.366s
ok      encoding/binary 3.351s
ok      encoding/csv    3.353s
ok      encoding/gob    3.442s
ok      encoding/hex    3.362s
ok      encoding/json   3.530s
ok      encoding/pem    3.344s
ok      encoding/xml    3.369s
ok      errors  3.350s
ok      expvar  3.352s
ok      flag    3.351s
ok      fmt 3.402s
ok      go/ast  3.383s
ok      go/build    3.775s
ok      go/doc  3.413s
ok      go/format   3.354s
ok      go/parser   3.391s
ok      go/printer  3.703s
ok      go/scanner  3.361s
ok      go/token    3.384s
?       hash    [no test files]
ok      hash/adler32    3.370s
ok      hash/crc32  3.354s
ok      hash/crc64  3.339s
ok      hash/fnv    3.358s
ok      html    3.355s
ok      html/template   3.439s
ok      image   3.460s
ok      image/color 3.350s
?       image/color/palette [no test files]
ok      image/draw  3.440s
ok      image/gif   3.438s
ok      image/jpeg  3.615s
ok      image/png   3.400s
ok      index/suffixarray   3.372s
ok      io  3.492s
ok      io/ioutil   3.216s
ok      log 3.362s
?       log/syslog  [no test files]
ok      math    3.347s
ok      math/big    3.877s
ok      math/cmplx  3.357s
ok      math/rand   3.811s
ok      mime    3.373s
ok      mime/internal/quotedprintable   5.694s
ok      mime/multipart  5.086s
ok      net 5.412s
ok      net/http    22.081s
ok      net/http/cgi    9.425s
ok      net/http/cookiejar  3.360s
ok      net/http/fcgi   3.363s
ok      net/http/httptest   3.487s
ok      net/http/httputil   3.998s
ok      net/http/internal   2.570s
?       net/http/pprof  [no test files]
ok      net/mail    3.351s
ok      net/rpc 4.393s
ok      net/rpc/jsonrpc 2.347s
ok      net/smtp    5.155s
ok      net/textproto   3.275s
ok      net/url 3.382s
ok      os  11.218s
ok      os/exec 98.552s
ok      os/signal   3.364s
ok      os/user 3.347s
ok      path    3.342s
ok      path/filepath   3.680s
ok      reflect 3.481s
ok      regexp  3.594s
ok      regexp/syntax   3.859s
ok      runtime 177.450s
ok      runtime/debug   3.348s
ok      runtime/pprof   37.573s
?       runtime/race    [no test files]
ok      sort    3.190s
ok      strconv 3.693s
ok      strings 3.424s
ok      sync    3.509s
ok      sync/atomic 3.476s
ok      syscall 3.362s
ok      testing 4.599s
?       testing/iotest  [no test files]
ok      testing/quick   3.376s
ok      text/scanner    3.364s
ok      text/tabwriter  3.352s
ok      text/template   3.482s
ok      text/template/parse 3.268s
ok      time    6.992s
ok      unicode 0.056s
ok      unicode/utf16   3.337s
ok      unicode/utf8    3.360s
?       unsafe  [no test files]
5.15u 6.36s 1023.93r     go test std -short -timeout ...

# GOMAXPROCS=2 runtime -cpu=1,2,4
ok      runtime 501.863s

# sync -cpu=10
ok      sync    3.501s


# ../test/bench/go1
ok      _/tmp/go/test/bench/go1 7.187s

# ../test
ok      235.go  6.904s
ok      64bit.go    16.414s
ok      alias.go    3.401s
ok      alias1.go   6.927s
ok      append.go   7.343s
ok      args.go 6.989s
ok      assign.go   3.388s
ok      assign1.go  3.413s
ok      bigalg.go   7.126s
ok      bigmap.go   6.917s
ok      blank.go    7.180s
ok      blank1.go   3.391s
ok      bom.go  14.069s
ok      bombad.go   3.374s
ok      bounds.go   3.406s
ok      chancap.go  6.900s
ok      chanlinear.go   0.000s
ok      char_lit.go 7.022s
ok      char_lit1.go    3.407s
ok      clearfat.go 15.091s
ok      closedchan.go   7.045s
ok      closure.go  6.911s
ok      cmp.go  7.091s
ok      cmp6.go 3.393s
ok      cmplx.go    3.400s
ok      cmplxdivide.go  7.545s
ok      cmplxdivide1.go 0.002s
ok      complit.go  6.940s
ok      complit1.go 3.396s
ok      compos.go   6.915s
ok      const.go    7.012s
ok      const1.go   3.390s
ok      const2.go   3.397s
ok      const3.go   7.141s
ok      const4.go   6.914s
ok      const5.go   3.411s
ok      const6.go   3.390s
ok      convT2X.go  6.931s
ok      convert.go  7.021s
ok      convert1.go 3.393s
ok      convert3.go 3.408s
ok      convlit.go  3.415s
ok      convlit1.go 3.397s
ok      copy.go 7.350s
ok      crlf.go 14.278s
ok      ddd.go  6.916s
ok      ddd1.go 3.396s
ok      ddd2.go 13.618s
ok      decl.go 6.912s
ok      declbad.go  3.376s
ok      defer.go    7.149s
ok      deferfin.go 6.966s
ok      deferprint.go   6.905s
ok      divide.go   7.143s
ok      divmod.go   9.126s
ok      empty.go    3.373s
ok      env.go  7.054s
ok      eof.go  3.408s
ok      eof1.go 3.398s
ok      escape.go   6.946s
ok      escape2.go  3.507s
ok      escape2n.go 3.468s
ok      escape3.go  6.896s
ok      escape4.go  3.389s
ok      escape5.go  3.404s
ok      fibo.go 0.000s
ok      float_lit.go    6.922s
ok      float_lit2.go   7.179s
ok      float_lit3.go   3.390s
ok      floatcmp.go 6.940s
ok      for.go  6.931s
ok      func.go 6.904s
ok      func1.go    3.393s
ok      func2.go    3.413s
ok      func3.go    3.387s
ok      func4.go    3.403s
ok      func5.go    6.917s
ok      func6.go    6.913s
ok      func7.go    6.919s
ok      func8.go    6.919s
ok      funcdup.go  3.389s
ok      funcdup2.go 3.389s
ok      gc.go   6.920s
ok      gc1.go  6.901s
ok      gc2.go  7.335s
ok      gcstring.go 7.104s
ok      goprint.go  7.038s
ok      goto.go 3.299s
ok      helloworld.go   6.919s
ok      if.go   6.915s
ok      import.go   3.392s
ok      import1.go  3.400s
ok      import2.go  6.796s
ok      import4.go  6.783s
ok      import5.go  3.390s
ok      index.go    0.000s
ok      index0.go   16.502s
ok      index1.go   10.962s
ok      index2.go   11.628s
ok      indirect.go 6.911s
ok      indirect1.go    3.386s
ok      init.go 3.400s
ok      init1.go    7.080s
ok      initcomma.go    6.916s
ok      initialize.go   7.141s
ok      initializerr.go 3.389s
ok      int_lit.go  6.995s
ok      intcvt.go   6.926s
ok      iota.go 6.901s
ok      label.go    3.398s
ok      label1.go   3.388s
ok      linkx.go    0.000s
ok      linkx_run.go    17.597s
ok      literal.go  7.025s
ok      live.go 3.448s
ok      live1.go    3.404s
ok      live2.go    3.399s
ok      mallocfin.go    7.005s
ok      map.go  7.195s
ok      map1.go 3.390s
ok      maplinear.go    0.000s
ok      method.go   6.952s
ok      method1.go  3.385s
ok      method2.go  3.382s
ok      method3.go  6.936s
ok      method4.go  13.635s
ok      method5.go  6.971s
ok      named.go    6.932s
ok      named1.go   3.393s
ok      nil.go  7.190s
ok      nilcheck.go 3.351s
ok      nilptr.go   6.960s
ok      nilptr2.go  6.962s
ok      nilptr3.go  3.411s
ok      nilptr4.go  3.564s
ok      nosplit.go  208.622s
ok      nul1.go 10.588s
ok      parentype.go    3.397s
ok      peano.go    7.407s
ok      print.go    6.926s
ok      printbig.go 6.916s
ok      range.go    6.934s
ok      recover.go  7.175s
ok      recover1.go 6.909s
ok      recover2.go 6.975s
ok      recover3.go 7.010s
ok      rename.go   7.141s
ok      rename1.go  3.407s
ok      reorder.go  7.181s
ok      reorder2.go 6.959s
ok      return.go   3.424s
ok      rotate.go   0.000s
ok      rotate0.go  18.149s
ok      rotate1.go  17.977s
ok      rotate2.go  18.252s
ok      rotate3.go  18.006s
ok      run.go  0.000s
ok      rune.go 3.403s
ok      runtime.go  3.412s
ok      shift1.go   3.420s
ok      shift2.go   3.392s
ok      sieve.go    3.547s
ok      sigchld.go  0.000s
ok      simassign.go    6.902s
ok      sinit.go    0.000s
ok      sinit_run.go    10.959s
ok      sizeof.go   6.926s
ok      slice3.go   15.798s
ok      slice3err.go    3.384s
ok      slicecap.go 6.947s
ok      solitaire.go    3.601s
ok      stack.go    6.994s
ok      string_lit.go   7.010s
ok      stringrange.go  7.163s
ok      struct0.go  6.925s
ok      switch.go   7.009s
ok      switch3.go  3.387s
ok      switch4.go  3.394s
ok      tinyfin.go  7.001s
ok      torture.go  3.438s
ok      turing.go   6.943s
ok      typecheck.go    3.389s
ok      typeswitch.go   7.025s
ok      typeswitch1.go  7.165s
ok      typeswitch2.go  3.403s
ok      typeswitch3.go  3.407s
ok      undef.go    3.388s
ok      utf.go  6.902s
ok      varerr.go   3.407s
ok      varinit.go  6.902s
ok      zerodivide.go   7.194s
ok      ken/array.go    6.937s
ok      ken/chan.go 7.067s
ok      ken/chan1.go    6.909s
ok      ken/complit.go  7.007s
ok      ken/convert.go  6.938s
ok      ken/cplx0.go    6.917s
ok      ken/cplx1.go    6.916s
ok      ken/cplx2.go    6.930s
ok      ken/cplx3.go    6.997s
ok      ken/cplx4.go    7.141s
ok      ken/cplx5.go    6.913s
ok      ken/divconst.go 7.268s
ok      ken/divmod.go   6.979s
ok      ken/embed.go    6.971s
ok      ken/for.go  6.941s
ok      ken/interbasic.go   6.928s
ok      ken/interfun.go 6.929s
ok      ken/intervar.go 6.891s
ok      ken/label.go    6.915s
ok      ken/litfun.go   6.903s
ok      ken/mfunc.go    6.929s
ok      ken/modconst.go 7.331s
ok      ken/ptrfun.go   6.920s
ok      ken/ptrvar.go   6.924s
ok      ken/range.go    6.935s
ok      ken/rob1.go 6.912s
ok      ken/rob2.go 7.153s
ok      ken/robfor.go   6.886s
ok      ken/robfunc.go  6.890s
ok      ken/shift.go    6.916s
ok      ken/simparray.go    6.955s
ok      ken/simpbool.go 6.955s
ok      ken/simpconv.go 6.914s
ok      ken/simpfun.go  6.942s
ok      ken/simpswitch.go   6.904s
ok      ken/simpvar.go  6.915s
ok      ken/slicearray.go   6.942s
ok      ken/sliceslice.go   6.934s
ok      ken/string.go   6.924s
ok      ken/strvar.go   6.928s
ok      chan/doubleselect.go    7.355s
ok      chan/fifo.go    7.013s
ok      chan/goroutines.go  7.237s
ok      chan/nonblock.go    7.180s
ok      chan/perm.go    3.251s
ok      chan/powser1.go 7.049s
ok      chan/powser2.go 7.089s
ok      chan/select.go  6.961s
ok      chan/select2.go 7.085s
ok      chan/select3.go 7.945s
ok      chan/select4.go 5.962s
ok      chan/select5.go 15.716s
ok      chan/select6.go 6.931s
ok      chan/select7.go 6.928s
ok      chan/sendstmt.go    6.942s
ok      chan/sieve1.go  6.956s
ok      chan/sieve2.go  6.968s
ok      chan/zerosize.go    6.954s
ok      interface/bigdata.go    6.929s
ok      interface/convert.go    6.916s
ok      interface/convert1.go   6.902s
ok      interface/convert2.go   6.946s
ok      interface/embed.go  7.024s
ok      interface/embed1.go 13.611s
ok      interface/embed2.go 3.406s
ok      interface/explicit.go   3.412s
ok      interface/fail.go   6.903s
ok      interface/fake.go   7.073s
ok      interface/noeq.go   6.915s
ok      interface/pointer.go    3.388s
ok      interface/private.go    6.790s
ok      interface/receiver.go   6.954s
ok      interface/receiver1.go  3.395s
ok      interface/recursive.go  3.394s
ok      interface/recursive1.go 6.825s
ok      interface/returntype.go 6.929s
ok      interface/struct.go 7.036s
ok      syntax/chan.go  3.416s
ok      syntax/chan1.go 3.398s
ok      syntax/composite.go 3.409s
ok      syntax/else.go  3.410s
ok      syntax/forvar.go    3.423s
ok      syntax/if.go    3.387s
ok      syntax/import.go    3.391s
ok      syntax/interface.go 3.399s
ok      syntax/semi1.go 3.399s
ok      syntax/semi2.go 3.414s
ok      syntax/semi3.go 3.395s
ok      syntax/semi4.go 3.400s
ok      syntax/semi5.go 3.400s
ok      syntax/semi6.go 3.413s
ok      syntax/semi7.go 3.401s
ok      syntax/topexpr.go   3.405s
ok      syntax/typesw.go    3.400s
ok      syntax/vareq.go 3.379s
ok      syntax/vareq1.go    3.400s
ok      dwarf/dwarf.go  10.261s
ok      dwarf/linedirectives.go 6.922s
ok      fixedbugs/bug000.go 6.930s
ok      fixedbugs/bug002.go 6.912s
ok      fixedbugs/bug003.go 6.917s
ok      fixedbugs/bug004.go 6.929s
ok      fixedbugs/bug005.go 6.914s
ok      fixedbugs/bug006.go 7.022s
ok      fixedbugs/bug007.go 6.900s
ok      fixedbugs/bug008.go 6.916s
ok      fixedbugs/bug009.go 6.926s
ok      fixedbugs/bug010.go 6.919s
ok      fixedbugs/bug011.go 6.927s
ok      fixedbugs/bug012.go 6.953s
ok      fixedbugs/bug013.go 6.903s
ok      fixedbugs/bug014.go 3.392s
ok      fixedbugs/bug015.go 3.408s
ok      fixedbugs/bug016.go 3.404s
ok      fixedbugs/bug017.go 6.918s
ok      fixedbugs/bug020.go 3.391s
ok      fixedbugs/bug021.go 6.905s
ok      fixedbugs/bug022.go 3.382s
ok      fixedbugs/bug023.go 6.927s
ok      fixedbugs/bug024.go 6.916s
ok      fixedbugs/bug026.go 6.939s
ok      fixedbugs/bug027.go 7.169s
ok      fixedbugs/bug028.go 6.935s
ok      fixedbugs/bug030.go 3.391s
ok      fixedbugs/bug031.go 6.906s
ok      fixedbugs/bug035.go 3.374s
ok      fixedbugs/bug037.go 3.400s
ok      fixedbugs/bug039.go 3.390s
ok      fixedbugs/bug040.go 3.389s
ok      fixedbugs/bug045.go 6.908s
ok      fixedbugs/bug046.go 3.392s
ok      fixedbugs/bug047.go 6.945s
ok      fixedbugs/bug048.go 6.939s
ok      fixedbugs/bug049.go 3.375s
ok      fixedbugs/bug050.go 3.399s
ok      fixedbugs/bug051.go 3.392s
ok      fixedbugs/bug052.go 6.941s
ok      fixedbugs/bug053.go 7.005s
ok      fixedbugs/bug054.go 6.945s
ok      fixedbugs/bug055.go 6.926s
ok      fixedbugs/bug056.go 6.917s
ok      fixedbugs/bug057.go 3.398s
ok      fixedbugs/bug058.go 6.923s
ok      fixedbugs/bug059.go 7.023s
ok      fixedbugs/bug060.go 7.020s
ok      fixedbugs/bug061.go 6.913s
ok      fixedbugs/bug062.go 3.399s
ok      fixedbugs/bug063.go 3.416s
ok      fixedbugs/bug064.go 3.405s
ok      fixedbugs/bug065.go 6.924s
ok      fixedbugs/bug066.go 3.394s
ok      fixedbugs/bug067.go 6.893s
ok      fixedbugs/bug068.go 3.401s
ok      fixedbugs/bug069.go 3.394s
ok      fixedbugs/bug070.go 7.173s
ok      fixedbugs/bug071.go 3.406s
ok      fixedbugs/bug072.go 3.366s
ok      fixedbugs/bug073.go 3.390s
ok      fixedbugs/bug074.go 3.380s
ok      fixedbugs/bug075.go 6.934s
ok      fixedbugs/bug076.go 3.562s
ok      fixedbugs/bug077.go 3.399s
ok      fixedbugs/bug078.go 6.923s
ok      fixedbugs/bug080.go 3.394s
ok      fixedbugs/bug081.go 3.406s
ok      fixedbugs/bug082.go 6.931s
ok      fixedbugs/bug083.go 6.788s
ok      fixedbugs/bug084.go 6.921s
ok      fixedbugs/bug085.go 3.388s
ok      fixedbugs/bug086.go 3.380s
ok      fixedbugs/bug087.go 3.402s
ok      fixedbugs/bug088.go 6.782s
ok      fixedbugs/bug089.go 3.412s
ok      fixedbugs/bug090.go 3.386s
ok      fixedbugs/bug091.go 3.390s
ok      fixedbugs/bug092.go 6.910s
ok      fixedbugs/bug093.go 6.919s
ok      fixedbugs/bug094.go 3.381s
ok      fixedbugs/bug096.go 3.381s
ok      fixedbugs/bug097.go 6.894s
ok      fixedbugs/bug098.go 3.401s
ok      fixedbugs/bug099.go 6.949s
ok      fixedbugs/bug101.go 6.931s
ok      fixedbugs/bug102.go 6.905s
ok      fixedbugs/bug103.go 3.396s
ok      fixedbugs/bug104.go 3.402s
ok      fixedbugs/bug106.go 6.800s
ok      fixedbugs/bug107.go 3.412s
ok      fixedbugs/bug108.go 3.397s
ok      fixedbugs/bug109.go 3.383s
ok      fixedbugs/bug110.go 3.558s
ok      fixedbugs/bug111.go 6.936s
ok      fixedbugs/bug112.go 3.387s
ok      fixedbugs/bug113.go 6.908s
ok      fixedbugs/bug114.go 6.928s
ok      fixedbugs/bug115.go 3.414s
ok      fixedbugs/bug116.go 6.925s
ok      fixedbugs/bug117.go 3.394s
ok      fixedbugs/bug118.go 3.390s
ok      fixedbugs/bug119.go 6.901s
ok      fixedbugs/bug120.go 7.063s
ok      fixedbugs/bug121.go 3.402s
ok      fixedbugs/bug122.go 3.400s
ok      fixedbugs/bug123.go 3.381s
ok      fixedbugs/bug126.go 3.399s
ok      fixedbugs/bug127.go 3.400s
ok      fixedbugs/bug128.go 6.909s
ok      fixedbugs/bug129.go 3.405s
ok      fixedbugs/bug130.go 7.010s
ok      fixedbugs/bug131.go 3.387s
ok      fixedbugs/bug132.go 3.400s
ok      fixedbugs/bug133.go 10.191s
ok      fixedbugs/bug135.go 3.392s
ok      fixedbugs/bug136.go 3.409s
ok      fixedbugs/bug137.go 3.402s
ok      fixedbugs/bug139.go 3.411s
ok      fixedbugs/bug140.go 3.399s
ok      fixedbugs/bug141.go 7.001s
ok      fixedbugs/bug142.go 6.900s
ok      fixedbugs/bug143.go 3.394s
ok      fixedbugs/bug144.go 3.398s
ok      fixedbugs/bug145.go 3.391s
ok      fixedbugs/bug146.go 3.394s
ok      fixedbugs/bug147.go 6.972s
ok      fixedbugs/bug148.go 6.896s
ok      fixedbugs/bug149.go 3.399s
ok      fixedbugs/bug150.go 3.400s
ok      fixedbugs/bug151.go 3.400s
ok      fixedbugs/bug1515.go    6.923s
ok      fixedbugs/bug152.go 6.890s
ok      fixedbugs/bug154.go 7.143s
ok      fixedbugs/bug155.go 3.553s
ok      fixedbugs/bug156.go 3.401s
ok      fixedbugs/bug157.go 3.401s
ok      fixedbugs/bug158.go 3.398s
ok      fixedbugs/bug159.go 7.021s
ok      fixedbugs/bug160.go 13.877s
ok      fixedbugs/bug161.go 3.394s
ok      fixedbugs/bug163.go 3.398s
ok      fixedbugs/bug164.go 3.394s
ok      fixedbugs/bug165.go 3.387s
ok      fixedbugs/bug167.go 3.561s
ok      fixedbugs/bug168.go 6.934s
ok      fixedbugs/bug169.go 3.376s
ok      fixedbugs/bug170.go 3.381s
ok      fixedbugs/bug171.go 3.380s
ok      fixedbugs/bug172.go 3.397s
ok      fixedbugs/bug173.go 3.398s
ok      fixedbugs/bug174.go 3.409s
ok      fixedbugs/bug175.go 3.397s
ok      fixedbugs/bug176.go 3.411s
ok      fixedbugs/bug177.go 7.073s
ok      fixedbugs/bug178.go 6.916s
ok      fixedbugs/bug179.go 3.385s
ok      fixedbugs/bug180.go 6.937s
ok      fixedbugs/bug181.go 3.393s
ok      fixedbugs/bug182.go 3.390s
ok      fixedbugs/bug183.go 3.401s
ok      fixedbugs/bug184.go 7.153s
ok      fixedbugs/bug185.go 6.913s
ok      fixedbugs/bug186.go 3.406s
ok      fixedbugs/bug187.go 7.036s
ok      fixedbugs/bug188.go 3.386s
ok      fixedbugs/bug189.go 3.399s
ok      fixedbugs/bug190.go 3.395s
ok      fixedbugs/bug191.go 16.995s
ok      fixedbugs/bug192.go 3.392s
ok      fixedbugs/bug193.go 3.409s
ok      fixedbugs/bug194.go 6.921s
ok      fixedbugs/bug195.go 3.409s
ok      fixedbugs/bug196.go 6.903s
ok      fixedbugs/bug197.go 3.398s
ok      fixedbugs/bug198.go 3.400s
ok      fixedbugs/bug199.go 6.915s
ok      fixedbugs/bug200.go 3.376s
ok      fixedbugs/bug201.go 6.894s
ok      fixedbugs/bug202.go 6.903s
ok      fixedbugs/bug203.go 6.890s
ok      fixedbugs/bug204.go 6.929s
ok      fixedbugs/bug205.go 3.403s
ok      fixedbugs/bug206.go 7.288s
ok      fixedbugs/bug207.go 7.124s
ok      fixedbugs/bug208.go 3.388s
ok      fixedbugs/bug209.go 3.412s
ok      fixedbugs/bug211.go 3.387s
ok      fixedbugs/bug212.go 3.390s
ok      fixedbugs/bug213.go 3.391s
ok      fixedbugs/bug214.go 3.402s
ok      fixedbugs/bug215.go 3.387s
ok      fixedbugs/bug216.go 3.393s
ok      fixedbugs/bug217.go 3.396s
ok      fixedbugs/bug218.go 3.404s
ok      fixedbugs/bug219.go 3.400s
ok      fixedbugs/bug221.go 6.922s
ok      fixedbugs/bug222.go 6.775s
ok      fixedbugs/bug223.go 3.403s
ok      fixedbugs/bug224.go 3.407s
ok      fixedbugs/bug225.go 6.906s
ok      fixedbugs/bug227.go 6.905s
ok      fixedbugs/bug228.go 3.389s
ok      fixedbugs/bug229.go 3.403s
ok      fixedbugs/bug230.go 6.919s
ok      fixedbugs/bug231.go 3.389s
ok      fixedbugs/bug232.go 3.403s
ok      fixedbugs/bug233.go 3.391s
ok      fixedbugs/bug234.go 6.939s
ok      fixedbugs/bug235.go 3.410s
ok      fixedbugs/bug236.go 6.924s
ok      fixedbugs/bug237.go 7.194s
ok      fixedbugs/bug238.go 3.399s
ok      fixedbugs/bug239.go 3.394s
ok      fixedbugs/bug240.go 3.378s
ok      fixedbugs/bug241.go 3.401s
ok      fixedbugs/bug242.go 6.930s
ok      fixedbugs/bug243.go 6.917s
ok      fixedbugs/bug244.go 6.906s
ok      fixedbugs/bug245.go 3.400s
ok      fixedbugs/bug246.go 6.911s
ok      fixedbugs/bug247.go 6.906s
ok      fixedbugs/bug248.go 0.000s
ok      fixedbugs/bug249.go 3.385s
ok      fixedbugs/bug250.go 3.415s
ok      fixedbugs/bug251.go 3.390s
ok      fixedbugs/bug252.go 3.398s
ok      fixedbugs/bug253.go 6.946s
ok      fixedbugs/bug254.go 6.918s
ok      fixedbugs/bug255.go 3.395s
ok      fixedbugs/bug256.go 3.398s
ok      fixedbugs/bug257.go 7.434s
ok      fixedbugs/bug258.go 6.958s
ok      fixedbugs/bug259.go 7.144s
ok      fixedbugs/bug260.go 7.155s
ok      fixedbugs/bug261.go 6.898s
ok      fixedbugs/bug262.go 6.984s
ok      fixedbugs/bug263.go 6.917s
ok      fixedbugs/bug264.go 6.889s
ok      fixedbugs/bug265.go 6.996s
ok      fixedbugs/bug266.go 6.978s
ok      fixedbugs/bug267.go 3.414s
ok      fixedbugs/bug269.go 6.919s
ok      fixedbugs/bug271.go 7.133s
ok      fixedbugs/bug272.go 6.909s
ok      fixedbugs/bug273.go 6.903s
ok      fixedbugs/bug274.go 3.401s
ok      fixedbugs/bug275.go 3.405s
ok      fixedbugs/bug276.go 6.907s
ok      fixedbugs/bug277.go 3.398s
ok      fixedbugs/bug278.go 3.390s
ok      fixedbugs/bug279.go 6.926s
ok      fixedbugs/bug280.go 3.393s
ok      fixedbugs/bug281.go 6.930s
ok      fixedbugs/bug282.go 6.781s
ok      fixedbugs/bug283.go 3.382s
ok      fixedbugs/bug284.go 3.379s
ok      fixedbugs/bug285.go 6.946s
ok      fixedbugs/bug286.go 6.901s
ok      fixedbugs/bug287.go 3.390s
ok      fixedbugs/bug288.go 3.414s
ok      fixedbugs/bug289.go 3.387s
ok      fixedbugs/bug290.go 6.907s
ok      fixedbugs/bug291.go 6.890s
ok      fixedbugs/bug292.go 6.904s
ok      fixedbugs/bug293.go 6.957s
ok      fixedbugs/bug294.go 6.935s
ok      fixedbugs/bug295.go 7.287s
ok      fixedbugs/bug296.go 6.975s
ok      fixedbugs/bug297.go 3.410s
ok      fixedbugs/bug298.go 3.388s
ok      fixedbugs/bug299.go 3.410s
ok      fixedbugs/bug300.go 3.390s
ok      fixedbugs/bug301.go 3.394s
ok      fixedbugs/bug302.go 21.071s
ok      fixedbugs/bug303.go 6.959s
ok      fixedbugs/bug304.go 3.391s
ok      fixedbugs/bug305.go 3.393s
ok      fixedbugs/bug306.go 6.784s
ok      fixedbugs/bug307.go 3.379s
ok      fixedbugs/bug308.go 3.383s
ok      fixedbugs/bug309.go 3.397s
ok      fixedbugs/bug311.go 6.912s
ok      fixedbugs/bug312.go 6.941s
ok      fixedbugs/bug313.go 3.386s
ok      fixedbugs/bug314.go 6.946s
ok      fixedbugs/bug315.go 3.394s
ok      fixedbugs/bug316.go 3.409s
ok      fixedbugs/bug317.go 6.915s
ok      fixedbugs/bug318.go 3.401s
ok      fixedbugs/bug319.go 3.418s
ok      fixedbugs/bug320.go 6.906s
ok      fixedbugs/bug321.go 7.153s
ok      fixedbugs/bug322.go 13.613s
ok      fixedbugs/bug323.go 3.399s
ok      fixedbugs/bug324.go 13.605s
ok      fixedbugs/bug325.go 3.474s
ok      fixedbugs/bug326.go 3.389s
ok      fixedbugs/bug327.go 6.946s
ok      fixedbugs/bug328.go 6.930s
ok      fixedbugs/bug329.go 6.930s
ok      fixedbugs/bug330.go 3.393s
ok      fixedbugs/bug331.go 6.940s
ok      fixedbugs/bug332.go 3.399s
ok      fixedbugs/bug333.go 6.926s
ok      fixedbugs/bug334.go 3.408s
ok      fixedbugs/bug335.go 6.779s
ok      fixedbugs/bug336.go 6.891s
ok      fixedbugs/bug337.go 3.378s
ok      fixedbugs/bug338.go 3.380s
ok      fixedbugs/bug339.go 6.890s
ok      fixedbugs/bug340.go 3.376s
ok      fixedbugs/bug341.go 6.910s
ok      fixedbugs/bug342.go 3.419s
ok      fixedbugs/bug343.go 6.939s
ok      fixedbugs/bug344.go 3.398s
ok      fixedbugs/bug345.go 0.000s
ok      fixedbugs/bug346.go 7.018s
ok      fixedbugs/bug347.go 6.980s
ok      fixedbugs/bug348.go 6.981s
ok      fixedbugs/bug349.go 3.393s
ok      fixedbugs/bug350.go 3.391s
ok      fixedbugs/bug351.go 3.400s
ok      fixedbugs/bug352.go 6.907s
ok      fixedbugs/bug353.go 3.398s
ok      fixedbugs/bug354.go 3.409s
ok      fixedbugs/bug355.go 6.922s
ok      fixedbugs/bug356.go 6.944s
ok      fixedbugs/bug357.go 3.401s
ok      fixedbugs/bug358.go 3.395s
ok      fixedbugs/bug361.go 3.399s
ok      fixedbugs/bug362.go 3.386s
ok      fixedbugs/bug363.go 3.401s
ok      fixedbugs/bug364.go 7.164s
ok      fixedbugs/bug365.go 3.406s
ok      fixedbugs/bug366.go 6.936s
ok      fixedbugs/bug367.go 13.606s
ok      fixedbugs/bug368.go 6.921s
# go run run.go -- fixedbugs/bug369.go
exit status: 'go 15604: 1'
open pkg.go: 'pkg.go' file does not exist

exit status: 'go 15618: 1'
exit status: 'bug369 15610: 1'

FAIL    fixedbugs/bug369.go 14.334s
ok      fixedbugs/bug370.go 6.924s
ok      fixedbugs/bug371.go 3.401s
ok      fixedbugs/bug372.go 6.940s
ok      fixedbugs/bug373.go 3.394s
ok      fixedbugs/bug374.go 3.397s
ok      fixedbugs/bug375.go 6.932s
ok      fixedbugs/bug376.go 3.408s
ok      fixedbugs/bug377.go 6.803s
ok      fixedbugs/bug378.go 6.924s
ok      fixedbugs/bug379.go 3.395s
ok      fixedbugs/bug380.go 3.396s
ok      fixedbugs/bug381.go 3.417s
ok      fixedbugs/bug382.go 6.803s
ok      fixedbugs/bug383.go 3.386s
ok      fixedbugs/bug384.go 3.410s
ok      fixedbugs/bug385_32.go  3.420s
ok      fixedbugs/bug385_64.go  0.000s
ok      fixedbugs/bug386.go 3.396s
ok      fixedbugs/bug387.go 3.394s
ok      fixedbugs/bug388.go 3.401s
ok      fixedbugs/bug389.go 3.389s
ok      fixedbugs/bug390.go 3.420s
ok      fixedbugs/bug391.go 3.405s
ok      fixedbugs/bug392.go 10.190s
ok      fixedbugs/bug393.go 3.411s
ok      fixedbugs/bug394.go 3.386s
ok      fixedbugs/bug396.go 6.805s
ok      fixedbugs/bug397.go 3.386s
ok      fixedbugs/bug398.go 3.427s
ok      fixedbugs/bug399.go 3.398s
ok      fixedbugs/bug401.go 6.954s
ok      fixedbugs/bug402.go 7.143s
ok      fixedbugs/bug403.go 3.398s
ok      fixedbugs/bug404.go 6.775s
ok      fixedbugs/bug405.go 6.907s
ok      fixedbugs/bug406.go 6.942s
ok      fixedbugs/bug407.go 6.807s
ok      fixedbugs/bug409.go 6.925s
ok      fixedbugs/bug410.go 3.388s
ok      fixedbugs/bug411.go 3.409s
ok      fixedbugs/bug412.go 3.388s
ok      fixedbugs/bug413.go 3.393s
ok      fixedbugs/bug414.go 13.767s
ok      fixedbugs/bug415.go 6.792s
ok      fixedbugs/bug416.go 3.394s
ok      fixedbugs/bug417.go 3.406s
ok      fixedbugs/bug418.go 3.386s
ok      fixedbugs/bug419.go 3.405s
ok      fixedbugs/bug420.go 3.421s
ok      fixedbugs/bug421.go 3.396s
ok      fixedbugs/bug422.go 3.401s
ok      fixedbugs/bug423.go 6.940s
ok      fixedbugs/bug424.go 13.806s
ok      fixedbugs/bug425.go 3.416s
ok      fixedbugs/bug426.go 3.388s
ok      fixedbugs/bug427.go 3.405s
ok      fixedbugs/bug428.go 6.919s
ok      fixedbugs/bug429.go 0.000s
ok      fixedbugs/bug429_run.go 14.114s
ok      fixedbugs/bug430.go 3.407s
ok      fixedbugs/bug431.go 3.409s
ok      fixedbugs/bug432.go 3.398s
ok      fixedbugs/bug433.go 6.911s
ok      fixedbugs/bug434.go 6.942s
ok      fixedbugs/bug435.go 3.395s
ok      fixedbugs/bug436.go 6.917s
ok      fixedbugs/bug437.go 17.022s
ok      fixedbugs/bug438.go 3.385s
ok      fixedbugs/bug439.go 3.382s
ok      fixedbugs/bug440_32.go  6.914s
ok      fixedbugs/bug440_64.go  6.916s
ok      fixedbugs/bug441.go 6.916s
ok      fixedbugs/bug442.go 6.906s
ok      fixedbugs/bug443.go 3.394s
ok      fixedbugs/bug444.go 7.030s
ok      fixedbugs/bug445.go 3.392s
ok      fixedbugs/bug446.go 6.930s
ok      fixedbugs/bug447.go 14.394s
ok      fixedbugs/bug448.go 6.816s
ok      fixedbugs/bug449.go 15.014s
ok      fixedbugs/bug450.go 6.907s
ok      fixedbugs/bug451.go 3.394s
ok      fixedbugs/bug452.go 6.907s
ok      fixedbugs/bug453.go 6.899s
ok      fixedbugs/bug454.go 6.894s
ok      fixedbugs/bug455.go 6.925s
ok      fixedbugs/bug456.go 6.915s
ok      fixedbugs/bug457.go 6.928s
ok      fixedbugs/bug458.go 3.431s
ok      fixedbugs/bug459.go 3.414s
ok      fixedbugs/bug460.go 6.798s
ok      fixedbugs/bug461.go 7.030s
ok      fixedbugs/bug462.go 3.391s
ok      fixedbugs/bug463.go 3.397s
ok      fixedbugs/bug464.go 3.399s
ok      fixedbugs/bug465.go 13.635s
ok      fixedbugs/bug466.go 13.596s
ok      fixedbugs/bug467.go 10.204s
ok      fixedbugs/bug468.go 13.704s
ok      fixedbugs/bug470.go 7.135s
ok      fixedbugs/bug471.go 3.399s
ok      fixedbugs/bug472.go 17.022s
ok      fixedbugs/bug473.go 6.935s
ok      fixedbugs/bug474.go 6.942s
ok      fixedbugs/bug475.go 3.378s
ok      fixedbugs/bug476.go 3.380s
ok      fixedbugs/bug477.go 3.400s
ok      fixedbugs/bug478.go 6.780s
ok      fixedbugs/bug479.go 13.616s
ok      fixedbugs/bug480.go 6.802s
ok      fixedbugs/bug481.go 3.399s
ok      fixedbugs/bug482.go 3.393s
ok      fixedbugs/bug483.go 7.193s
ok      fixedbugs/bug484.go 6.910s
ok      fixedbugs/bug485.go 6.915s
ok      fixedbugs/bug486.go 3.408s
ok      fixedbugs/bug487.go 3.406s
ok      fixedbugs/bug488.go 3.402s
ok      fixedbugs/bug489.go 3.412s
ok      fixedbugs/bug490.go 3.389s
ok      fixedbugs/bug491.go 6.917s
ok      fixedbugs/bug492.go 13.613s
ok      fixedbugs/bug493.go 3.391s
ok      fixedbugs/bug494.go 6.938s
ok      fixedbugs/gcc61204.go   3.400s
ok      fixedbugs/gcc61244.go   3.400s
ok      fixedbugs/gcc61246.go   3.388s
ok      fixedbugs/gcc61248.go   3.391s
ok      fixedbugs/gcc61253.go   3.390s
ok      fixedbugs/gcc61254.go   3.400s
ok      fixedbugs/gcc61255.go   3.400s
ok      fixedbugs/gcc61258.go   6.908s
ok      fixedbugs/gcc61264.go   3.401s
ok      fixedbugs/gcc61265.go   3.389s
ok      fixedbugs/gcc61273.go   3.400s
ok      fixedbugs/issue1304.go  6.905s
ok      fixedbugs/issue2615.go  7.018s
ok      fixedbugs/issue3552.go  6.807s
ok      fixedbugs/issue3705.go  3.395s
ok      fixedbugs/issue3783.go  3.400s
ok      fixedbugs/issue3925.go  3.390s
ok      fixedbugs/issue4066.go  6.916s
ok      fixedbugs/issue4085a.go 3.375s
ok      fixedbugs/issue4085b.go 6.989s
ok      fixedbugs/issue4097.go  3.392s
ok      fixedbugs/issue4099.go  3.396s
ok      fixedbugs/issue4162.go  3.409s
ok      fixedbugs/issue4167.go  6.911s
ok      fixedbugs/issue4232.go  3.384s
ok      fixedbugs/issue4251.go  3.402s
ok      fixedbugs/issue4252.go  13.672s
ok      fixedbugs/issue4264.go  3.389s
ok      fixedbugs/issue4283.go  3.390s
ok      fixedbugs/issue4313.go  6.915s
ok      fixedbugs/issue4316.go  6.909s
ok      fixedbugs/issue4323.go  3.391s
ok      fixedbugs/issue4326.go  16.951s
ok      fixedbugs/issue4348.go  3.398s
ok      fixedbugs/issue4353.go  6.920s
ok      fixedbugs/issue4359.go  3.386s
ok      fixedbugs/issue4370.go  10.204s
ok      fixedbugs/issue4388.go  7.165s
ok      fixedbugs/issue4396a.go 6.936s
ok      fixedbugs/issue4396b.go 6.892s
ok      fixedbugs/issue4399.go  3.389s
ok      fixedbugs/issue4405.go  3.400s
ok      fixedbugs/issue4429.go  3.387s
ok      fixedbugs/issue4448.go  6.907s
ok      fixedbugs/issue4452.go  3.384s
ok      fixedbugs/issue4458.go  3.391s
ok      fixedbugs/issue4463.go  3.392s
ok      fixedbugs/issue4468.go  3.408s
ok      fixedbugs/issue4470.go  3.411s
ok      fixedbugs/issue4495.go  6.913s
ok      fixedbugs/issue4510.go  3.391s
ok      fixedbugs/issue4517a.go 3.378s
ok      fixedbugs/issue4517b.go 3.400s
ok      fixedbugs/issue4517c.go 3.391s
ok      fixedbugs/issue4517d.go 3.392s
ok      fixedbugs/issue4518.go  6.946s
ok      fixedbugs/issue4529.go  3.402s
ok      fixedbugs/issue4545.go  3.387s
ok      fixedbugs/issue4562.go  7.195s
ok      fixedbugs/issue4585.go  6.963s
ok      fixedbugs/issue4590.go  17.053s
ok      fixedbugs/issue4610.go  3.382s
ok      fixedbugs/issue4614.go  3.386s
ok      fixedbugs/issue4618.go  7.277s
ok      fixedbugs/issue4620.go  7.173s
ok      fixedbugs/issue4654.go  3.396s
ok      fixedbugs/issue4663.go  3.405s
ok      fixedbugs/issue4667.go  7.275s
ok      fixedbugs/issue4734.go  3.392s
ok      fixedbugs/issue4748.go  6.936s
ok      fixedbugs/issue4752.go  6.919s
ok      fixedbugs/issue4776.go  3.395s
ok      fixedbugs/issue4785.go  6.930s
ok      fixedbugs/issue4813.go  3.394s
ok      fixedbugs/issue4847.go  3.394s
ok      fixedbugs/issue4879.go  6.814s
ok      fixedbugs/issue4909a.go 3.486s
ok      fixedbugs/issue4909b.go 10.669s
ok      fixedbugs/issue4932.go  10.208s
ok      fixedbugs/issue4964.go  13.600s
ok      fixedbugs/issue5002.go  3.566s
ok      fixedbugs/issue5056.go  6.909s
ok      fixedbugs/issue5089.go  3.392s
ok      fixedbugs/issue5105.go  13.626s
ok      fixedbugs/issue5125.go  6.798s
ok      fixedbugs/issue5162.go  17.664s
ok      fixedbugs/issue5172.go  3.403s
ok      fixedbugs/issue5231.go  3.400s
ok      fixedbugs/issue5244.go  6.913s
ok      fixedbugs/issue5259.go  6.806s
ok      fixedbugs/issue5260.go  13.615s
ok      fixedbugs/issue5291.go  13.643s
ok      fixedbugs/issue5358.go  3.383s
ok      fixedbugs/issue5470.go  6.829s
ok      fixedbugs/issue5493.go  6.982s
ok      fixedbugs/issue5515.go  6.916s
ok      fixedbugs/issue5581.go  3.409s
ok      fixedbugs/issue5607.go  6.901s
ok      fixedbugs/issue5609.go  3.401s
ok      fixedbugs/issue5614.go  10.195s
ok      fixedbugs/issue5698.go  3.386s
ok      fixedbugs/issue5704.go  6.956s
ok      fixedbugs/issue5753.go  6.908s
ok      fixedbugs/issue5755.go  6.808s
ok      fixedbugs/issue5793.go  6.945s
ok      fixedbugs/issue5809.go  7.169s
ok      fixedbugs/issue5820.go  6.911s
ok      fixedbugs/issue5841.go  3.576s
ok      fixedbugs/issue5856.go  7.181s
ok      fixedbugs/issue5910.go  6.790s
ok      fixedbugs/issue5957.go  10.218s
ok      fixedbugs/issue5963.go  7.013s
ok      fixedbugs/issue6004.go  3.391s
ok      fixedbugs/issue6036.go  0.000s
ok      fixedbugs/issue6055.go  6.903s
ok      fixedbugs/issue6131.go  3.391s
ok      fixedbugs/issue6140.go  3.393s
ok      fixedbugs/issue6247.go  3.399s
ok      fixedbugs/issue6269.go  6.911s
ok      fixedbugs/issue6295.go  10.218s
ok      fixedbugs/issue6298.go  3.388s
ok      fixedbugs/issue6399.go  3.403s
ok      fixedbugs/issue6402.go  3.382s
ok      fixedbugs/issue6403.go  3.402s
ok      fixedbugs/issue6405.go  3.388s
ok      fixedbugs/issue6406.go  3.394s
ok      fixedbugs/issue6500.go  3.407s
ok      fixedbugs/issue6513.go  10.204s
ok      fixedbugs/issue6572.go  3.394s
ok      fixedbugs/issue6671.go  3.390s
ok      fixedbugs/issue6703a.go 3.413s
ok      fixedbugs/issue6703b.go 3.389s
ok      fixedbugs/issue6703c.go 3.391s
ok      fixedbugs/issue6703d.go 3.410s
ok      fixedbugs/issue6703e.go 3.390s
ok      fixedbugs/issue6703f.go 3.391s
ok      fixedbugs/issue6703g.go 3.399s
ok      fixedbugs/issue6703h.go 3.400s
ok      fixedbugs/issue6703i.go 3.421s
ok      fixedbugs/issue6703j.go 3.399s
ok      fixedbugs/issue6703k.go 3.404s
ok      fixedbugs/issue6703l.go 3.387s
ok      fixedbugs/issue6703m.go 3.391s
ok      fixedbugs/issue6703n.go 3.390s
ok      fixedbugs/issue6703o.go 3.401s
ok      fixedbugs/issue6703p.go 3.402s
ok      fixedbugs/issue6703q.go 3.399s
ok      fixedbugs/issue6703r.go 3.400s
ok      fixedbugs/issue6703s.go 3.389s
ok      fixedbugs/issue6703t.go 3.401s
ok      fixedbugs/issue6703u.go 3.381s
ok      fixedbugs/issue6703v.go 3.401s
ok      fixedbugs/issue6703w.go 3.401s
ok      fixedbugs/issue6703x.go 3.400s
ok      fixedbugs/issue6703y.go 3.401s
ok      fixedbugs/issue6703z.go 3.390s
ok      fixedbugs/issue6789.go  13.575s
ok      fixedbugs/issue6847.go  3.406s
ok      fixedbugs/issue6889.go  3.410s
ok      fixedbugs/issue6899.go  6.968s
ok      fixedbugs/issue6902.go  7.026s
ok      fixedbugs/issue6964.go  3.390s
ok      fixedbugs/issue7023.go  6.806s
ok      fixedbugs/issue7044.go  7.163s
ok      fixedbugs/issue7050.go  7.177s
ok      fixedbugs/issue7083.go  7.247s
ok      fixedbugs/issue7129.go  3.383s
ok      fixedbugs/issue7150.go  3.401s
ok      fixedbugs/issue7153.go  3.390s
ok      fixedbugs/issue7214.go  3.401s
ok      fixedbugs/issue7223.go  3.380s
ok      fixedbugs/issue7272.go  3.406s
ok      fixedbugs/issue7310.go  3.385s
ok      fixedbugs/issue7316.go  14.095s
ok      fixedbugs/issue7346.go  3.401s
ok      fixedbugs/issue7366.go  3.391s
ok      fixedbugs/issue7405.go  3.406s
ok      fixedbugs/issue7419.go  7.032s
ok      fixedbugs/issue7525.go  3.391s
ok      fixedbugs/issue7538a.go 3.387s
ok      fixedbugs/issue7538b.go 3.413s
ok      fixedbugs/issue7547.go  3.418s
ok      fixedbugs/issue7550.go  6.927s
ok      fixedbugs/issue7590.go  3.397s
ok      fixedbugs/issue7648.go  6.798s
ok      fixedbugs/issue7675.go  3.416s
ok      fixedbugs/issue7690.go  7.121s
ok      fixedbugs/issue7742.go  3.414s
ok      fixedbugs/issue7760.go  3.395s
ok      fixedbugs/issue7794.go  3.423s
ok      fixedbugs/issue7863.go  7.192s
ok      fixedbugs/issue7867.go  14.126s
ok      fixedbugs/issue7884.go  3.406s
ok      fixedbugs/issue7944.go  6.944s
ok      fixedbugs/issue7995.go  7.156s
ok      fixedbugs/issue7995b.go 13.732s
ok      fixedbugs/issue7996.go  3.416s
ok      fixedbugs/issue7997.go  3.389s
ok      fixedbugs/issue7998.go  3.414s
ok      fixedbugs/issue8004.go  7.086s
ok      fixedbugs/issue8011.go  6.916s
ok      fixedbugs/issue8017.go  3.430s
ok      fixedbugs/issue8028.go  3.415s
ok      fixedbugs/issue8036.go  6.908s
ok      fixedbugs/issue8039.go  6.901s
ok      fixedbugs/issue8047.go  6.957s
ok      fixedbugs/issue8047b.go 6.953s
ok      fixedbugs/issue8048.go  6.947s
ok      fixedbugs/issue8060.go  6.792s
ok      fixedbugs/issue8073.go  3.397s
ok      fixedbugs/issue8074.go  3.392s
ok      fixedbugs/issue8076.go  3.388s
ok      fixedbugs/issue8079.go  3.397s
ok      fixedbugs/issue8132.go  6.917s
ok      fixedbugs/issue8139.go  7.179s
ok      fixedbugs/issue8155.go  6.925s
ok      fixedbugs/issue8158.go  7.026s
ok      fixedbugs/issue8280.go  6.766s
ok      fixedbugs/issue8311.go  3.399s
ok      fixedbugs/issue8325.go  6.911s
ok      fixedbugs/issue8336.go  6.929s
ok      fixedbugs/issue8347.go  6.930s
ok      fixedbugs/issue8475.go  3.571s
ok      fixedbugs/issue8501.go  3.392s
ok      fixedbugs/issue8507.go  3.396s
ok      fixedbugs/issue8612.go  3.416s
ok      fixedbugs/issue8620.go  6.924s
ok      fixedbugs/issue8761.go  3.409s
ok      fixedbugs/issue887.go   3.379s
ok      fixedbugs/issue8947.go  6.903s
ok      fixedbugs/issue8961.go  6.915s
ok      fixedbugs/issue9006.go  6.908s
ok      fixedbugs/issue9110.go  8.458s
ok      fixedbugs/issue9321.go  12.716s
ok      fixedbugs/issue9355.go  10.959s
ok      bugs/bug395.go  0.000s
exit status: 'run 10905: 1'
53.31u 56.67s 5733.04r   go run run.go -v  # status= 1
82.78u 71.15s 7338.46r   all.rc  # status= run.rc 8557: run.rc 10894: time 10898: go 10899: 1

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 8, 2015

Can we get an amd64 builder on GCE too now?

@0intro
Copy link
Member

0intro commented Jan 8, 2015

Yes, I will try to get two Plan 9 amd64 kernels working:

  • 9k, a rewrite of the Plan 9 kernel, by Bell Labs
  • pc64, a port of the original Plan 9 kernel to amd64, by 9front

I'll start by 9k. However, there is an issue that prevents to
run Go successfully on it. One goal of this builder will be
to fix this issue.

Then, I'll do pc64. This is the same kernel as the one
currently running on the plan9/amd64 builder.

bradfitz added a commit to golang/tools that referenced this issue Jan 9, 2015
This resulted in our first "ok" on the dashboard for Plan 9 with the
buildlet, in 19 minutes. It only runs the std tests, and nothing else
after that.

Update golang/go#9491

Change-Id: Iad77a594f83bfd3fa72596bcc3057645d9c9bb4c
Reviewed-on: https://go-review.googlesource.com/2523
Reviewed-by: Andrew Gerrand <[email protected]>
bradfitz added a commit to golang/tools that referenced this issue Jan 9, 2015
... because it's not running all the tests.

Updates golang/go#9491

Change-Id: I2f3e8d1c2cba1b014d59cd3adfe5e04bd5f74dae
Reviewed-on: https://go-review.googlesource.com/2524
Reviewed-by: Andrew Gerrand <[email protected]>
bradfitz pushed a commit to golang/build that referenced this issue Jan 21, 2015
Update golang/go#9491

Change-Id: I219e2e071c0f58bf8c2b69c57b96a9114773c7b7
Reviewed-on: https://go-review.googlesource.com/2251
Reviewed-by: Brad Fitzpatrick <[email protected]>
bradfitz added a commit to golang/build that referenced this issue Jan 21, 2015
This resulted in our first "ok" on the dashboard for Plan 9 with the
buildlet, in 19 minutes. It only runs the std tests, and nothing else
after that.

Update golang/go#9491

Change-Id: Iad77a594f83bfd3fa72596bcc3057645d9c9bb4c
Reviewed-on: https://go-review.googlesource.com/2523
Reviewed-by: Andrew Gerrand <[email protected]>
bradfitz added a commit to golang/build that referenced this issue Jan 21, 2015
... because it's not running all the tests.

Updates golang/go#9491

Change-Id: I2f3e8d1c2cba1b014d59cd3adfe5e04bd5f74dae
Reviewed-on: https://go-review.googlesource.com/2524
Reviewed-by: Andrew Gerrand <[email protected]>
@bradfitz
Copy link
Contributor Author

I can't fix the Plan 9 builders on GCE because I can't get build artifacts out of them due to Plan 9's networking and/or MTU problems. Until I can get a snapshot of the Go 1.4 tree out of the Plan 9 builder, I will be disabling the Plan 9 builder.

Please let me know when the Plan 9 networking problems are resolved.

That is, let me know when you can download a 2KB+ file from Plan 9 on GCE to another machine (on GCE or outside, but ideally both)

@0intro
Copy link
Member

0intro commented Jan 21, 2015

What really puzzles me is I don't have any issue downloading
any file from the Plan 9 VM on GCE, even with the default 1514 MTU
(and despite the 10B Ethernet trailer, which is odd, but harmless).

% hget http://plan9.bell-labs.com/plan9/download/plan9.iso.bz2 > plan9.iso.bz2
% du -sh plan9.iso.bz2
88.15918M plan9.iso.bz2
% sha1sum plan9.iso.bz2
822718c0be27b2d2e6a4db0edf73a6620c61d2a3 plan9.iso.bz2

The issue I encountered is when I try to download a file located on the
Plan 9 VM from another machine. In this case, I had to lower the MTU
to 1468 at least (MTU is still 1514 on the Plan 9 VM).
Inside or outside GCE is exactly the same issue (but the Linux VM
have MTU set to 1460 by default).

@bradfitz
Copy link
Contributor Author

I think MTU path discovery is why you can download files into your GCE VM. The sending side (bell-labs.com) knows what size to send you. Maybe GCE replies with the ICMP responses to tell it the proper sizes.

But when your VM tries to send packets, if it writes one too large, it disappears.

The Linux VM gets the MTU of 1460 via a DHCP extension. Plan 9's DHCP doesn't do that.

But you said you tweaked another host's MTU to make it work? That doesn't scale. :) We have to figure out how to tell Plan 9 to write the correct size IP packets.

Also, that doesn't even sound like it works: I failed to download a file from Plan9->Linux when both were on GCE, with the Linux MTU set to 1460 and Plan 9 also thought it was 1460.

I'm increasingly thinking the MTU isn't the problem by itself and Plan 9 has some other networking issues happening on GCE.

@bradfitz
Copy link
Contributor Author

Update! We tweaked Plan 9's TCP stack's DEF_MSS down 40 bytes to 1420 and rebuilt the kernel and things work now. @0intro will now send a CL updating the kernel image.

bradfitz pushed a commit to golang/build that referenced this issue Jan 21, 2015
In this new image, we changed the kernel
to decrease the TCP MSS from 1460 to 1420
to take into account GCE overhead and
prevent IP fragmentation.

Also change make.bash to set MTU to 1460
during startup.

Thanks to Brad for the help debugging.

Update golang/go#9491

Change-Id: I3261fc85e8324d56bc1aa0180e2a40a969137eef
Reviewed-on: https://go-review.googlesource.com/3161
Reviewed-by: Brad Fitzpatrick <[email protected]>
@bradfitz
Copy link
Contributor Author

We counted our chickens before they hatched and sold the bear's skin before killing it.

It still seems flaky and hangs. I can't get the 30 MB Go 1.4 tar.gz out of it.

@mikioh
Copy link
Contributor

mikioh commented Jan 22, 2015

If you guys are still facing path MTU discovery issues, it might not be a simple path MTU issue at IP-layer but might be a packetization-layer (in this case TCP) path MTU discovery issue. Is Plan 9 able to clamp/tweak/adjust outgoing TCP MSS options in SYN segments? Doesn't Plan 9 support any TCP options including MSS/WScale/SACK/etc? Perhaps you need to count the size of TCP options.

What happens if DEF_MSS of Plan 9 takes a value between 1280 and 1400?

1280: lower bound of IPv6 link MTU
1340: GCE's link MTU - (maximum IPv4 header length + maximum TCP header length)
1400: GCE's link MTU - (usual IPv4 header length  + maximum TCP header length)

@bradfitz
Copy link
Contributor Author

@mikioh, I'll let you and @0intro figure it out then. :) I don't know what IPv6 has to do with this, though. Maybe you just used it as an example. GCE only supports IPv4 currently. IPv6 doesn't even fragment stuff, IIRC.

Maybe we should just set DEF_MSS very low (to 1280) and see if that's enough.

bradfitz added a commit to golang/build that referenced this issue Jan 22, 2015
Update golang/go#9491
Update golang/go#8639

Change-Id: I1f43c751777f10a6d5870ca9bbb8c2a3430189bf
Reviewed-on: https://go-review.googlesource.com/3170
Reviewed-by: Andrew Gerrand <[email protected]>
@mikioh
Copy link
Contributor

mikioh commented Jan 22, 2015

IPv6 doesn't even fragment stuff, IIRC.

;) If it was true, we couldn't traverse across IP islands using IPv6. Yup, encapsulation and/or translation gears do IP-layer packet fragmentation and reassembly even on IPv6 packet forwarding plane.

gopherbot pushed a commit to golang/build that referenced this issue Jan 25, 2015
This new image is based on the latest
Plan 9 CD image (2015-01-10) and includes
two fixes.

The ethervirtio driver was fixed to
prevent 10 trailing bytes in received
frames.

The TCP stack was fixed to calculate
the MSS properly in incoming connections.

Update golang/go#9491

Change-Id: Ic42378ffbd5fc43e664632b2c5923b84aac5f639
Reviewed-on: https://go-review.googlesource.com/3280
Reviewed-by: Brad Fitzpatrick <[email protected]>
@bradfitz
Copy link
Contributor Author

I think we can close this now. Things don't run super quickly, but things work now.

Thanks to @0intro for all the work!

@0intro
Copy link
Member

0intro commented Jan 28, 2015

Thanks @bradfitz for the help debugging.

bradfitz pushed a commit to golang/build that referenced this issue Feb 26, 2015
This new image provides a new tool, called
aux/randfs. This is a pseudo-random file
system which can be mounted on top of /dev/random.

We noticed the Go binaries on GCE were running
much slower than usual. It happened because the
runtime was regularly waiting after /dev/random,
which wasn't able to produce random bytes as
fast as required.

A simple workaround was to write a pseudo-random
file system, acting as /dev/random and initialized
from a true random source. It will be able
to produce much more bytes per second than
the random generator provided by the kernel.

Update golang/go#9491

Change-Id: I81158adef7332d10295c2245b4564ae18ebb3a14
Reviewed-on: https://go-review.googlesource.com/6170
Reviewed-by: Brad Fitzpatrick <[email protected]>
@golang golang locked and limited conversation to collaborators Jun 25, 2016
@rsc rsc unassigned 0intro Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants