Device: Zenfone 2 ZE551ML
OS: Android 7.1.2
This is the error output:
#dnscrypt-proxy -config "/etc/dnscrypt-proxy/dnscrypt-proxy.toml"
..
unexpected fault address 0xd727e000
fatal error: fault
runtime: unexpected return pc for main.computeCacheKey called from 0x1a4659
[signal SIGSEGV: segmentation violation code=0x2 addr=0xd727e000 pc=0xf725a899]
goroutine 32 [running]:
runtime.throw(0xf7456cf7, 0x5)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/panic.go:619 +0x70 fp=0xd7237bdc sp=0xd7237bd0 pc=0xf71203a0
runtime.sigpanic()
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/signal_unix.go:395 +0x1d6 fp=0xd7237c00 sp=0xd7237bdc pc=0xf7135676
runtime: unexpected return pc for github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3 called from 0xd7237d30
stack: frame={sp:0xd7237c00, fp:0xd7237c44} stack=[0xd7237000,0xd7238000)
d7237b80: f77a6ccf f7120d85 <runtime.gwrite+213> f745642e 00000001
d7237b90: 00000001 f7456cf7 00000005 f71214c7 <runtime.printstring+103>
d7237ba0: f745642e 00000001 00000001 f745642e
d7237bb0: f71498f5 <runtime.systemstack+85> f71202e9 <runtime.dopanic+57> d7237bbc f7148250 <runtime.dopanic.func1+0>
d7237bc0: d6cc6ee0 f71203a0 <runtime.throw+112> d7237bd0 f71203a0 <runtime.throw+112>
d7237bd0: 00000000 00000005 f7135676 <runtime.sigpanic+470> f7456cf7
d7237be0: 00000005 ffffffff 3fcffff9 d727e000
d7237bf0: d6cc6ee0 f72598b1 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.hChaCha20+145> d7237c4c f725a899 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3+377>
d7237c00: <00000001 00000000 00000000 00000000
d7237c10: 248410da 1f098ddf 0ef2276c 3e3dffd1
d7237c20: a4a41bed 9960247c b30df425 14087c66
d7237c30: f72599f7 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStream+311> d7237d30 00000040 00000040
d7237c40: !d7237d30 >00000040 00000040 d6ca2160
d7237c50: d6ca2120 00000014 00000000 f72595cc <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.(*Cipher).XORKeyStream+428>
d7237c60: d7237d30 00000040 00000040 d7237d30
d7237c70: 00000040 00000040 d6ca2160 d6ca2120
d7237c80: 00000014 00000020 00000020 00000000
d7237c90: 00000000 d6ca2120 f72629f1 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/xsecretbox.Seal+209> d6ca2120
d7237ca0: d7237d30 00000040 00000040 d7237d30
d7237cb0: 00000040 00000040 d6ca2120 00000000
d7237cc0: 00000000
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3(0x40, 0x40, 0xd6ca2160, 0xd6ca2120, 0x14, 0x0, 0xf72595cc, 0xd7237d30, 0x40, 0x40)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha/chacha_386.s:215 +0x179 fp=0xd7237c44 sp=0xd7237c00 pc=0xf725a899
created by main.(*Proxy).tcpListener
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:167 +0x7d
/cc @aead
@twisp007 Is it correct that your device uses an Atom Z3580?
@aead What are your suspicions? Anything special about that CPU and SSSE3?
Or could it be an alignment issue?
@jedisct1 Nothing special - I just wanted to know whether the product spec about the CPU is correct.
For example there was a performance issue with Go BLAKE2 amd64 asm on certain Xeon CPUs because of SSE/AVX transitions (because of a missing VPZEROUPPER) which I couldn't reproduce on my CPUs. In general it's useful to know the CPU type if there is an issue in hand-written asm.
EDIT: Since I cannot reproduce this on my system using the mentioned command - It starts the server successfully. I doubt that it makes a difference but can you publish your config @twisp007 ?
Or could it be an alignment issue?
Maybe - I'm still investigating. The SP seems to be saved correctly - maybe an out-of-bound read...
@aead
Yes phone processor is : Intel Atom Z3580
Config file not very different from this.
The change is listen_addresses = ['127.0.0.1:53', '[::1]:53'] -> listen_addresses = ['127.0.0.1:5353', '[::1]:5353', '127.0.0.1:53']
and
fallback_resolver = '9.9.9.9:53' -> fallback_resolver = '208.67.222.222:5353'
@twisp007 Can you try the i386 build. If so do you see the same error?
@jedisct1 I updated my (X)ChaCha20 implementation with new/refactored i386 and amd64 implementations. There should be no difference between the SSE2/SSSE3/AVX implementations anymore - except for the "instruction-specific" parts. Since I was not able to reproduce the issue I'm not 100% sure that it's gone. If it still happens than I can look at the diff / the shared parts...
Thanks!
My computer is at the shop due to overheating battery issues, but I'll merge this next week.
@aead
With the binary you linked:
dnscrypt-proxy -config "/etc/dnscrypt-proxy/dnscrypt-proxy.toml"
[2018-03-23 12:41:25] [NOTICE] Source [https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md] loaded
[2018-03-23 12:41:25] [NOTICE] dnscrypt-proxy 2.0.7
[2018-03-23 12:41:25] [NOTICE] Now listening to 127.0.0.1:5354 [UDP]
[2018-03-23 12:41:25] [NOTICE] Now listening to 127.0.0.1:5354 [TCP]
[2018-03-23 12:41:25] [NOTICE] Now listening to [::1]:5354 [UDP]
[2018-03-23 12:41:25] [NOTICE] Now listening to [::1]:5354 [TCP]
[2018-03-23 12:41:25] [NOTICE] Now listening to 127.0.0.1:53 [UDP]
[2018-03-23 12:41:25] [NOTICE] Now listening to 127.0.0.1:53 [TCP]
[2018-03-23 12:41:26] [NOTICE] [bn-fr0] OK (crypto v1) - rtt: 671ms
[2018-03-23 12:41:26] [NOTICE] [bn-nl0] OK (crypto v1) - rtt: 703ms
[2018-03-23 12:41:33] [NOTICE] [cpunks-ru] OK (crypto v1) - rtt: 934ms
[2018-03-23 12:41:34] [NOTICE] [d0wn-fr-ns1] OK (crypto v1) - rtt: 700ms
[2018-03-23 12:41:35] [NOTICE] [d0wn-is-ns2] OK (crypto v1) - rtt: 913ms
[2018-03-23 12:41:37] [NOTICE] [d0wn-lv-ns2] TIMEOUT
[2018-03-23 12:41:38] [NOTICE] [d0wn-nl-ns4] OK (crypto v1) - rtt: 1018ms
[2018-03-23 12:41:39] [NOTICE] [d0wn-se-ns2] OK (crypto v1) - rtt: 943ms
[2018-03-23 12:41:40] [NOTICE] [d0wn-tz-ns1] OK (crypto v1) - rtt: 1054ms
[2018-03-23 12:41:41] [NOTICE] [d0wn-za-ns1] OK (crypto v1) - rtt: 1251ms
[2018-03-23 12:41:43] [NOTICE] [de.dnsmaschine.net] TIMEOUT
[2018-03-23 12:41:44] [NOTICE] [dnscrypt.ca-1] OK (crypto v1) - rtt: 637ms
[2018-03-23 12:41:44] [NOTICE] [dnscrypt.ca-2] OK (crypto v1) - rtt: 481ms
[2018-03-23 12:41:45] [NOTICE] [dnscrypt.eu-dk] OK (crypto v1) - rtt: 849ms
[2018-03-23 12:41:46] [NOTICE] [dnscrypt.eu-nl] OK (crypto v1) - rtt: 808ms
[2018-03-23 12:41:48] [NOTICE] [dnscrypt.name] TIMEOUT
[2018-03-23 12:41:49] [NOTICE] [dnscrypt.nl-ns0] OK (crypto v1) - rtt: 847ms
[2018-03-23 12:41:56] [NOTICE] [ev-us] OK (crypto v2) - rtt: 1016ms
[2018-03-23 12:41:57] [NOTICE] [ev-us2] OK (crypto v2) - rtt: 1039ms
[2018-03-23 12:41:58] [NOTICE] [ev-us3] OK (crypto v2) - rtt: 1317ms
[2018-03-23 12:41:58] [NOTICE] [freetsa.org] OK (crypto v1) - rtt: 554ms
[2018-03-23 12:42:01] [NOTICE] [flatty.co] OK (crypto v2) - rtt: 551ms
[2018-03-23 12:42:01] [NOTICE] [ipredator] OK (crypto v1) - rtt: 633ms
[2018-03-23 12:42:03] [NOTICE] [lazarus-dns] TIMEOUT
[2018-03-23 12:42:04] [NOTICE] [opennic-famicoman] OK (crypto v1) - rtt: 333ms
[2018-03-23 12:42:04] [NOTICE] [opennic-luggs] OK (crypto v1) - rtt: 422ms
[2018-03-23 12:42:05] [NOTICE] [opennic-onic] OK (crypto v1) - rtt: 600ms
[2018-03-23 12:42:05] [NOTICE] [opennic-tumabox] OK (crypto v1) - rtt: 651ms
[2018-03-23 12:42:06] [NOTICE] [qag.me] OK (crypto v2) - rtt: 303ms
[2018-03-23 12:42:07] [NOTICE] [scaleway-fr] OK (crypto v2) - rtt: 392ms
[2018-03-23 12:42:07] [NOTICE] [securedns] OK (crypto v1) - rtt: 486ms
[2018-03-23 12:42:08] [NOTICE] [soltysiak] OK (crypto v1) - rtt: 616ms
[2018-03-23 12:42:08] [NOTICE] [ventricle.us] OK (crypto v1) - rtt: 596ms
[2018-03-23 12:42:08] [NOTICE] Server with the lowest initial latency: qag.me (rtt: 303ms)
[2018-03-23 12:42:08] [NOTICE] dnscrypt-proxy is ready - live servers: 29
unexpected fault address 0xd725e000
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0xd725e000 pc=0xf722f899]
goroutine 86 [running]:
runtime.throw(0xf742bcf7, 0x5)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/panic.go:619 +0x70 fp=0xd7156c0c sp=0xd7156c00 pc=0xf70f53a0
runtime.sigpanic()
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/signal_unix.go:395 +0x1d6 fp=0xd7156c30 sp=0xd7156c0c pc=0xf710a676
runtime: unexpected return pc for github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3 called from 0x40
stack: frame={sp:0xd7156c30, fp:0xd7156c74} stack=[0xd7156000,0xd7157000)
d7156bb0: f777bccf f70f5d85 <runtime.gwrite+213> f742b42e 00000001
d7156bc0: 00000001 f742bcf7 00000005 f70f64c7 <runtime.printstring+103>
d7156bd0: f742b42e 00000001 00000001 f742b42e
d7156be0: f711e8f5 <runtime.systemstack+85> f70f52e9 <runtime.dopanic+57> d7156bec f711d250 <runtime.dopanic.func1+0>
d7156bf0: d6cb4540 f70f53a0 <runtime.throw+112> d7156c00 f70f53a0 <runtime.throw+112>
d7156c00: 00000000 00000005 f710a676 <runtime.sigpanic+470> f742bcf7
d7156c10: 00000005 c6925810 00000000 d725e000
d7156c20: d6cb4540 f722faa8 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.hChaCha20SSSE3+56> f722e8b1 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.hChaCha20+145> f722f899 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3+377>
d7156c30: <00000001 00000000 00000000 00000000
d7156c40: 70b925c8 39963b96 57ffcec1 27017295
d7156c50: 0fd5cbce 7dcb1772 a08d3d99 767f25e7
d7156c60: 126a5b52 f722e9f7 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStream+311> d7156d64 00000040
d7156c70: !00000040 >d7156d64 00000040 00000040
d7156c80: d6d4c040 d6d4c000 00000014 00000000
d7156c90: f722e5cc <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.(*Cipher).XORKeyStream+428> d7156d64 00000040 00000040
d7156ca0: d7156d64 00000040 00000040 d6d4c040
d7156cb0: d6d4c000 00000014 00000020 00000020
d7156cc0: 00000000 00000000 d6d4c000 f72379f1 <github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/xsecretbox.Seal+209>
d7156cd0: d6d4c000 d7156d64 00000040 00000040
d7156ce0: d7156d64 00000040 00000040 d6d4c000
d7156cf0: 00000000
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha.xorKeyStreamSSSE3(0xd7156d64, 0x40, 0x40, 0xd6d4c040, 0xd6d4c000, 0x14, 0x0, 0xf722e5cc, 0xd7156d64, 0x40)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/aead/chacha20/chacha/chacha_386.s:215 +0x179 fp=0xd7156c74 sp=0xd7156c30 pc=0xf722f899
created by main.(*Proxy).udpListener
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:139 +0x81
goroutine 1 [chan receive]:
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/kardianos/service.(*sysv).Run.func1()
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/kardianos/service/service_sysv_linux.go:133 +0xc0
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/kardianos/service.(*sysv).Run(0xd6c41170, 0x11, 0xd6c8fe1c)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/kardianos/service/service_sysv_linux.go:134 +0xa8
main.main()
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/main.go:69 +0x532
goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/sigqueue.go:139 +0x150
os/signal.loop()
/home/travis/.gimme/versions/go1.10.linux.amd64/src/os/signal/signal_unix.go:22 +0x14
created by os/signal.init.0
/home/travis/.gimme/versions/go1.10.linux.amd64/src/os/signal/signal_unix.go:28 +0x36
goroutine 6 [chan receive]:
main.(*App).AppMain(0xd6c128c0, 0xd6c128d4)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/main.go:100 +0x37
main.(*App).Start.func1(0xd6c128c0, 0xd6c128d4)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/main.go:89 +0x23
created by main.(*App).Start
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/main.go:88 +0xe1
goroutine 7 [select, locked to thread]:
runtime.gopark(0xf7592ee8, 0x0, 0xf742c154, 0x6, 0x18, 0x1)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/proc.go:291 +0x106
runtime.selectgo(0xd6b90fa0, 0xd6b81a80)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/select.go:392 +0xf26
runtime.ensureSigM.func1()
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/signal_unix.go:549 +0x1e1
runtime.goexit()
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/asm_386.s:1665 +0x1
goroutine 8 [IO wait]:
internal/poll.runtime_pollWait(0xc6345fc0, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc424, 0x72, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc424, 0xd6c2d000, 0xfff, 0xfff)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).ReadFrom(0xd6bfc410, 0xd6c2d000, 0xfff, 0xfff, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:207 +0x149
net.(*netFD).readFrom(0xd6bfc410, 0xd6c2d000, 0xfff, 0xfff, 0x0, 0x1f, 0xffffffe1, 0xf70dabc0, 0xd6fd8560)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:208 +0x39
net.(*UDPConn).readFrom(0xd6c92868, 0xd6c2d000, 0xfff, 0xfff, 0xf711e8f5, 0xf70fe144, 0xd6b90790, 0xd6b907b0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock_posix.go:47 +0x39
net.(*UDPConn).ReadFrom(0xd6c92868, 0xd6c2d000, 0xfff, 0xfff, 0xfff, 0xfff, 0xd6cc4080, 0xd6c92868, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock.go:118 +0x50
main.(*Proxy).udpListener(0xd6c128d4, 0xd6c92868)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:134 +0x101
created by main.(*Proxy).udpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:156 +0xdb
goroutine 9 [IO wait]:
internal/poll.runtime_pollWait(0xc6345f40, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc474, 0x72, 0xd6bfc400, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc474, 0xffffff00, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).Accept(0xd6bfc460, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:372 +0x180
net.(*netFD).accept(0xd6bfc460, 0xd6fd8100, 0x0, 0xf711e8f5)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:238 +0x21
net.(*TCPListener).accept(0xd6c92880, 0xd6b917d8, 0xf711dbb0, 0xd6b917d4)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock_posix.go:136 +0x1d
net.(*TCPListener).Accept(0xd6c92880, 0xf7592b2c, 0xf75985a0, 0xd6fd8100, 0xd6c128d4)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock.go:259 +0x36
main.(*Proxy).tcpListener(0xd6c128d4, 0xd6c92880)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:163 +0x42
created by main.(*Proxy).tcpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:191 +0xdb
goroutine 10 [IO wait]:
internal/poll.runtime_pollWait(0xc6345ec0, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc4c4, 0x72, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc4c4, 0xd6cc3000, 0xfff, 0xfff)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).ReadFrom(0xd6bfc4b0, 0xd6cc3000, 0xfff, 0xfff, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:207 +0x149
net.(*netFD).readFrom(0xd6bfc4b0, 0xd6cc3000, 0xfff, 0xfff, 0x7fffffff, 0x1f, 0xffffffe1, 0xf70dabc0, 0xd6cc4008)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:208 +0x39
net.(*UDPConn).readFrom(0xd6c928a8, 0xd6cc3000, 0xfff, 0xfff, 0x0, 0x0, 0x0, 0xf70f3f31)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock_posix.go:47 +0x39
net.(*UDPConn).ReadFrom(0xd6c928a8, 0xd6cc3000, 0xfff, 0xfff, 0xfff, 0xfff, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock.go:118 +0x50
main.(*Proxy).udpListener(0xd6c128d4, 0xd6c928a8)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:134 +0x101
created by main.(*Proxy).udpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:156 +0xdb
goroutine 11 [IO wait]:
internal/poll.runtime_pollWait(0xc6345e40, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc514, 0x72, 0xd6bfc500, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc514, 0xffffff00, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).Accept(0xd6bfc500, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:372 +0x180
net.(*netFD).accept(0xd6bfc500, 0xc, 0xd6b8a790, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:238 +0x21
net.(*TCPListener).accept(0xd6c928c0, 0xf70f3f31, 0xd6cc00ac, 0xd6b8a7d8)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock_posix.go:136 +0x1d
net.(*TCPListener).Accept(0xd6c928c0, 0xf7592b58, 0xd6c928c0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock.go:259 +0x36
main.(*Proxy).tcpListener(0xd6c128d4, 0xd6c928c0)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:163 +0x42
created by main.(*Proxy).tcpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:191 +0xdb
goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0xc6345dc0, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc564, 0x72, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc564, 0xd6ccc000, 0xfff, 0xfff)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).ReadFrom(0xd6bfc550, 0xd6ccc000, 0xfff, 0xfff, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:207 +0x149
net.(*netFD).readFrom(0xd6bfc550, 0xd6ccc000, 0xfff, 0xfff, 0xf711bd30, 0xc691e364, 0x2, 0xf70dac52, 0x1)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:208 +0x39
net.(*UDPConn).readFrom(0xd6c928e8, 0xd6ccc000, 0xfff, 0xfff, 0x0, 0x0, 0x0, 0xf70f3f31)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock_posix.go:47 +0x39
net.(*UDPConn).ReadFrom(0xd6c928e8, 0xd6ccc000, 0xfff, 0xfff, 0xfff, 0xfff, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/udpsock.go:118 +0x50
main.(*Proxy).udpListener(0xd6c128d4, 0xd6c928e8)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:134 +0x101
created by main.(*Proxy).udpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:156 +0xdb
goroutine 13 [IO wait]:
internal/poll.runtime_pollWait(0xc6345d40, 0x72, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/netpoll.go:173 +0x45
internal/poll.(*pollDesc).wait(0xd6bfc5b4, 0x72, 0xd6bfc500, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:85 +0xa1
internal/poll.(*pollDesc).waitRead(0xd6bfc5b4, 0xffffff00, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).Accept(0xd6bfc5a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/internal/poll/fd_unix.go:372 +0x180
net.(*netFD).accept(0xd6bfc5a0, 0xc, 0xd6b8b790, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/fd_unix.go:238 +0x21
net.(*TCPListener).accept(0xd6c92900, 0xf70f3f31, 0xd6cca04c, 0xd6b8b7d8)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock_posix.go:136 +0x1d
net.(*TCPListener).Accept(0xd6c92900, 0xf7592b58, 0xd6c92900, 0x0, 0x0)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/net/tcpsock.go:259 +0x36
main.(*Proxy).tcpListener(0xd6c128d4, 0xd6c92900)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:163 +0x42
created by main.(*Proxy).tcpListenerFromAddr
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:191 +0xdb
goroutine 47 [sleep]:
time.Sleep(0x2a05f200, 0x1)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/time.go:102 +0x167
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith.SleepWithGranularity(0xc2e28000, 0xd18, 0x2a05f200, 0x1)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith/clocksmith.go:19 +0xc8
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith.Sleep(0xc2e28000, 0xd18)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith/clocksmith.go:33 +0x33
main.(*Proxy).StartProxy.func1(0xd6c128d4)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:104 +0x1d
created by main.(*Proxy).StartProxy
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:98 +0x374
goroutine 46 [sleep]:
time.Sleep(0x2a05f200, 0x1)
/home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/time.go:102 +0x167
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith.SleepWithGranularity(0xf8475800, 0xd, 0x2a05f200, 0x1)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith/clocksmith.go:19 +0xc8
github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith.Sleep(0xf8475800, 0xd)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/vendor/github.com/jedisct1/go-clocksmith/clocksmith.go:33 +0x33
main.(*Proxy).prefetcher.func1(0xd6c12a4c, 0xd6c128d4)
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:125 +0x296
created by main.(*Proxy).prefetcher
/home/travis/gopath/src/github.com/jedisct1/dnscrypt-proxy/dnscrypt-proxy/proxy.go:111 +0x3a
@twisp007 @jedisct1 Okay the issue seems to be in Line: 215 of chacha_386.s: XOR(DI, SI, 0, X4, X5, X6, X7, X0) - This indicates a out-of-bound read/write. I'm not able to reproduce this on an amd64 CPU (I've no 386-only cpu and the Atom also is a 64 bit CPU). Further I'm not able to see what's wrong in the code... However the specific logic has changed with the latest commits - maybe it resolves the issue...
Atom also is a 64 bit CPU
The processor maybe 64 bit but the OS is 32 bit, if that's relevant.
I will try the latest version and see what happens.
@twisp007 Yes - I'm a bit surprised that I cannot reproduce this - I'm also running 386 compatibility mode - however not with a 32-bit system...
I will try the latest version and see what happens.
You have to wait for a new release/build with updated dependencies - or you can try to run:
go get github.com/aead/chacha20 && go test -v github.com/aead/chacha20/... on your machine... But you would have to setup Go on your system.
Try version 2.0.8 and reopen if you still experience this issue!