Skip to content

[RPC] Reproducer for RPC session deadlock#11

Open
KJlaccHoeUM9l wants to merge 1 commit intomainfrom
agladyshev/reproducers/rpc_session_deadlock
Open

[RPC] Reproducer for RPC session deadlock#11
KJlaccHoeUM9l wants to merge 1 commit intomainfrom
agladyshev/reproducers/rpc_session_deadlock

Conversation

@KJlaccHoeUM9l
Copy link

The problem is that the created object for the PRC session was not destroyed when it went out of scope, which caused the tracker to think that the device was busy, and therefore it was impossible to create a new session.

The above code demonstrates this behavior and shows the reason why this is happening.

Cause:
Three fields are created in the special class SomeHolder:

  • remote_session - session, which should be destroyed along with the object SomeHolder
  • deadlock_field - a lambda function that does not destroy the SomeHolder object
  • field_which_needed_for_deadlock - the field that is needed in order for the lambda to be created so that the object is not destroyed (circular reference?)

If you remove the field_which_needed_for_deadlock field, there will be no deadlock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant