[GH-ISSUE #446] 3.17.1: java.lang.NullPointerException with MG_DOCKER_SOLVER_HOST_MACHINE_FALLBACK_ACTIVE: 'false' & no IPv6 #161

Closed
opened 2026-02-26 04:34:14 +03:00 by kerem · 4 comments
Owner

Originally created by @pschiffe on GitHub (May 15, 2024).
Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/446

What is Happening / What is expected

Version 3.17.1 with MG_DOCKER_SOLVER_HOST_MACHINE_FALLBACK_ACTIVE: 'false' seems to stop working for me due to NullPointerException. Dig doesn't return anything, if container has no IPv6:

# dig plausible-clickhouse.docker @127.0.0.1 -p 5300

; <<>> DiG 9.19.18 <<>> plausible-clickhouse.docker @127.0.0.1 -p 5300
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51833
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;plausible-clickhouse.docker.	IN	A

;; AUTHORITY SECTION:
.			86398	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2024051501 1800 900 604800 86400

;; Query time: 27 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP)
;; WHEN: Wed May 15 19:00:05 UTC 2024
;; MSG SIZE  rcvd: 131
# docker inspect plausible-clickhouse
[
    {
 ...
            "Networks": {
                "plausible": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "958b6568547a"
                    ],
                    "NetworkID": "befd81d511296c5ab4efc42c9c5aad8bae01699b8412a84e4d4b60cc3c60da69",
                    "EndpointID": "dcb1fc9049ad8ac9d2db4dd95ac1f3d5f465937bfde515c826d9cb028cee969e",
                    "Gateway": "172.23.0.1",
                    "IPAddress": "172.23.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:17:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

However, it works if container has IPv4 & IPv6:

# dig phpmyadmin.docker @127.0.0.1 -p 5300

; <<>> DiG 9.19.18 <<>> phpmyadmin.docker @127.0.0.1 -p 5300
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62284
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 394efd3d3bc32699 (echoed)
;; QUESTION SECTION:
;phpmyadmin.docker.		IN	A

;; ANSWER SECTION:
phpmyadmin.docker.	30	IN	A	172.19.0.2

;; Query time: 22 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP)
;; WHEN: Wed May 15 19:09:02 UTC 2024
;; MSG SIZE  rcvd: 74

Related to #429 and #442
Worked OK with 3.17.0

Specs

  • OS: Fedora Linux 38
  • Docker Version: docker version
Client:
 Version:           24.0.5
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        %{shortcommit_cli}
 Built:             Sun Aug 27 16:45:35 2023
 OS/Arch:           linux/arm64
 Context:           default

Server:
 Engine:
  Version:          24.0.5
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       %{shortcommit_moby}
  Built:            Sun Aug 27 16:45:35 2023
  OS/Arch:          linux/arm64
  Experimental:     true
 containerd:
  Version:          1.6.19
  GitCommit:        
 runc:
  Version:          1.1.8
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:
  • DPS Version: 3.17.1
    • When running on standalone mode: ./dns-proxy-server --version
    • When using docker: the docker image version or run the following if you are using the latest docker run --rm defreitas/dns-proxy-server --version
  • Attach DPS Log file
19:00:02.938 [Thread-13      ] TRA com.mageddo.dnsproxyserver.server.dns.TCPServer   l=73   m=watchDog                        status=no-clients
19:00:05.898 [Thread-15      ] DEB c.m.d.server.dns.RequestHandlerDefault            l=48   m=solve                           status=solveReq, kind=udp, query=query=A:plausible-clickhouse.docker
19:00:05.899 [Thread-15      ] TRA c.m.dnsproxyserver.server.dns.solver.SolverCache  l=37   m=lambda$handleRes$0              status=lookup, key=A-plausible-clickhouse.docker, req=query=A:plausible-clickhouse.docker
19:00:05.899 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=74   m=solve0                          status=trySolve, solver=SolverSystem, req=query=A:plausible-clickhouse.docker
19:00:05.899 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=81   m=solve0                          status=notSolved, currentSolverTime=0, totalTime=0, solver=SolverSystem, req=query=A:plausible-clickhouse.docker
19:00:05.899 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=74   m=solve0                          status=trySolve, solver=SolverDocker, req=query=A:plausible-clickhouse.docker
19:00:05.900 [Thread-16      ] DEB c.m.d.docker.application.DockerConnectionCheck    l=50   m=updateStatus                    status=updatingDockerStatus, null=false, expired=true
19:00:05.911 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=image-linux-aarch64
19:00:05.912 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.913 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.914 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.915 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.916 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.916 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.917 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.918 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.919 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.920 [Thread-15      ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44   m=buildFromServiceName            status=serviceFindResult, service=null
19:00:05.920 [Thread-15      ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=75   m=findAtPreferredNetworks         status=networkNotFoundForContainer, name=dps
19:00:05.920 [Thread-15      ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=75   m=findAtPreferredNetworks         status=networkNotFoundForContainer, name=bridge
19:00:05.920 [Thread-15      ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=85   m=findAtPreferredNetworks         status=predefinedNetworkNotFound, action=findSecondOption, searchedNetworks=[dps, bridge], container=/plausible-clickhouse
19:00:05.921 [Thread-15      ] DEB c.m.d.d.dataprovider.DockerNetworkFacadeDefault   l=52   m=findByName                      queryName=plausible, foundName=plausible
19:00:05.922 [Thread-15      ] WAR c.m.d.server.dns.RequestHandlerDefault            l=93   m=solve0                          status=solverFailed, currentSolverTime=22, totalTime=22, solver=SolverDocker, query=query=A:plausible-clickhouse.docker, eClass=NullPointerException, msg=null
java.lang.NullPointerException: null
	at java.base@19.0.2/java.util.Objects.requireNonNull(Objects.java:233)
	at java.base@19.0.2/java.util.ImmutableCollections$List12.<init>(ImmutableCollections.java:564)
	at java.base@19.0.2/java.util.List.of(List.java:829)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.dataprovider.mapper.NetworkMapper.of(NetworkMapper.java:14)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.dataprovider.NetworkDAODefault.findByName(NetworkDAODefault.java:38)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findAtAvailableNetworksOptional$3(ContainerSolvingService.java:98)
	at java.base@19.0.2/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base@19.0.2/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base@19.0.2/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1921)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base@19.0.2/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base@19.0.2/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:662)
	at java.base@19.0.2/java.util.stream.ReferencePipeline.min(ReferencePipeline.java:703)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findAtAvailableNetworksOptional(ContainerSolvingService.java:105)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findBestIpMatch$1(ContainerSolvingService.java:65)
	at java.base@19.0.2/java.util.Optional.or(Optional.java:313)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findBestIpMatch(ContainerSolvingService.java:65)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findBestMatch$0(ContainerSolvingService.java:42)
	at java.base@19.0.2/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base@19.0.2/java.util.AbstractList$RandomAccessSpliterator.tryAdvance(AbstractList.java:708)
	at java.base@19.0.2/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base@19.0.2/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base@19.0.2/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base@19.0.2/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findBestMatch(ContainerSolvingService.java:44)
	at com.mageddo.dnsproxyserver.server.dns.solver.SolverDocker.lambda$handle$0(SolverDocker.java:40)
	at com.mageddo.dnsproxyserver.server.dns.solver.HostnameMatcher.match(HostnameMatcher.java:22)
	at com.mageddo.dnsproxyserver.server.dns.solver.SolverDocker.handle(SolverDocker.java:39)
	at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.solve0(RequestHandlerDefault.java:75)
	at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.lambda$handleRes$0(SolverCache.java:38)
	at com.mageddo.commons.caching.LruTTLCache.lambda$computeIfAbsentWithTTL$1(LruTTLCache.java:94)
	at java.base@19.0.2/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
	at com.mageddo.commons.caching.LruTTLCache.lambda$computeIfAbsentWithTTL$2(LruTTLCache.java:88)
	at java.base@19.0.2/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
	at com.mageddo.commons.caching.LruTTLCache.computeIfAbsentWithTTL(LruTTLCache.java:86)
	at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.handleRes(SolverCache.java:36)
	at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.handle(SolverCache.java:31)
	at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.solve(RequestHandlerDefault.java:51)
	at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.handle(RequestHandlerDefault.java:42)
	at com.mageddo.dnsproxyserver.server.dns.UDPServer.handle(UDPServer.java:54)
	at com.mageddo.dnsproxyserver.server.dns.UDPServer.lambda$start0$0(UDPServer.java:42)
	at java.base@19.0.2/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
	at java.base@19.0.2/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base@19.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base@19.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base@19.0.2/java.lang.Thread.run(Thread.java:1589)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
19:00:05.922 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=74   m=solve0                          status=trySolve, solver=SolverLocalDB, req=query=A:plausible-clickhouse.docker
19:00:05.922 [Thread-15      ] TRA com.mageddo.dnsproxyserver.config.ConfigDAOJson   l=184  m=findEnv                         activeEnv=
19:00:05.922 [Thread-15      ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=48   m=lambda$handle$0                 status=partialNotFound, askedHost=plausible-clickhouse.docker, time=0
19:00:05.923 [Thread-15      ] TRA com.mageddo.dnsproxyserver.config.ConfigDAOJson   l=184  m=findEnv                         activeEnv=
19:00:05.923 [Thread-15      ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=48   m=lambda$handle$0                 status=partialNotFound, askedHost=plausible-clickhouse.docker, time=0
19:00:05.923 [Thread-15      ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=72   m=handle                          status=notFound, askedHost=plausible-clickhouse.docker, totalTime=0
19:00:05.923 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=81   m=solve0                          status=notSolved, currentSolverTime=1, totalTime=23, solver=SolverLocalDB, req=query=A:plausible-clickhouse.docker
19:00:05.923 [Thread-15      ] TRA c.m.d.server.dns.RequestHandlerDefault            l=74   m=solve0                          status=trySolve, solver=SolverCachedRemote, req=query=A:plausible-clickhouse.docker
19:00:05.923 [Thread-15      ] DEB c.m.d.server.dns.RequestHandlerDefault            l=87   m=solve0                          status=solved, currentSolverTime=0, totalTime=23, solver=SolverCachedRemote, req=query=A:plausible-clickhouse.docker, res=rc=3, query=A:plausible-clickhouse.docker
19:00:05.923 [Thread-15      ] DEB c.m.d.server.dns.RequestHandlerDefault            l=102  m=solve0                          status=solveSummary, summary=[(SolverSystem,0), (SolverLocalDB,1), (SolverCachedRemote,0)]
19:00:05.923 [Thread-15      ] DEB c.m.dnsproxyserver.server.dns.solver.SolverCache  l=44   m=lambda$handleRes$0              status=hotload, k=A-plausible-clickhouse.docker, ttl=PT20S, simpleMsg=query=A:plausible-clickhouse.docker
19:00:05.923 [Thread-15      ] DEB c.m.d.server.dns.RequestHandlerDefault            l=53   m=solve                           status=solveRes, kind=udp, time=24, res=rc=3, query=A:plausible-clickhouse.docker, req=query=A:plausible-clickhouse.docker
19:00:05.923 [Thread-15      ] DEB com.mageddo.dnsproxyserver.server.dns.UDPServer   l=58   m=handle                          status=success, query=query=A:plausible-clickhouse.docker, res=rc=3, query=A:plausible-clickhouse.docker, serverAddr=/0:0:0:0:0:0:0:0, clientAddr=/172.22.0.1:51667, dataLength=512, datagramLength=68
Originally created by @pschiffe on GitHub (May 15, 2024). Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/446 ### What is Happening / What is expected Version `3.17.1` with `MG_DOCKER_SOLVER_HOST_MACHINE_FALLBACK_ACTIVE: 'false'` seems to stop working for me due to `NullPointerException`. Dig doesn't return anything, if container has no IPv6: ``` # dig plausible-clickhouse.docker @127.0.0.1 -p 5300 ; <<>> DiG 9.19.18 <<>> plausible-clickhouse.docker @127.0.0.1 -p 5300 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51833 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;plausible-clickhouse.docker. IN A ;; AUTHORITY SECTION: . 86398 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2024051501 1800 900 604800 86400 ;; Query time: 27 msec ;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP) ;; WHEN: Wed May 15 19:00:05 UTC 2024 ;; MSG SIZE rcvd: 131 ``` ``` # docker inspect plausible-clickhouse [ { ... "Networks": { "plausible": { "IPAMConfig": null, "Links": null, "Aliases": [ "958b6568547a" ], "NetworkID": "befd81d511296c5ab4efc42c9c5aad8bae01699b8412a84e4d4b60cc3c60da69", "EndpointID": "dcb1fc9049ad8ac9d2db4dd95ac1f3d5f465937bfde515c826d9cb028cee969e", "Gateway": "172.23.0.1", "IPAddress": "172.23.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:17:00:02", "DriverOpts": null } } } } ] ``` However, it works if container has IPv4 & IPv6: ``` # dig phpmyadmin.docker @127.0.0.1 -p 5300 ; <<>> DiG 9.19.18 <<>> phpmyadmin.docker @127.0.0.1 -p 5300 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62284 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 394efd3d3bc32699 (echoed) ;; QUESTION SECTION: ;phpmyadmin.docker. IN A ;; ANSWER SECTION: phpmyadmin.docker. 30 IN A 172.19.0.2 ;; Query time: 22 msec ;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP) ;; WHEN: Wed May 15 19:09:02 UTC 2024 ;; MSG SIZE rcvd: 74 ``` Related to #429 and #442 Worked OK with 3.17.0 ### Specs * OS: Fedora Linux 38 * Docker Version: `docker version` ``` Client: Version: 24.0.5 API version: 1.43 Go version: go1.20.7 Git commit: %{shortcommit_cli} Built: Sun Aug 27 16:45:35 2023 OS/Arch: linux/arm64 Context: default Server: Engine: Version: 24.0.5 API version: 1.43 (minimum version 1.12) Go version: go1.20.7 Git commit: %{shortcommit_moby} Built: Sun Aug 27 16:45:35 2023 OS/Arch: linux/arm64 Experimental: true containerd: Version: 1.6.19 GitCommit: runc: Version: 1.1.8 GitCommit: docker-init: Version: 0.19.0 GitCommit: ``` * DPS Version: `3.17.1` * When running on standalone mode: `./dns-proxy-server --version` * When using docker: the docker image version or run the following if you are using the latest `docker run --rm defreitas/dns-proxy-server --version` * Attach DPS Log file ``` 19:00:02.938 [Thread-13 ] TRA com.mageddo.dnsproxyserver.server.dns.TCPServer l=73 m=watchDog status=no-clients 19:00:05.898 [Thread-15 ] DEB c.m.d.server.dns.RequestHandlerDefault l=48 m=solve status=solveReq, kind=udp, query=query=A:plausible-clickhouse.docker 19:00:05.899 [Thread-15 ] TRA c.m.dnsproxyserver.server.dns.solver.SolverCache l=37 m=lambda$handleRes$0 status=lookup, key=A-plausible-clickhouse.docker, req=query=A:plausible-clickhouse.docker 19:00:05.899 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=74 m=solve0 status=trySolve, solver=SolverSystem, req=query=A:plausible-clickhouse.docker 19:00:05.899 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=81 m=solve0 status=notSolved, currentSolverTime=0, totalTime=0, solver=SolverSystem, req=query=A:plausible-clickhouse.docker 19:00:05.899 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=74 m=solve0 status=trySolve, solver=SolverDocker, req=query=A:plausible-clickhouse.docker 19:00:05.900 [Thread-16 ] DEB c.m.d.docker.application.DockerConnectionCheck l=50 m=updateStatus status=updatingDockerStatus, null=false, expired=true 19:00:05.911 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=image-linux-aarch64 19:00:05.912 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.913 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.914 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.915 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.916 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.916 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.917 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.918 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.919 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.920 [Thread-15 ] TRA c.m.d.server.dns.solver.docker.dataprovider.Dockerl=44 m=buildFromServiceName status=serviceFindResult, service=null 19:00:05.920 [Thread-15 ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=75 m=findAtPreferredNetworks status=networkNotFoundForContainer, name=dps 19:00:05.920 [Thread-15 ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=75 m=findAtPreferredNetworks status=networkNotFoundForContainer, name=bridge 19:00:05.920 [Thread-15 ] DEB c.m.d.s.d.s.d.application.ContainerSolvingService l=85 m=findAtPreferredNetworks status=predefinedNetworkNotFound, action=findSecondOption, searchedNetworks=[dps, bridge], container=/plausible-clickhouse 19:00:05.921 [Thread-15 ] DEB c.m.d.d.dataprovider.DockerNetworkFacadeDefault l=52 m=findByName queryName=plausible, foundName=plausible 19:00:05.922 [Thread-15 ] WAR c.m.d.server.dns.RequestHandlerDefault l=93 m=solve0 status=solverFailed, currentSolverTime=22, totalTime=22, solver=SolverDocker, query=query=A:plausible-clickhouse.docker, eClass=NullPointerException, msg=null java.lang.NullPointerException: null at java.base@19.0.2/java.util.Objects.requireNonNull(Objects.java:233) at java.base@19.0.2/java.util.ImmutableCollections$List12.<init>(ImmutableCollections.java:564) at java.base@19.0.2/java.util.List.of(List.java:829) at com.mageddo.dnsproxyserver.server.dns.solver.docker.dataprovider.mapper.NetworkMapper.of(NetworkMapper.java:14) at com.mageddo.dnsproxyserver.server.dns.solver.docker.dataprovider.NetworkDAODefault.findByName(NetworkDAODefault.java:38) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findAtAvailableNetworksOptional$3(ContainerSolvingService.java:98) at java.base@19.0.2/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base@19.0.2/java.util.Iterator.forEachRemaining(Iterator.java:133) at java.base@19.0.2/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1921) at java.base@19.0.2/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base@19.0.2/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base@19.0.2/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base@19.0.2/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base@19.0.2/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:662) at java.base@19.0.2/java.util.stream.ReferencePipeline.min(ReferencePipeline.java:703) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findAtAvailableNetworksOptional(ContainerSolvingService.java:105) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findBestIpMatch$1(ContainerSolvingService.java:65) at java.base@19.0.2/java.util.Optional.or(Optional.java:313) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findBestIpMatch(ContainerSolvingService.java:65) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.lambda$findBestMatch$0(ContainerSolvingService.java:42) at java.base@19.0.2/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base@19.0.2/java.util.AbstractList$RandomAccessSpliterator.tryAdvance(AbstractList.java:708) at java.base@19.0.2/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) at java.base@19.0.2/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) at java.base@19.0.2/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) at java.base@19.0.2/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base@19.0.2/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) at java.base@19.0.2/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base@19.0.2/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) at com.mageddo.dnsproxyserver.server.dns.solver.docker.application.ContainerSolvingService.findBestMatch(ContainerSolvingService.java:44) at com.mageddo.dnsproxyserver.server.dns.solver.SolverDocker.lambda$handle$0(SolverDocker.java:40) at com.mageddo.dnsproxyserver.server.dns.solver.HostnameMatcher.match(HostnameMatcher.java:22) at com.mageddo.dnsproxyserver.server.dns.solver.SolverDocker.handle(SolverDocker.java:39) at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.solve0(RequestHandlerDefault.java:75) at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.lambda$handleRes$0(SolverCache.java:38) at com.mageddo.commons.caching.LruTTLCache.lambda$computeIfAbsentWithTTL$1(LruTTLCache.java:94) at java.base@19.0.2/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916) at com.mageddo.commons.caching.LruTTLCache.lambda$computeIfAbsentWithTTL$2(LruTTLCache.java:88) at java.base@19.0.2/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916) at com.mageddo.commons.caching.LruTTLCache.computeIfAbsentWithTTL(LruTTLCache.java:86) at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.handleRes(SolverCache.java:36) at com.mageddo.dnsproxyserver.server.dns.solver.SolverCache.handle(SolverCache.java:31) at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.solve(RequestHandlerDefault.java:51) at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault.handle(RequestHandlerDefault.java:42) at com.mageddo.dnsproxyserver.server.dns.UDPServer.handle(UDPServer.java:54) at com.mageddo.dnsproxyserver.server.dns.UDPServer.lambda$start0$0(UDPServer.java:42) at java.base@19.0.2/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base@19.0.2/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base@19.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base@19.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base@19.0.2/java.lang.Thread.run(Thread.java:1589) at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775) at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203) 19:00:05.922 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=74 m=solve0 status=trySolve, solver=SolverLocalDB, req=query=A:plausible-clickhouse.docker 19:00:05.922 [Thread-15 ] TRA com.mageddo.dnsproxyserver.config.ConfigDAOJson l=184 m=findEnv activeEnv= 19:00:05.922 [Thread-15 ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=48 m=lambda$handle$0 status=partialNotFound, askedHost=plausible-clickhouse.docker, time=0 19:00:05.923 [Thread-15 ] TRA com.mageddo.dnsproxyserver.config.ConfigDAOJson l=184 m=findEnv activeEnv= 19:00:05.923 [Thread-15 ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=48 m=lambda$handle$0 status=partialNotFound, askedHost=plausible-clickhouse.docker, time=0 19:00:05.923 [Thread-15 ] TRA c.m.dnsproxyserver.server.dns.solver.SolverLocalDBl=72 m=handle status=notFound, askedHost=plausible-clickhouse.docker, totalTime=0 19:00:05.923 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=81 m=solve0 status=notSolved, currentSolverTime=1, totalTime=23, solver=SolverLocalDB, req=query=A:plausible-clickhouse.docker 19:00:05.923 [Thread-15 ] TRA c.m.d.server.dns.RequestHandlerDefault l=74 m=solve0 status=trySolve, solver=SolverCachedRemote, req=query=A:plausible-clickhouse.docker 19:00:05.923 [Thread-15 ] DEB c.m.d.server.dns.RequestHandlerDefault l=87 m=solve0 status=solved, currentSolverTime=0, totalTime=23, solver=SolverCachedRemote, req=query=A:plausible-clickhouse.docker, res=rc=3, query=A:plausible-clickhouse.docker 19:00:05.923 [Thread-15 ] DEB c.m.d.server.dns.RequestHandlerDefault l=102 m=solve0 status=solveSummary, summary=[(SolverSystem,0), (SolverLocalDB,1), (SolverCachedRemote,0)] 19:00:05.923 [Thread-15 ] DEB c.m.dnsproxyserver.server.dns.solver.SolverCache l=44 m=lambda$handleRes$0 status=hotload, k=A-plausible-clickhouse.docker, ttl=PT20S, simpleMsg=query=A:plausible-clickhouse.docker 19:00:05.923 [Thread-15 ] DEB c.m.d.server.dns.RequestHandlerDefault l=53 m=solve status=solveRes, kind=udp, time=24, res=rc=3, query=A:plausible-clickhouse.docker, req=query=A:plausible-clickhouse.docker 19:00:05.923 [Thread-15 ] DEB com.mageddo.dnsproxyserver.server.dns.UDPServer l=58 m=handle status=success, query=query=A:plausible-clickhouse.docker, res=rc=3, query=A:plausible-clickhouse.docker, serverAddr=/0:0:0:0:0:0:0:0, clientAddr=/172.22.0.1:51667, dataLength=512, datagramLength=68 ```
kerem 2026-02-26 04:34:14 +03:00
Author
Owner

@mageddo commented on GitHub (May 22, 2024):

Probably because findGatewayIp(n, IP.Version.IPV6) is returning null and List.of(null) throws NPE. A unit test is missing there.

github.com/mageddo/dns-proxy-server@4579c48c15/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/docker/dataprovider/mapper/NetworkMapper.java (L14-L17)

<!-- gh-comment-id:2124734628 --> @mageddo commented on GitHub (May 22, 2024): Probably because `findGatewayIp(n, IP.Version.IPV6)` is returning null and `List.of(null)` throws NPE. A unit test is missing there. https://github.com/mageddo/dns-proxy-server/blob/4579c48c15079bad720a8f61c4e58a6a41aab9cc/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/docker/dataprovider/mapper/NetworkMapper.java#L14-L17
Author
Owner

@mageddo commented on GitHub (May 22, 2024):

I don't have much time right now, I'm fixing this specific issue I've found and generating a new release at #448 , can you check if it fixes the whole scenario?

<!-- gh-comment-id:2124761797 --> @mageddo commented on GitHub (May 22, 2024): I don't have much time right now, I'm fixing this specific issue I've found and generating a new release at #448 , can you check if it fixes the whole scenario?
Author
Owner

@pschiffe commented on GitHub (May 22, 2024):

Sure, I'll let you know.

<!-- gh-comment-id:2124768360 --> @pschiffe commented on GitHub (May 22, 2024): Sure, I'll let you know.
Author
Owner

@pschiffe commented on GitHub (May 22, 2024):

LGTM, thank you:

$ dig plausible-clickhouse.docker @127.0.0.1 -p 5300

; <<>> DiG 9.19.22 <<>> plausible-clickhouse.docker @127.0.0.1 -p 5300
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54931
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;plausible-clickhouse.docker.	IN	A

;; ANSWER SECTION:
plausible-clickhouse.docker. 30	IN	A	172.23.0.3

;; Query time: 2 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP)
;; WHEN: Wed May 22 15:49:58 UTC 2024
;; MSG SIZE  rcvd: 72

Resolved in https://github.com/mageddo/dns-proxy-server/releases/tag/3.17.2-snapshot

<!-- gh-comment-id:2125136852 --> @pschiffe commented on GitHub (May 22, 2024): LGTM, thank you: ``` $ dig plausible-clickhouse.docker @127.0.0.1 -p 5300 ; <<>> DiG 9.19.22 <<>> plausible-clickhouse.docker @127.0.0.1 -p 5300 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54931 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;plausible-clickhouse.docker. IN A ;; ANSWER SECTION: plausible-clickhouse.docker. 30 IN A 172.23.0.3 ;; Query time: 2 msec ;; SERVER: 127.0.0.1#5300(127.0.0.1) (UDP) ;; WHEN: Wed May 22 15:49:58 UTC 2024 ;; MSG SIZE rcvd: 72 ``` Resolved in https://github.com/mageddo/dns-proxy-server/releases/tag/3.17.2-snapshot
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/dns-proxy-server-mageddo#161
No description provided.