apache / apache/pinot

[multistage] [error-handling] GrpcSendingMailbox init won't stop on exception

Open
#9,789 0 comments 0 reactions 0 assignees View on GitHub
multi-stage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.