Skip to content

asyncClose() in mirroring called with a lock held #1

@dopiera

Description

@dopiera

I just noticed that we grab the we mark asyncClose() as synchronized and call decrementReferenceCount() on the ListetnableReferenceCounter with that lock held. This means that callback will be called with this lock held, which is an anti-pattern because it may lead to deadlocks. The solution is to simply decrement that counter at the end of those functions without that lock held.

This concerns the following classes:

  • MirroringResultScanner
  • MirroringTable
  • AsyncResultScannerWrapper
  • AsyncTableWrapper

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions