-
Feature Request
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
None
-
False
Which use case/requirement will be addressed by the proposed feature?
With recent changes in https://github.com/debezium/debezium-connector-vitess/pull/138 all errors are being treated the same for the error processing handling setting. For some (e.g., UNAVAILABLE) we always want to error out and reset. Only for certain ones (e.g., GRPC size limit exceeded) should we logic be based on the error processing handling mode.
2023-06-02 20:47:08,893 WARN Vitess|dev.byuser|streaming VStream streaming onError. Status: Status{code=UNAVAILABLE, description=HTTP/2 error code: NO_ERROR Received Goaway, cause=null} [io.debezium.connector.vitess.connection.VitessReplicationConnection] io.grpc.StatusRuntimeException: UNAVAILABLE: HTTP/2 error code: NO_ERROR Received Goaway at io.grpc.Status.asRuntimeException(Status.java:533) at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:478) at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:463) at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:427) at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:460) at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:616) at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:69) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:802) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:781) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
Implementation ideas (optional)
Only use error processing handling mode for certain errors (for now GRPC size limit exceeded). For all other errors, do the standard behavior of erroring out.
- links to
-
RHEA-2023:120698 Red Hat build of Debezium 2.3.4 release