Dnscrypt-proxy: 'dnscrypt-proxy-android_i386-2.0.7' is segfaulting on an android x86 device...

Created on 21 Mar 2018  路  13Comments  路  Source: DNSCrypt/dnscrypt-proxy

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
android bug

All 13 comments

/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!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

EstherMoellman picture EstherMoellman  路  5Comments

Ph0rk0z picture Ph0rk0z  路  5Comments

Marco-vW picture Marco-vW  路  5Comments

rugabunda picture rugabunda  路  4Comments

Hasshu picture Hasshu  路  4Comments