-
Notifications
You must be signed in to change notification settings - Fork 314
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
watch without waitForReady sometimes not reschedule when all servers are down #1261
Comments
@tenghuanhe can you provide a reproducer and/or willing to work on a PR ? |
We are also facing same issue.I am not able to reproduce using test containers. This is what is happening. Exception occurs in
@lburgazzoli I am not sure what will be the fix? |
@giri-vsr I do have some very limited time at this stage and I need to digg into the issue more to understand what to do |
Maybe we need to move to https://github.com/eclipse-vertx/vertx-grpc since https://github.com/vert-x3/vertx-grpc is deprecated |
can you try to work on a PR ? |
Issue is fixed in https://github.com/vert-x3/vertx-grpc 4.5.1 and Move to https://github.com/eclipse-vertx/vertx-grpc should be handled separately. |
@lburgazzoli @giri-vsr hello, it seems that election observe have the same problem jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/ElectionImpl.java Lines 116 to 119 in 85a9a54
and maybe we can also registers end handler before watch request? |
also LeaseImpl,MaintenanceImpl: jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/LeaseImpl.java Lines 150 to 163 in 85a9a54
jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/LeaseImpl.java Lines 197 to 199 in 85a9a54
jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/MaintenanceImpl.java Lines 122 to 136 in 85a9a54
jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/MaintenanceImpl.java Lines 144 to 147 in 85a9a54
|
Versions
Describe the bug
Watch without waitForReady sometimes not reschedule when all servers are down. When we reboot part of servers, watch stream on those servers rescheduled as expected;When we shutdown all servers and reboot all servers after a while, watch not rescheduled as expected.
Review code below, we will loss the event when event comes before setting handler.
jetcd/jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java
Lines 180 to 188 in c51adfb
example:
connect failed -> StreamObserverReadStream.onError() -> WatcherImpl.onError() -> WatcherImpl.reschedule() -> WatcherImpl.resume() -> WatchVertxStub.watch() -> connect failed -> StreamObserverReadStream.onError() -> StreamObserverReadStream.exceptionHandler is null -> rstream.exceptionHandler(this::onError)
To Reproduce
as description
Expected behavior
watch rescheduled
The text was updated successfully, but these errors were encountered: