Dnscrypt-proxy: Alpine Package

Created on 8 Apr 2018  ·  32Comments  ·  Source: DNSCrypt/dnscrypt-proxy

Howdy,

Any plans to update / maintain the Alpine package? I currently see they are still on DNSCrypt-Proxy 1 [1] vs using 2. I've gotten DNSCrypt-Proxy 2 working on Alpine in RAM mode, and its like a dream. With dropbear + DNSCrypt-Proxy 2 + netdata (stream mode) + chrony, the system only uses 45MB. The CPU also never pegs out, and I'm still on 2.0.8.

# free -m
             total       used       free     shared    buffers     cached
Mem:           942        114        828         47          1         69
-/+ buffers/cache:         43        899
Swap:            0          0          0

Thanks,
Jason

[1] https://github.com/alpinelinux/aports/tree/8b7e48dcaf6a2049edeffaa957db618e923b78ab/community/dnscrypt-proxy

linux

Most helpful comment

@JasonSwindle armhf has finished to build now. Please check it. Regarding unbound, it's pulled from the setup script. I didn't checked it since I've not configured as yet dnscrypt-proxy.
Any feedback is welcome! Thanks.

All 32 comments

You'd better ask on the Alpine Linux forums or the previous maintainer directly :)

I see that maybe @fcolista could help. I recommend contacting him at [email protected]

Hi. I was looking at the newer dnscrypt-proxy version...which is coded in GO. Maintain GO package is quite a nightmare...I'm planning to do this in the next days, though.
I believe that setup script should be rewritten too...https://github.com/alpinelinux/aports/blob/8b7e48dcaf6a2049edeffaa957db618e923b78ab/community/dnscrypt-proxy/dnscrypt-proxy.setup

@JasonSwindle ok, I've done. Upgraded to 2.0.9b2. Small review to the setup-dnscrypt script.
Care to test and let me know? Thanks

Howdy,

Let me do some testing today on the package. I will re-do my Alpine server once I'm home. Thank you for the hard work! 👍

@fcolista

Howdy,

Taking a fast look, I see:

  • it looks like ARMHF packages did not generate
  • it looks like unbound is still being installed and configured

From what I understand, DNSCrypt-Proxy 2 no longer needs unbound and is totally free standing.

Thanks,
Jason

@JasonSwindle armhf has finished to build now. Please check it. Regarding unbound, it's pulled from the setup script. I didn't checked it since I've not configured as yet dnscrypt-proxy.
Any feedback is welcome! Thanks.

Great work, and dang you are fast. I will test this shortly, still not home yet. :D

@fcolista It seems like armhf packages are still not building:

https://pkgs.alpinelinux.org/packages?name=dnscrypt-proxy&branch=edge&repo=community&arch=armhf

is still on 1.9.5-r2. Sorry to be a bother, and thank you so much for the help on this! :D

Hi Jason, that page is not in realtime. Please do “apk update” and then “apk search dnscrypt-proxy”. You will see the last version.

Inviato da iPhone

Il giorno 09 apr 2018, alle ore 19:33, Jason Swindle notifications@github.com ha scritto:

@fcolista It seems like armhf packages are still not building:

https://pkgs.alpinelinux.org/packages?name=dnscrypt-proxy&branch=edge&repo=community&arch=armhf

is still on 1.9.5-r2. Sorry to be a bother, and thank you so much for the help on this! :D


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@fcolista

Howdy,

I checked last night and this morning, and this is what I'm seeing:

# apk update
fetch http://mirror.leaseweb.com/alpine/v3.7/main/armhf/APKINDEX.tar.gz
fetch http://mirror.leaseweb.com/alpine/v3.7/community/armhf/APKINDEX.tar.gz
fetch http://mirror.leaseweb.com/alpine/edge/main/armhf/APKINDEX.tar.gz
fetch http://mirror.leaseweb.com/alpine/edge/community/armhf/APKINDEX.tar.gz
fetch http://mirror.leaseweb.com/alpine/edge/testing/armhf/APKINDEX.tar.gz
3.7.0 [/media/mmcblk0p1/apks]
v3.7.0-145-g948cf8145a [http://mirror.leaseweb.com/alpine/v3.7/main]
v3.7.0-146-gc8d008ade6 [http://mirror.leaseweb.com/alpine/v3.7/community]
v3.7.0-4203-gbda9cddfa3 [http://mirror.leaseweb.com/alpine/edge/main]
v3.7.0-3792-gd3430e29a8 [http://mirror.leaseweb.com/alpine/edge/community]
v3.7.0-3789-g8009ce45ee [http://mirror.leaseweb.com/alpine/edge/testing]
OK: 20773 distinct packages available

# apk search dnscrypt-proxy
dnscrypt-proxy-1.9.5-r2
dnscrypt-proxy-doc-1.9.5-r2
dnscrypt-proxy-setup-1.9.5-r2

Unless not all mirrors get updated quickly, or I'm having issues.

On Mon, Apr 9, 2018 at 5:28 PM Francesco Colista notifications@github.com
wrote:

Hi Jason, that page is not in realtime. Please do “apk update” and then
“apk search dnscrypt-proxy”. You will see the last version.

Inviato da iPhone

Il giorno 09 apr 2018, alle ore 19:33, Jason Swindle <
[email protected]> ha scritto:

@fcolista It seems like armhf packages are still not building:

https://pkgs.alpinelinux.org/packages?name=dnscrypt-proxy&branch=edge&repo=community&arch=armhf

is still on 1.9.5-r2. Sorry to be a bother, and thank you so much for
the help on this! :D


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jedisct1/dnscrypt-proxy/issues/331#issuecomment-379935459,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsae4tEoaoPZ3aOvtmDnjtm1wyE5s6lks5tm_ywgaJpZM4TLphX
.

>

Thanks,
Jason

@JasonSwindle I think that that mirrors are not up2date.
Please check this:

cat /etc/apk/repositories

http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing

apk search dnscrypt-proxy

dnscrypt-proxy-2.0.9b2-r1
dnscrypt-proxy-2.0.9b2-r0
dnscrypt-proxy-doc-2.0.9b2-r1
dnscrypt-proxy-setup-2.0.9b2-r1

@fcolista

Howdy sir,

No luck, the same:

alpine:~# apk update
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/armhf/APKINDEX.tar.gz
3.7.0 [/media/mmcblk0p1/apks]
v3.7.0-4203-gbda9cddfa3 [http://dl-cdn.alpinelinux.org/alpine/edge/main]
v3.7.0-3792-gd3430e29a8 [http://dl-cdn.alpinelinux.org/alpine/edge/community]
v3.7.0-3789-g8009ce45ee [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
v3.7.0-145-g948cf8145a [http://dl-cdn.alpinelinux.org/alpine/v3.7/main]
v3.7.0-146-gc8d008ade6 [http://dl-cdn.alpinelinux.org/alpine/v3.7/community]
OK: 20773 distinct packages available

alpine:~# apk search dnscrypt-proxy
dnscrypt-proxy-1.9.5-r2
dnscrypt-proxy-1.9.5-r2
dnscrypt-proxy-doc-1.9.5-r2
dnscrypt-proxy-setup-1.9.5-r2

When I look at http://dl-cdn.alpinelinux.org/alpine/edge/community/armhf/ I only see the old package as well, but I do see it there for ARM64. For some reason, ARMHF is missing.

@JasonSwindle ok, figured the issue. The armhf builder was stucked on building another package. Now is available:
http://nl.alpinelinux.org/alpine/edge/community/armhf/
Please try to use nl.alpinelinux.org for now.
Thanks.

@fcolista

Thank you for the hard work on this! I took a lunch break and tested the package and found a few errors:

Errors

Init script issues

The current init script is not valid, and we should look at using Gentoo's [1]

# rc-service dnscrypt-proxy start
 * Starting dnscrypt-proxy ...
flag provided but not defined: -daemonize
Usage of /usr/bin/dnscrypt-proxy:
  -check
        check the configuration file and exit
  -config string
        Path to the configuration file (default "dnscrypt-proxy.toml")
  -json
        output list as JSON
  -list
        print the list of available resolvers for the enabled filters
  -list-all
        print the complete list of available resolvers, ignoring filters
  -logfile string
        Write logs to file
  -loglevel value
        Log level (0-6) (default 2)
  -pidfile string
        If specified, write pid to file.
  -resolve string
        resolve a name using system libraries
  -service string
        Control the system service: ["start" "stop" "restart" "install" "uninstall"]
  -syslog
        Send logs to the local system logger (Eventlog on Windows, syslog on Unix)
  -version
        print current proxy version
 * start-stop-daemon: failed to start `/usr/bin/dnscrypt-proxy'
 * Failed to start dnscrypt-proxy                                                                                                                                    [ !! ]
 * ERROR: dnscrypt-proxy failed to start
 ```

## The APKBUILD has the wrong domain for this project
It should be ```https://dnscrypt.info``` [2]

## Start error
I had to enable
```bash
setcap cap_net_bind_service=+ep /usr/bin/dnscrypt-proxy

to make the service start and bind to port 53.

Sources

## Gentoo OpenRC init
[1] https://gitweb.gentoo.org/repo/gentoo.git/plain/net-dns/dnscrypt-proxy/files/dnscrypt-proxy.initd-r2

## Domain is wrong
[2] https://git.alpinelinux.org/cgit/aports/tree/community/dnscrypt-proxy/APKBUILD#n7

@fcolista

Oh, should we not also keep the example files:

blacklist.txt
forwarding-rules.txt
cloaking-rules.txt

named:

example-blacklist.txt
example-forwarding-rules.txt
example-cloaking-rules.txt

like example-whitelist.txt is? As these files are not needed to run, and re-naming them may confuse new users.

Oh man. Sorry for this.
Fixed as you asked. For the setcap, for now run it by hand. I'm looking for the best way to do this with openrc.
Thanks.

@fcolista

You are good, no need for apologies, you are doing wonderful work here :D .

setcap Issue

Anywho, I solved the setcap issue by adding it after line 18 in the init file [1].

start_pre() {
    checkpath -q -d -m 0775 -o "${command_user}" /var/cache/"${SVCNAME}"
    checkpath -q -d -m 0775 -o "${command_user}" /var/log/"${SVCNAME}"
        setcap cap_net_bind_service=+ep "${command}"
}

I have no idea is this is smart or the way Alpine solves for this or not.

Chicken and Egg Issue

The last issue I'm not really sure how to solve for is......dnscrypt-proxy needs time to be set correctly to operate, but on some systems, on reboot the time will reset to something in the range of 2017. This will cause dnscrypt-proxy to fail with x509 errors. The issue is, if your DNS in your network is purely powered by dnscrypt-proxy running on this system, chrony cannot resolve the DNS Name in the config file. I solved this by setting the NTP servers to the Google Time IP 216.239.35.0, but this is most likely an edge case for people like me.

[1] https://git.alpinelinux.org/cgit/aports/tree/community/dnscrypt-proxy/dnscrypt-proxy.initd#n18

@JasonSwindle The clock issue is also going to affect DNSCrypt servers, and anything requiring to check expiring certificates.

But... there is a secret, undocumented (for now) trick. That was mainly made for routers, but...

There is a secret cert_ignore_timestamp option that you can set in the configuration file, and does what the name says. And after the servers have been initialized, this option automatically sets itself to false.

Of course, this is not great from a security perspective. But if the clock is off, it's better than a system you can't use.

Now that I think about it, this option will work for DNSCrypt servers, but not for DoH (and doing so without totally ignoring the certificate chain seems to be difficult).

@fcolista

One other option is to use IP tables like apache shows in their wiki [1]:

root@myhost # iptables -t nat -A PREROUTING -d <ip> -p tcp --dport 80 -m addrtype --dst-type LOCAL -j DNAT --to-destination <ip>:8080
root@myhost # iptables -t nat -A OUTPUT     -d <ip> -p tcp --dport 80 -m addrtype --dst-type LOCAL -j DNAT --to-destination <ip>:8080

but we change things to match what dnscrypt-proxy needs. This would get around setcap, but would add IPTables into the processing of every DNS request. That is a lot of extra overhead and processing cost.

@jedisct1

This is an area I would trust your judgement on. I would think most users wanting this project want a high level of security and DoH as well, so cert_ignore_timestamp may not help much. I don't mind using an IP in my chrony setup, but let me look into supplying chrony a DNS name and an IP (e.g. time.google.com and 216.239.35.0) and see how it handles that.

[1] https://wiki.apache.org/httpd/NonRootPortBinding

@fcolista

One more odd thing I found in testing the latest version. On reboot, you will get the error:

# rc-service dnscrypt-proxy start
 * Starting dnscrypt-proxy ...
 * start-stop-daemon: fopen `/run/dnscrypt-proxy/dnscrypt-proxy.pid': No such file or directory

I fixed that by changing the line the pid line to:

pidfile="/run/${SVCNAME}.pid"

and that fixed it. So my init file now looks like:

#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

command="/usr/bin/dnscrypt-proxy"
command_args="${DNSCRYPT_OPTS:---config /etc/dnscrypt-proxy/dnscrypt-proxy.toml}"
command_user="${DNSCRYPT_USER:-dnscrypt}:${DNSCRYPT_GROUP:-dnscrypt}"
pidfile="/run/${SVCNAME}.pid"
start_stop_daemon_args="--background --make-pidfile"

depend() {
        use net logger
        provide dns
}

start_pre() {
        checkpath -q -d -m 0775 -o "${command_user}" /var/cache/"${SVCNAME}"
        checkpath -q -d -m 0775 -o "${command_user}" /var/log/"${SVCNAME}"
        setcap cap_net_bind_service=+ep /usr/bin/dnscrypt-proxy
}

@jedisct1

Last message for the day, I promise :) I found this worked well for me with the Chicken and Egg issue:

# default config

pool pool.ntp.org iburst
pool 216.239.35.0 iburst
initstepslew 10 pool.ntp.org 216.239.35.0
driftfile /var/lib/chrony/chrony.drift
rtcsync
chronyc> sources
210 Number of sources = 5
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ time1.google.com              1   6   377   125  -5142us[-5142us] +/-   37ms
^- blue.1e400.net                3   6   377    59  -9558us[-9558us] +/-  178ms
^+ time-b-g.nist.gov             1   6   377   189    +21ms[  +21ms] +/-   72ms
^- 195.21.152.161                2   6   377   125  -9103us[-9103us] +/-  178ms
^* tick.tstearns.net             2   6   377   191  -5556us[-3792us] +/-   37ms

@fcolista

Digging into this more, it is really odd that when the package installs the first time, /var/run/dnscrypt-proxy/dnscrypt-proxy.pid is created and there, but on reboot it is missing. I could not figure it out, so I just made the init.d file look like this:

#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

command="/usr/bin/dnscrypt-proxy"
command_args="${DNSCRYPT_OPTS:---config /etc/dnscrypt-proxy/dnscrypt-proxy.toml}"
command_user="${DNSCRYPT_USER:-dnscrypt}:${DNSCRYPT_GROUP:-dnscrypt}"
pidfile="/run/${SVCNAME}/${SVCNAME}.pid"
start_stop_daemon_args="--background --make-pidfile"

depend() {
    use net logger
    provide dns
}

start_pre() {
    checkpath -q -d -m 0775 -o "${command_user}" \
        /var/cache/"${SVCNAME}" \
        /var/log/"${SVCNAME}" \
        /var/run/"${SVCNAME}"
    setcap cap_net_bind_service=+ep "${command}"
}

Adding "/var/run" into the checkpath fixed it. I'm too much of a APKBUILD / Alpine beginner to debug it more.

Thanks,
Jason

Oh, I'm also finding that we need to add ca-certificates for a depends, as without it, dnscrypt-proxy is moot. I did also find that I ran out of entropy on my rPi, but I don't think we need to add rng-tools as a depends as well.

@JasonSwindle : fixed in the lastest commit.
Thanks for your valuable feedback!

@fcolista

Thank you for the help on this. Ok, this is just downright bothersome. When the init.d script is backed up via lbu, the folder can be created in /var/run/dnscrypt-proxy/ , but when I do it via the APK Package, It fails. There is a race condition I don't understand, and most likely is around my lack of understanding with depend(). At this point, there is no reason to waste time trying to debug dnscrypt-proxy pid in a sub-folder, when in /var/run (/run) is valid and ok. I'm so sorry this has been so bothersome, and with so many edits.

#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

command="/usr/bin/dnscrypt-proxy"
command_args="${DNSCRYPT_OPTS:---config /etc/dnscrypt-proxy/dnscrypt-proxy.toml}"
command_user="${DNSCRYPT_USER:-dnscrypt}:${DNSCRYPT_GROUP:-dnscrypt}"
pidfile="/run/${SVCNAME}.pid"
start_stop_daemon_args="--background --make-pidfile"

depend() {
    use net logger
    provide dns
}

start_pre() {
    checkpath -q -d -m 0775 -o "${command_user}" \
        /var/cache/"${SVCNAME}" \
        /var/log/"${SVCNAME}"
    setcap cap_net_bind_service=+ep "${command}"
}

I removed the subdir /var/run/dnscrypt-proxy from the init and the APKBUILD.
Now should be ok. Thanks!

Hello:

Thank you for your work.

I am running alpine on an i686 box.

uname -ar yields: Linux routerplus3 4.9.65-1-hardened #2-Alpine SMP Mon Nov 27 15:36:15 GMT 2017 i686 Linux

I am running he latest version of dnscrypt-proxy. The command dnscrypt-proxy --version yields:

2.0.9b2

I cannot start dnscrypt-proxy using the command:

/etc/init.d/dnscrypt-proxy start

However I can start it using the following command line:

root #>/usr/bin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dns
crypt-proxy.toml -logfile /var/log/dnscrypt-proxy/dnscrypt-proxy.log

However sometimes the program core dumps. The core dump follows:
/usr/bin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dns
crypt-proxy.toml -logfile /var/log/dnscrypt-proxy/dnscrypt-proxy.log
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x11eb7ab6]

goroutine 26 [running]:
runtime.throw(0x12166261, 0x5)
/usr/lib/go/src/runtime/panic.go:616 +0x77 fp=0x323afbac sp=0x323afba0 pc=0x11df2bb7
runtime.sigpanic()
/usr/lib/go/src/runtime/signal_unix.go:395 +0x1e4 fp=0x323afbd0 sp=0x323afbac pc=0x11e08584
net.(conn).Read(0x323c8f68, 0x3245e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go/src/net/net.go:178 +0xd6 fp=0x323afc00 sp=0x323afbd0 pc=0x11eb7ab6
crypto/tls.(
block).readFromUntil(0x322ea440, 0x21f9b298, 0x323c8f68, 0x5, 0x323c8f68, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:493 +0x77 fp=0x323afc20 sp=0x323afc00 pc=0x11f9c507
crypto/tls.(Conn).readRecord(0x32355b00, 0x122de617, 0x32355ba0, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:595 +0xc3 fp=0x323afd70 sp=0x323afc20 pc=0x11f9c983
crypto/tls.(
Conn).Read(0x32355b00, 0x32443000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:1156 +0xe3 fp=0x323afd9c sp=0x323afd70 pc=0x11f9ffa3
bufio.(Reader).Read(0x322e06c0, 0x323120a0, 0x9, 0x9, 0x0, 0x0, 0x11df1f78)
/usr/lib/go/src/bufio/bufio.go:216 +0x24c fp=0x323afde0 sp=0x323afd9c pc=0x11ef42ec
io.ReadAtLeast(0x122df490, 0x322e06c0, 0x323120a0, 0x9, 0x9, 0x9, 0x122de6e0, 0x11dcb845, 0x11e25225)
/usr/lib/go/src/io/io.go:309 +0x69 fp=0x323afe0c sp=0x323afde0 pc=0x11e25139
io.ReadFull(0x122df490, 0x322e06c0, 0x323120a0, 0x9, 0x9, 0x324400c0, 0x323afe60, 0x32306001)
/usr/lib/go/src/io/io.go:327 +0x46 fp=0x323afe34 sp=0x323afe0c pc=0x11e25266
golang.org/x/net/http2.readFrameHeader(0x323120a0, 0x9, 0x9, 0x122df490, 0x322e06c0, 0x0, 0x0, 0x0, 0x0, 0x2cd)
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/golang.org/x/net/http2/frame.go:237 +0x67 fp=0x323afe6c sp=0x323afe34 pc=0x12125257
golang.org/x/net/http2.(
Framer).ReadFrame(0x32312080, 0x322ea1a0, 0x0, 0x0, 0x0)
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/golang.org/x/net/http2/frame.go:492 +0x8a fp=0x323afef4 sp=0x323afe6c pc=0x12125aca
golang.org/x/net/http2.(clientConnReadLoop).run(0x323affdc, 0x122de234, 0x3232c7dc)
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/golang.org/x/net/http2/transport.go:1477 +0x70 fp=0x323affb0 sp=0x323afef4 pc=0x121346b0
golang.org/x/net/http2.(
ClientConn).readLoop(0x32340480)
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/golang.org/x/net/http2/transport.go:1405 +0x5e fp=0x323affe8 sp=0x323affb0 pc=0x1213409e
runtime.goexit()
/usr/lib/go/src/runtime/asm_386.s:1665 +0x1 fp=0x323affec sp=0x323affe8 pc=0x11e1e291
created by golang.org/x/net/http2.(*Transport).newClientConn
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/golang.org/x/net/http2/transport.go:592 +0x5e8

goroutine 1 [chan receive]:
github.com/kardianos/service.(sysv).Run.func1()
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/github.com/kardianos/service/service_sysv_linux.go:133 +0xc7
github.com/kardianos/service.(
sysv).Run(0x323a6160, 0x11, 0x323f5df8)
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/src/github.com/kardianos/service/service_sysv_linux.go:134 +0xaf
main.main()
/home/buildozer/aports/community/dnscrypt-proxy/src/dnscrypt-proxy-2.0.9b2/dnscrypt-proxy/main.go:73 +0x534

goroutine 20 [syscall]:
os/signal.signal_recv(0x0)
/usr/lib/go/src/runtime/sigqueue.go:139 +0x157
os/signal.loop()
/usr/lib/go/src/os/signal/signal_unix.go:22 +0x1b
created by os/signal.init.0
/usr/lib/go/src/os/signal/signal_unix.go:28 +0x3d

goroutine 21 [IO wait]:
fatal error: unexpected signal during runtime execution
panic during panic

[signal SIGSEGV: segmentation violation code=0x2 addr=0xa9 pc=0x11e13f09]

runtime stack:
runtime.startpanic_m()
/usr/lib/go/src/runtime/panic.go:690 +0x1ab
runtime.startpanic()
/usr/lib/go/src/runtime/panic.go:589 +0x16
runtime.throw(0x121764d3, 0x2a)
/usr/lib/go/src/runtime/panic.go:615 +0x6b
runtime.sigpanic()
/usr/lib/go/src/runtime/signal_unix.go:372 +0x26a
runtime.gentraceback(0xffffffff, 0xffffffff, 0x0, 0x322f6b60, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/runtime/traceback.go:245 +0x11c9
runtime.traceback1(0xffffffff, 0xffffffff, 0x0, 0x322f6b60, 0x0)
/usr/lib/go/src/runtime/traceback.go:684 +0xf7
runtime.traceback(0xffffffff, 0xffffffff, 0x0, 0x322f6b60)
/usr/lib/go/src/runtime/traceback.go:645 +0x42
runtime.tracebackothers(0x3228fa40)
/usr/lib/go/src/runtime/traceback.go:834 +0x14b
runtime.dopanic_m(0x3228fa40, 0x11df2bb7, 0x323afba0)
/usr/lib/go/src/runtime/panic.go:736 +0x2a7

runtime.dopanic.func1()
/usr/lib/go/src/runtime/panic.go:598 +0x2f
runtime.systemstack(0x0)
/usr/lib/go/src/runtime/asm_386.s:464 +0x73
runtime.mstart()
/usr/lib/go/src/runtime/proc.go:1175

@westsuhanic please use the latest version.
Some changes has been made since then.
Thanks

@fcolista

It also looks like we need to update the package to dnscrypt-proxy 2.0.10.

Thanks,
Jason

@JasonSwindle, done

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rprimus picture rprimus  ·  6Comments

JayBrown picture JayBrown  ·  6Comments

jedisct1 picture jedisct1  ·  4Comments

jos1264 picture jos1264  ·  4Comments

Hasshu picture Hasshu  ·  4Comments