diff --git a/pkg/serverconfigs/server_address_group.go b/pkg/serverconfigs/server_address_group.go index 0d69a20..f848af7 100644 --- a/pkg/serverconfigs/server_address_group.go +++ b/pkg/serverconfigs/server_address_group.go @@ -157,6 +157,7 @@ func (this *ServerAddressGroup) MatchServerName(serverName string) *ServerConfig if ok { server, ok := domainMap[serverName] if ok { + this.cacheLocker.RUnlock() return server } } diff --git a/pkg/serverconfigs/server_address_group_test.go b/pkg/serverconfigs/server_address_group_test.go index 7c2f655..a402703 100644 --- a/pkg/serverconfigs/server_address_group_test.go +++ b/pkg/serverconfigs/server_address_group_test.go @@ -75,6 +75,10 @@ func TestServerAddressGroup_MatchServerName(t *testing.T) { for i := 0; i < 100_000; i++ { _ = group.MatchServerName("world.hello.com") } + + // 检查死锁问题 + group.MatchServerName("world2.hello.com") + } func TestServerAddressGroup_MatchServerCNAME(t *testing.T) {