Skip to content

Conversation

@ejona86
Copy link
Member

@ejona86 ejona86 commented Jan 23, 2017

This removes an abuse of scheduled executor in ManagedChannelImpl. The executor
was used to avoid deadlocking. Now we run the work on the same thread, but
delay it until locks have been released.

There is no need to fix ManagedChannelImpl2. Due to its different
threading model it didn't have need to abuse the scheduledExecutor.

Fixes #2444


This is a cherry-pick of #2459 from v1.0.x to master. ManagedChannelImpl had conflicts that were manually resolved. They primarily related to the addition of graceLoadBalancer which is in master.

This removes an abuse of scheduled executor in ManagedChannelImpl. The executor
was used to avoid deadlocking. Now we run the work on the same thread, but
delay it until locks have been released.

There is no need to fix ManagedChannelImpl2. Due to its different
threading model it didn't have need to abuse the scheduledExecutor.

Fixes grpc#2444
@ejona86 ejona86 merged commit e9fa8c9 into grpc:master Jan 23, 2017
@ejona86 ejona86 deleted the deterministic-inprocess branch January 23, 2017 19:24
@lock lock bot locked as resolved and limited conversation to collaborators Jan 21, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Non-determinism when using InProcessTransport with direct executors

2 participants