Skip to content

fixes: unrecoverable session not found exception#243

Merged
mattisonchao merged 16 commits intomainfrom
fix/session_not_found
Nov 11, 2025
Merged

fixes: unrecoverable session not found exception#243
mattisonchao merged 16 commits intomainfrom
fix/session_not_found

Conversation

@mattisonchao
Copy link
Member

Motivation

The exception is as follow can lead the future never complete.

2025-11-10T17:02:41,628+0000 [oxia-client-1-1] WARN  io.oxia.client.session.Session - receive error when send keep-alive request
java.net.URISyntaxException: Expected authority at index 2: //
	at java.base/java.net.URI$Parser.fail(Unknown Source) ~[?:?]
	at java.base/java.net.URI$Parser.failExpecting(Unknown Source) ~[?:?]
	at java.base/java.net.URI$Parser.parseHierarchical(Unknown Source) ~[?:?]
	at java.base/java.net.URI$Parser.parse(Unknown Source) ~[?:?]
	at java.base/java.net.URI.<init>(Unknown Source) ~[?:?]
	at java.base/java.net.URI.create(Unknown Source) ~[?:?]
	at io.grpc.internal.DnsNameResolver.<init>(DnsNameResolver.java:167) ~[io.grpc-grpc-core-1.75.0.jar:1.75.0]
	at io.grpc.grpclb.GrpclbNameResolver.<init>(GrpclbNameResolver.java:57) ~[io.grpc-grpc-grpclb-1.75.0.jar:1.75.0]
	at io.grpc.grpclb.SecretGrpclbNameResolverProvider$Provider.newNameResolver(SecretGrpclbNameResolverProvider.java:73) ~[io.grpc-grpc-grpclb-1.75.0.jar:1.75.0]
	at io.grpc.grpclb.SecretGrpclbNameResolverProvider$Provider.newNameResolver(SecretGrpclbNameResolverProvider.java:52) ~[io.grpc-grpc-grpclb-1.75.0.jar:1.75.0]
	at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:681) ~[io.grpc-grpc-core-1.75.0.jar:1.75.0]
	at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:604) ~[io.grpc-grpc-core-1.75.0.jar:1.75.0]
	at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:731) ~[io.grpc-grpc-core-1.75.0.jar:1.75.0]
	at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:278) ~[io.grpc-grpc-api-1.75.0.jar:1.75.0]
	at io.oxia.client.grpc.OxiaStub.<init>(OxiaStub.java:70) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.grpc.OxiaStubManager.lambda$getStub$0(OxiaStubManager.java:45) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source) ~[?:?]
	at io.oxia.client.grpc.OxiaStubManager.getStub(OxiaStubManager.java:44) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.grpc.OxiaStubProvider.getStubForShard(OxiaStubProvider.java:37) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.session.Session.close(Session.java:188) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.session.Session.handleSessionExpired(Session.java:182) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.session.Session.sendKeepAlive(Session.java:141) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at io.oxia.client.session.Session.lambda$new$0(Session.java:127) ~[io.github.oxia-db-oxia-client-0.7.0.jar:?]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[io.grpc-grpc-netty-shaded-1.75.0.jar:1.75.0]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]

Modification

  • Catch the exception and return a protected CompletableFuture

@mattisonchao
Copy link
Member Author

I am considering add a test for it. :)

@mattisonchao mattisonchao marked this pull request as draft November 10, 2025 19:18
@mattisonchao mattisonchao marked this pull request as ready for review November 11, 2025 04:46
Signed-off-by: mattisonchao <mattisonchao@gmail.com>
Signed-off-by: mattisonchao <mattisonchao@gmail.com>
@mattisonchao mattisonchao merged commit 8a17195 into main Nov 11, 2025
3 checks passed
@mattisonchao mattisonchao deleted the fix/session_not_found branch November 11, 2025 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants