-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-4803] [streaming] Remove duplicate RegisterReceiver message #3648
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
[SPARK-4803] [streaming] Remove duplicate RegisterReceiver message #3648
Conversation
- The ReceiverTracker receivers `RegisterReceiver` messages two times
1) When the actor at `ReceiverSupervisorImpl`'s preStart is invoked
2) After the receiver is started at the executor `onReceiverStart()` at `ReceiverSupervisorImpl`
Though, RegisterReceiver message uses the same streamId and the receiverInfo gets updated everytime
the message is processed at the `ReceiverTracker`, it makes sense to call register receiver only after the
receiver is started.
|
Can one of the admins verify this patch? |
|
Jenkins, this is ok to test. |
|
This change sounds reasonable to me, but I'd like to have @tdas take a quick look at this to see if I'm missing something obvious. |
|
Test build #24508 has started for PR 3648 at commit
|
|
Test build #24508 has finished for PR 3648 at commit
|
|
Test PASSed. |
|
Actually, can you add a unit test for this? This change looks reasonable to me but I am afraid that this bug can get reintroduced once again later and will be super hard to catch. For the unit test you can use create a new testsuite called |
|
Ping, any thoughts? |
|
Ping, once again. |
|
@tdas sorry, I haven't got a chance to work on this yet. I will try to get something in a few days. |
|
Alright. |
|
Test build #25389 has started for PR 3648 at commit
|
|
@tdas I realized that the issue that is fixed in this PR can be tested via what do you think? |
|
Test build #25389 has finished for PR 3648 at commit
|
|
Test FAILed. |
|
It looks like the modified test failed? |
|
Interesting as the test passed initially before the modified test (which means the condition that fails above was greater than equal to 1 when the test passed initially). Could there be timing issues? Also, I don't understand why the condition was checking |
|
Any suggestions? |
|
This could be a timing issue. Could increase the timeout (say, 2 seconds), and then run it in Jenkins 3-4 times? |
|
Test build #25554 has started for PR 3648 at commit
|
|
Test build #25554 has finished for PR 3648 at commit
|
|
Test PASSed. |
|
The test passed now (after increasing the timeout value). Can someone re-run the test to see if the test result is consistent? |
|
Jenkins, test this please. |
|
Test build #25577 has started for PR 3648 at commit
|
|
Test build #25577 has finished for PR 3648 at commit
|
|
Test PASSed. |
|
@tdas do you think this is ok to merge now? |
|
I think so. Merging this. |
- The ReceiverTracker receivers `RegisterReceiver` messages two times
1) When the actor at `ReceiverSupervisorImpl`'s preStart is invoked
2) After the receiver is started at the executor `onReceiverStart()` at `ReceiverSupervisorImpl`
Though, RegisterReceiver message uses the same streamId and the receiverInfo gets updated everytime
the message is processed at the `ReceiverTracker`, it makes sense to call register receiver only after the
receiver is started.
Author: Ilayaperumal Gopinathan <[email protected]>
Closes #3648 from ilayaperumalg/RTActor-remove-prestart and squashes the following commits:
868efab [Ilayaperumal Gopinathan] Increase receiverInfo collector timeout to 2 secs
3118e5e [Ilayaperumal Gopinathan] Fix StreamingListenerSuite's startedReceiverStreamIds size
634abde [Ilayaperumal Gopinathan] Remove duplicate RegisterReceiver message
(cherry picked from commit 4afad9c)
Signed-off-by: Tathagata Das <[email protected]>
- The ReceiverTracker receivers `RegisterReceiver` messages two times
1) When the actor at `ReceiverSupervisorImpl`'s preStart is invoked
2) After the receiver is started at the executor `onReceiverStart()` at `ReceiverSupervisorImpl`
Though, RegisterReceiver message uses the same streamId and the receiverInfo gets updated everytime
the message is processed at the `ReceiverTracker`, it makes sense to call register receiver only after the
receiver is started.
Author: Ilayaperumal Gopinathan <[email protected]>
Closes apache#3648 from ilayaperumalg/RTActor-remove-prestart and squashes the following commits:
868efab [Ilayaperumal Gopinathan] Increase receiverInfo collector timeout to 2 secs
3118e5e [Ilayaperumal Gopinathan] Fix StreamingListenerSuite's startedReceiverStreamIds size
634abde [Ilayaperumal Gopinathan] Remove duplicate RegisterReceiver message
RegisterReceivermessages two timesReceiverSupervisorImpl's preStart is invokedonReceiverStart()atReceiverSupervisorImplThough, RegisterReceiver message uses the same streamId and the receiverInfo gets updated everytime
the message is processed at the
ReceiverTracker, it makes sense to call register receiver only after thereceiver is started.