Error while adding network server on docker

Hi

I am running the chirpstack on docker. I was able to create entire stack and login but while adding network server as chirpstack-network-server:8000, I am getting an error

chirpstack-application-server_1 | time=“2020-02-12T11:24:17Z” level=warning msg=“creating insecure network-server client” server=“chirpstack-network-server:8000”
chirpstack-application-server_1 | time=“2020-02-12T11:24:20Z” level=warning msg=“grpc: failed dns A record lookup due to lookup chirpstack-network-server on 127.0.0.11:53: dial udp 127.0.0.11:53: operation was canceled.\n”
chirpstack-application-server_1 | time=“2020-02-12T11:24:20Z” level=error msg=“finished unary call with code Unknown” ctx_id=6bd94e3c-4a22-485b-a87d-bea02685969e error=“rpc error: code = Unknown desc = context deadline exceeded” grpc.code=Unknown grpc.method=Create grpc.service=api.NetworkServerService grpc.start_time=“2020-02-12T11:24:17Z” grpc.time_ms=3391.054 peer.address=“127.0.0.1:44128” span.kind=server system=grpc

Any progress on this topic? I face the same issue.

When I open an interactive session to the chirpstack-application-server container and try to ping chirpstack-network-server address is resolved.

So there is an issue the way chirpstack resolves the names?

I’m having this same problem too. From everything I can see the underlying issue is in the go gRPC library with the method it uses to resolve DNS names. And I know it’s specific to gRPC since the servers connect to mosquitto and postgresql just fine which also use DNS names, but fail when trying to use gRPC to communicate between chirpstack programs.

2 Likes

FYI, I submitted a new issue against gRPC for this.

2 Likes

Thanks @evildog for reporting this :slight_smile:

Good find on the net.Dial() vs grpc.DialContext().

1 Like

Did someone manage to solve this already or find a workaround? I experience the same problems.

Hi @evildog. As somebody mentioned in DNS resolution does not work on Docker · Issue #3572 · grpc/grpc-go · GitHub, this could be due to an issue in Alpine Linux (which is used as base layer for the Docker images): nslookup fails in Alpine 3.11.3 · Issue #539 · gliderlabs/docker-alpine · GitHub.

We just switched to Alpine 3.11.3 and now nslookup is failing for us unless we explicitly specify the DNS server IP (which is of course not an option), …

What I will do is pin the used Alpine versions to 3.11.2 for the next releases. Hopefully this fixes the issue!

2 Likes

Hello, is this problem solved? i’ve download the docker version 3 days ago and while the centos is not connected to internet, it’s not possible to add a network server with the GUI (even if i use "chirpstack-network-server:8000) but with my machine is connected to internet, no problem.
how to know which version of alpine is use in my images?
thanks

Think this still may be a problem, Just built new docker images for running on a RPI as still get this issue.

Even using fixed IP address I still get a error log on the network-server:

time="2020-09-07T22:17:42Z" level=warning msg="creating insecure application-server client" server="chirpstack-application-server:8001"
time="2020-09-07T22:17:47Z" level=warning msg="ccResolverWrapper: reporting error to cc: dns: A record lookup error: lookup chirpstack-application-server on 127.0.0.11:53: dial udp 127.0.0.11:53: operation was canceled"
time="2020-09-07T22:17:47Z" level=error msg="gateway: handle gateway stats error" ctx_id=77f140de-4ab3-4499-a27b-196d38db2b0c error="get application-server client error: get application-server client error: create application-server api client error: dial application-server api error: context deadline exceeded"

even when setting the network-server config to:

[join_server.default]
# server="http://chirpstack-application-server:8003"
server="http://172.28.0.6:8003"

some network info from the ns container:

/ # ping chirpstack-application-server
PING chirpstack-application-server (172.28.0.6): 56 data bytes
64 bytes from 172.28.0.6: seq=0 ttl=64 time=0.890 ms
64 bytes from 172.28.0.6: seq=1 ttl=64 time=0.754 ms
^C
--- chirpstack-application-server ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.754/0.822/0.890 ms
/ # nslookup chirpstack-application-server
nslookup: can't resolve '(null)': Name does not resolve

Name:      chirpstack-application-server
Address 1: 172.28.0.6 chirpstack-application-server.internal-network
/ # arp -a
postgresql.internal-network (172.28.0.2) at 02:42:ac:1c:00:02 [ether]  on eth0
? (172.28.0.1) at 02:42:c8:05:8c:d0 [ether]  on eth0
chirpstack-application-server.internal-network (172.28.0.6) at 02:42:ac:1c:00:06 [ether]  on eth0
mosquitto.internal-network (172.28.0.5) at 02:42:ac:1c:00:05 [ether]  on eth0
redis.internal-network (172.28.0.8) at 02:42:ac:1c:00:08 [ether]  on eth0
/ #