Skip to content

Revisit locking logic and potential race conditions in OData Client #2536

@habbes

Description

@habbes

OData Client has some non-trivial locking logic, but is still susceptible to race conditions (see
#2533). It's used a lot in servers where it has to process a lot of concurrent requests where threading issues are most likely to occur. Most services prefer to instantiate a DataServiceContext per request scope to avoid thread-safety issues, but this also has negative implications on perf and reliability (#2514, #2321). The point of this issue is to track work to improve maintainability and reliability of locking and thread-safety in OData Client.

Assemblies affected

Microsoft.OData.Client 7.x

Reproduce steps

The simplest set of steps to reproduce the issue. If possible, reference a commit that demonstrates the issue.

Expected result

What would happen if there wasn't a bug.

Actual result

What is actually happening.

Additional detail

Optional, details of the root cause if known. Delete this section if you have no additional details to add.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions