Skip to content

EndpointUserConfig.AddEndpoint方法存在并发问题 #396

@colin-chang

Description

@colin-chang

上面代码中 endpoints 使用了非线程安全字典 Dictionary<string, ProductDomain>。在字典中查询key过程中其他线程对字典进行修改会导致InvalidOperationException,异常堆栈信息如下:

System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
   at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at Aliyun.Acs.Core.Regions.EndpointUserConfig.AddEndpoint(String product, String regionId, String domain)

建议将 endpoints 类型修改为线程安全的 ConcurrentDictionary<string, ProductDomain> 修复此问题 @AxiosCros

Metadata

Metadata

Assignees

No one assigned

    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