[multistage] [error-handling] MailboxContentStreamObserver poll infinite loop
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 2d 55m
- Merged PRs (30d)
- 182
Description
Here is how it happens:
Mailbox.MailboxContent content = _receivingBuffer.poll(DEFAULT_MAILBOX_POLL_TIMEOUT, TimeUnit.MILLISECONDS);
Say we never receive this mailbox due to network or the issue stated in sort operator.
_receivingBuffer.pool will throw an exception and log an error.
however _isCompleted is not set to true. The code will start while loop again.
This receive is a blocking call. So we don't have timeout to break this.
Contributor guide
Research direction
Start with MailboxContentStreamObserver and inspect the _receivingBuffer.poll call, its exception handling, and the surrounding while loop. Trace how _isCompleted changes when the mailbox is not received or polling fails. Done means the blocking receive path does not continue looping indefinitely after that failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100