[GH-ISSUE #511] DNS stops responding #175

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

Originally created by @rayout on GitHub (Jul 12, 2024).
Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/511

What is Happening

DNS stops responding at random times. It just freezes.
In this case, it can work for quite a long time before freezing

Specs

  • Docker version 26.1.3, build b72abbb
  • DPS Version:
    • defreitas/dns-proxy-server:3.24.0-snapshotproxy-server --version`
  • OS: [e.g. Ubuntu 24.04]

image_2024-07-12_11-47-15

image

Originally created by @rayout on GitHub (Jul 12, 2024). Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/511 ## What is Happening DNS stops responding at random times. It just freezes. In this case, it can work for quite a long time before freezing ## Specs * Docker version 26.1.3, build b72abbb * DPS Version: * defreitas/dns-proxy-server:3.24.0-snapshotproxy-server --version` * OS: [e.g. Ubuntu 24.04] ![image_2024-07-12_11-47-15](https://github.com/user-attachments/assets/1d6ef999-a7a9-4189-add5-ba35ed0d06aa) ![image](https://github.com/user-attachments/assets/ed7c73ca-aa52-48a1-89f9-6efc63167253)
kerem 2026-02-26 04:34:17 +03:00
Author
Owner

@rayout commented on GitHub (Jul 15, 2024):

image

Today it froze again

<!-- gh-comment-id:2227809524 --> @rayout commented on GitHub (Jul 15, 2024): ![image](https://github.com/user-attachments/assets/8eb20745-307d-48f4-bc90-0e462884a1c3) Today it froze again
Author
Owner

@mageddo commented on GitHub (Jul 15, 2024):

Hey @rayout I will need the full log to debug what is happening to cause this behavior, can you share it? docker logs ${CONTAINER_ID} &> logs.log, please enable TRACE log level to give more details.

Another question: From which version did you notice this behavior?

<!-- gh-comment-id:2229036080 --> @mageddo commented on GitHub (Jul 15, 2024): Hey @rayout I will need the full log to debug what is happening to cause this behavior, can you share it? `docker logs ${CONTAINER_ID} &> logs.log`, please enable **TRACE** log level to give more details. Another question: From which version did you notice this behavior?
Author
Owner

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

I will keep using DPS to see if I also get the issue

<!-- gh-comment-id:2242831906 --> @mageddo commented on GitHub (Jul 22, 2024): I will keep using DPS to see if I also get the issue
Author
Owner

@dmekhov commented on GitHub (Jul 30, 2024):

Sometimes (rarely) I also face the same (maybe different) issue (dns service stops answering) .

I have that in my logs (at 3.24.0 version):

Exception in thread "dnsjava NIO selector" java.lang.OutOfMemoryError: Garbage-collected heap size exceeded. Consider increasing the maximum Java heap size, for example with '-Xmx'.
<!-- gh-comment-id:2258404947 --> @dmekhov commented on GitHub (Jul 30, 2024): Sometimes (rarely) I also face the same (maybe different) issue (dns service stops answering) . I have that in my logs (at 3.24.0 version): ``` Exception in thread "dnsjava NIO selector" java.lang.OutOfMemoryError: Garbage-collected heap size exceeded. Consider increasing the maximum Java heap size, for example with '-Xmx'. ```
Author
Owner

@mageddo commented on GitHub (Jul 30, 2024):

@dmekhov @rayout it can be related, DPS default heap size is set to 10m. You can test if increase the value fixes the issue for you by running

$ docker run  defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m
<!-- gh-comment-id:2258559352 --> @mageddo commented on GitHub (Jul 30, 2024): @dmekhov @rayout it can be related, DPS default heap size is set to 10m. You can test if increase the value fixes the issue for you by running ``` $ docker run defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m ```
Author
Owner

@dmekhov commented on GitHub (Jul 30, 2024):

You can test if increase the value fixes the issue for you by running

$ docker run  defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m

Can I use env variables to configure it? (JAVA_OPTS, JVM_OPTS, etc ?)

I'm using docker compose setup.

(for now I set it via the command property and will check if it helps)

<!-- gh-comment-id:2258577718 --> @dmekhov commented on GitHub (Jul 30, 2024): > You can test if increase the value fixes the issue for you by running > > ``` > $ docker run defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m > ``` Can I use env variables to configure it? (`JAVA_OPTS`, `JVM_OPTS`, etc ?) I'm using docker compose setup. (for now I set it via the command property and will check if it helps)
Author
Owner

@mageddo commented on GitHub (Jul 30, 2024):

I'm afraid you can't use the JVM env to configure native image binaries, but you can use the command option at the docker-compose file

services:
  dps:
    image: defreitas/dns-proxy-server:3.24.0-snapshot
    command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m
<!-- gh-comment-id:2258597711 --> @mageddo commented on GitHub (Jul 30, 2024): I'm afraid you can't use the JVM env to configure native image binaries, but you can use the `command` option at the docker-compose file ```yaml services: dps: image: defreitas/dns-proxy-server:3.24.0-snapshot command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m ```
Author
Owner

@dmekhov commented on GitHub (Jul 30, 2024):

but you can use the command option at the docker-compose file

Yes, thanks, I use it now.

Ok, I'll be watching the result (but this error didn't happen often for me, so it can take a while)

<!-- gh-comment-id:2258609375 --> @dmekhov commented on GitHub (Jul 30, 2024): > but you can use the `command` option at the docker-compose file Yes, thanks, I use it now. Ok, I'll be watching the result (but this error didn't happen often for me, so it can take a while)
Author
Owner

@mageddo commented on GitHub (Jul 30, 2024):

DPS got stuck today for me, I also got java.lang.OutOfMemoryError errr at the logs.

logs.txt

<!-- gh-comment-id:2259143639 --> @mageddo commented on GitHub (Jul 30, 2024): DPS got stuck today for me, I also got `java.lang.OutOfMemoryError` errr at the logs. [logs.txt](https://github.com/user-attachments/files/16433156/logs.txt)
Author
Owner

@mageddo commented on GitHub (Jul 30, 2024):

FYI: Just released DPS 3.25.0, it increases resources utilization optimization, maybe it can fix the issue without the need of increasing the heap size.

<!-- gh-comment-id:2259150293 --> @mageddo commented on GitHub (Jul 30, 2024): FYI: Just released DPS `3.25.0`, it increases resources utilization optimization, maybe it can fix the issue without the need of increasing the heap size.
Author
Owner

@mageddo commented on GitHub (Jul 31, 2024):

I reproduced the freezing scenario, reported by @rayout , it is different from the reported by @dmekhov , they are two different root causes causing the same behavior:

OutOfMemoryError

Scenario

When receiving a high number of requests considering the actual memory limits set, sometimes the heap exceed the size causing DPS freezing.

Solution

Optimizations were made at #436 version: 3.25.1

Increase Heap Size
services:
  dps:
    image: defreitas/dns-proxy-server:3.24.0-snapshot
    command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m
docker run  defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m

Random Freezing due deadlock

When receiving a high number of concurrent requests, the DPS cache can cause a deadlock, eventually locking all it's threads and freezing DPS

Solution

Fixes was made at #522, version 3.25.2

<!-- gh-comment-id:2260484033 --> @mageddo commented on GitHub (Jul 31, 2024): I reproduced the freezing scenario, reported by @rayout , it is different from the reported by @dmekhov , they are two different root causes causing the same behavior: ## OutOfMemoryError ### Scenario When receiving a high number of requests considering the actual memory limits set, sometimes the heap exceed the size causing DPS freezing. #### Solution Optimizations were made at #436 version: `3.25.1` ##### Increase Heap Size ```yaml services: dps: image: defreitas/dns-proxy-server:3.24.0-snapshot command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m ``` ```bash docker run defreitas/dns-proxy-server:3.24.0-snapshot -XX:MaxHeapSize=50m -XX:MaxNewSize=10m ``` ## Random Freezing due deadlock When receiving a high number of concurrent requests, the DPS cache can cause a deadlock, eventually locking all it's threads and freezing DPS ### Solution Fixes was made at #522, version `3.25.2`
Author
Owner

@mageddo commented on GitHub (Jul 31, 2024):

A could have optimization will also be made at #524

<!-- gh-comment-id:2260493737 --> @mageddo commented on GitHub (Jul 31, 2024): A could have optimization will also be made at #524
Author
Owner

@rayout commented on GitHub (Aug 2, 2024):

Can not check new version. Have this error:

dns-1  | Exception in thread "main" java.lang.IllegalStateException: SSMSA
dns-1  |        at com.github.benmanes.caffeine.cache.LocalCacheFactory.newFactory(LocalCacheFactory.java:114)
dns-1  |        at java.base@21.0.2/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
dns-1  |        at com.github.benmanes.caffeine.cache.LocalCacheFactory.loadFactory(LocalCacheFactory.java:97)
dns-1  |        at com.github.benmanes.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:46)
dns-1  |        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3953)
dns-1  |        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3949)
dns-1  |        at com.github.benmanes.caffeine.cache.Caffeine.build(Caffeine.java:1048)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverCache.<init>(SolverCache.java:36)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver.remoteCache(ModuleSolver.java:41)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.remoteCache(ModuleSolver_RemoteCacheFactory.java:35)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.get(ModuleSolver_RemoteCacheFactory.java:27)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.get(ModuleSolver_RemoteCacheFactory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverCacheFactory_Factory.get(SolverCacheFactory_Factory.java:36)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverCacheFactory_Factory.get(SolverCacheFactory_Factory.java:10)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.dataprovider.SolverConsistencyGuaranteeDAOImpl_Factory.get(SolverConsistencyGuaranteeDAOImpl_Factory.java:34)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.dataprovider.SolverConsistencyGuaranteeDAOImpl_Factory.get(SolverConsistencyGuaranteeDAOImpl_Factory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFactory_Factory.get(CircuitBreakerFactory_Factory.java:42)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFactory_Factory.get(CircuitBreakerFactory_Factory.java:12)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFailSafeService_Factory.get(CircuitBreakerFailSafeService_Factory.java:33)
dns-1  |        at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFailSafeService_Factory.get(CircuitBreakerFailSafeService_Factory.java:10)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverRemote_Factory.get(SolverRemote_Factory.java:37)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverRemote_Factory.get(SolverRemote_Factory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverCachedRemote_Factory.get(SolverCachedRemote_Factory.java:36)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverCachedRemote_Factory.get(SolverCachedRemote_Factory.java:10)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversFactory.get(ModuleSolver_SolversFactory.java:50)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversFactory.get(ModuleSolver_SolversFactory.java:17)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at dagger.internal.SetFactory.get(SetFactory.java:119)
dns-1  |        at dagger.internal.SetFactory.get(SetFactory.java:37)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversInstanceFactory.get(ModuleSolver_SolversInstanceFactory.java:36)
dns-1  |        at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversInstanceFactory.get(ModuleSolver_SolversInstanceFactory.java:14)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverProvider_Factory.get(SolverProvider_Factory.java:33)
dns-1  |        at com.mageddo.dnsproxyserver.solver.SolverProvider_Factory.get(SolverProvider_Factory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at dagger.internal.DelegateFactory.get(DelegateFactory.java:36)
dns-1  |        at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault_Factory.get(RequestHandlerDefault_Factory.java:38)
dns-1  |        at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault_Factory.get(RequestHandlerDefault_Factory.java:12)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsserver.UDPServerPool_Factory.get(UDPServerPool_Factory.java:32)
dns-1  |        at com.mageddo.dnsserver.UDPServerPool_Factory.get(UDPServerPool_Factory.java:10)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsserver.SimpleServer_Factory.get(SimpleServer_Factory.java:41)
dns-1  |        at com.mageddo.dnsserver.SimpleServer_Factory.get(SimpleServer_Factory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.server.dns.ServerStarter_Factory.get(ServerStarter_Factory.java:33)
dns-1  |        at com.mageddo.dnsproxyserver.server.dns.ServerStarter_Factory.get(ServerStarter_Factory.java:11)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.server.Starter_Factory.get(Starter_Factory.java:43)
dns-1  |        at com.mageddo.dnsproxyserver.server.Starter_Factory.get(Starter_Factory.java:14)
dns-1  |        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
dns-1  |        at com.mageddo.dnsproxyserver.di.DaggerContext$ContextImpl.starter(DaggerContext.java:384)
dns-1  |        at com.mageddo.dnsproxyserver.di.Context.start(Context.java:56)
dns-1  |        at com.mageddo.dnsproxyserver.App.startContext(App.java:65)
dns-1  |        at com.mageddo.dnsproxyserver.App.start(App.java:40)
dns-1  |        at com.mageddo.dnsproxyserver.App.main(App.java:25)
dns-1  |        at java.base@21.0.2/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
dns-1  | Caused by: java.lang.ClassNotFoundException: com.github.benmanes.caffeine.cache.SSMSA
dns-1  |        at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:122)
dns-1  |        at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:86)
dns-1  |        at java.base@21.0.2/java.lang.Class.forName(DynamicHub.java:1356)
dns-1  |        at java.base@21.0.2/java.lang.Class.forName(DynamicHub.java:1345)
dns-1  |        at java.base@21.0.2/java.lang.invoke.MethodHandles$Lookup.findClass(MethodHandles.java:2869)
dns-1  |        at com.github.benmanes.caffeine.cache.LocalCacheFactory.newFactory(LocalCacheFactory.java:104)
dns-1  |        ... 62 more
<!-- gh-comment-id:2265962476 --> @rayout commented on GitHub (Aug 2, 2024): Can not check new version. Have this error: ``` dns-1 | Exception in thread "main" java.lang.IllegalStateException: SSMSA dns-1 | at com.github.benmanes.caffeine.cache.LocalCacheFactory.newFactory(LocalCacheFactory.java:114) dns-1 | at java.base@21.0.2/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) dns-1 | at com.github.benmanes.caffeine.cache.LocalCacheFactory.loadFactory(LocalCacheFactory.java:97) dns-1 | at com.github.benmanes.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:46) dns-1 | at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3953) dns-1 | at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3949) dns-1 | at com.github.benmanes.caffeine.cache.Caffeine.build(Caffeine.java:1048) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverCache.<init>(SolverCache.java:36) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver.remoteCache(ModuleSolver.java:41) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.remoteCache(ModuleSolver_RemoteCacheFactory.java:35) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.get(ModuleSolver_RemoteCacheFactory.java:27) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_RemoteCacheFactory.get(ModuleSolver_RemoteCacheFactory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverCacheFactory_Factory.get(SolverCacheFactory_Factory.java:36) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverCacheFactory_Factory.get(SolverCacheFactory_Factory.java:10) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.dataprovider.SolverConsistencyGuaranteeDAOImpl_Factory.get(SolverConsistencyGuaranteeDAOImpl_Factory.java:34) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.dataprovider.SolverConsistencyGuaranteeDAOImpl_Factory.get(SolverConsistencyGuaranteeDAOImpl_Factory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFactory_Factory.get(CircuitBreakerFactory_Factory.java:42) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFactory_Factory.get(CircuitBreakerFactory_Factory.java:12) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFailSafeService_Factory.get(CircuitBreakerFailSafeService_Factory.java:33) dns-1 | at com.mageddo.dnsproxyserver.solver.remote.application.CircuitBreakerFailSafeService_Factory.get(CircuitBreakerFailSafeService_Factory.java:10) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverRemote_Factory.get(SolverRemote_Factory.java:37) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverRemote_Factory.get(SolverRemote_Factory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverCachedRemote_Factory.get(SolverCachedRemote_Factory.java:36) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverCachedRemote_Factory.get(SolverCachedRemote_Factory.java:10) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversFactory.get(ModuleSolver_SolversFactory.java:50) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversFactory.get(ModuleSolver_SolversFactory.java:17) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at dagger.internal.SetFactory.get(SetFactory.java:119) dns-1 | at dagger.internal.SetFactory.get(SetFactory.java:37) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversInstanceFactory.get(ModuleSolver_SolversInstanceFactory.java:36) dns-1 | at com.mageddo.dnsproxyserver.di.module.ModuleSolver_SolversInstanceFactory.get(ModuleSolver_SolversInstanceFactory.java:14) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverProvider_Factory.get(SolverProvider_Factory.java:33) dns-1 | at com.mageddo.dnsproxyserver.solver.SolverProvider_Factory.get(SolverProvider_Factory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at dagger.internal.DelegateFactory.get(DelegateFactory.java:36) dns-1 | at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault_Factory.get(RequestHandlerDefault_Factory.java:38) dns-1 | at com.mageddo.dnsproxyserver.server.dns.RequestHandlerDefault_Factory.get(RequestHandlerDefault_Factory.java:12) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsserver.UDPServerPool_Factory.get(UDPServerPool_Factory.java:32) dns-1 | at com.mageddo.dnsserver.UDPServerPool_Factory.get(UDPServerPool_Factory.java:10) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsserver.SimpleServer_Factory.get(SimpleServer_Factory.java:41) dns-1 | at com.mageddo.dnsserver.SimpleServer_Factory.get(SimpleServer_Factory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.server.dns.ServerStarter_Factory.get(ServerStarter_Factory.java:33) dns-1 | at com.mageddo.dnsproxyserver.server.dns.ServerStarter_Factory.get(ServerStarter_Factory.java:11) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.server.Starter_Factory.get(Starter_Factory.java:43) dns-1 | at com.mageddo.dnsproxyserver.server.Starter_Factory.get(Starter_Factory.java:14) dns-1 | at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) dns-1 | at com.mageddo.dnsproxyserver.di.DaggerContext$ContextImpl.starter(DaggerContext.java:384) dns-1 | at com.mageddo.dnsproxyserver.di.Context.start(Context.java:56) dns-1 | at com.mageddo.dnsproxyserver.App.startContext(App.java:65) dns-1 | at com.mageddo.dnsproxyserver.App.start(App.java:40) dns-1 | at com.mageddo.dnsproxyserver.App.main(App.java:25) dns-1 | at java.base@21.0.2/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH) dns-1 | Caused by: java.lang.ClassNotFoundException: com.github.benmanes.caffeine.cache.SSMSA dns-1 | at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:122) dns-1 | at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:86) dns-1 | at java.base@21.0.2/java.lang.Class.forName(DynamicHub.java:1356) dns-1 | at java.base@21.0.2/java.lang.Class.forName(DynamicHub.java:1345) dns-1 | at java.base@21.0.2/java.lang.invoke.MethodHandles$Lookup.findClass(MethodHandles.java:2869) dns-1 | at com.github.benmanes.caffeine.cache.LocalCacheFactory.newFactory(LocalCacheFactory.java:104) dns-1 | ... 62 more ```
Author
Owner

@mageddo commented on GitHub (Aug 7, 2024):

Sorry for that, fixed on 3.25.10, can you check it? @rayout

<!-- gh-comment-id:2272549090 --> @mageddo commented on GitHub (Aug 7, 2024): Sorry for that, fixed on `3.25.10`, can you check it? @rayout
Author
Owner

@rayout commented on GitHub (Sep 11, 2024):

Thank you! I tested it for 2 weeks. Everything works great.
After 14 days, it froze with the error: "Garbage-collected heap size exceeded. Consider increasing the maximum Java heap size."
I am using version 3.25.10-snapshot. The startup settings are: "command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m."

<!-- gh-comment-id:2343242115 --> @rayout commented on GitHub (Sep 11, 2024): Thank you! I tested it for 2 weeks. Everything works great. After 14 days, it froze with the error: "Garbage-collected heap size exceeded. Consider increasing the maximum Java heap size." I am using version 3.25.10-snapshot. The startup settings are: "command: -XX:MaxHeapSize=50m -XX:MaxNewSize=10m."
Author
Owner

@mageddo commented on GitHub (Sep 11, 2024):

Thanks for your feedback, seems like the freezing scenario is fixed then.

Talking about the Heap Size, please keep calibrating to find an optimal setting, I can consider change the default value in the future.

<!-- gh-comment-id:2343585509 --> @mageddo commented on GitHub (Sep 11, 2024): Thanks for your feedback, seems like the freezing scenario is fixed then. Talking about the Heap Size, please keep calibrating to find an optimal setting, I can consider change the default value in the future.
Author
Owner

@rayout commented on GitHub (Sep 19, 2024):

I think we can close the task. Thank you for help!

<!-- gh-comment-id:2360480281 --> @rayout commented on GitHub (Sep 19, 2024): I think we can close the task. Thank you for help!
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#175
No description provided.