[multistage] [error-handling] GrpcSendingMailbox init won't stop on exception
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 2d 55m
- Merged PRs (30d)
- 182
Description
This is happening on MailboxSendOperator getNextBlock().
When sendDataTableBlock is called the first time, send is called on GrpcSendingMailbox.
GrpcSendingMailbox.send() will call GrpcSendingMailbox.init(), which will call _statusStreamObserver.send(MAILBOX_METADATA_BEGIN_OF_STREAM_KEY).
If _statusStreamObserver.send() throws an exception, _initialized will not be set to true. This exception is logged in MailboxSendOperator.getNextBlock() and not passed to upstream.
Next time the send is called, init will be called again till mailbox send times out
Contributor guide
Research direction
Start by locating GrpcSendingMailbox.send() and init(), then trace how MailboxSendOperator.getNextBlock() handles exceptions from sendDataTableBlock(). Verify the initialization failure path and its subsequent send attempts; done means an exception does not cause repeated initialization until mailbox timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100