diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2022-06-27 21:23:48 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-27 21:23:48 -0700 |
| commit | 8d810f83059b593cc2a15055bee7a39672e9779b (patch) | |
| tree | 7e33749a683498444dd45800ad87807a1424cd36 /weed/cluster/cluster_test.go | |
| parent | 4b1f48a399ac8e18154929b942d47e10c60a54d9 (diff) | |
| parent | e1b94eb6b96c89e97f1a431d2e0b53ad3db11ee4 (diff) | |
| download | seaweedfs-8d810f83059b593cc2a15055bee7a39672e9779b.tar.xz seaweedfs-8d810f83059b593cc2a15055bee7a39672e9779b.zip | |
Merge pull request #3251 from shichanglin5/fix_concurrent_write_read
Diffstat (limited to 'weed/cluster/cluster_test.go')
| -rw-r--r-- | weed/cluster/cluster_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/weed/cluster/cluster_test.go b/weed/cluster/cluster_test.go index ccaccf6f7..1187642de 100644 --- a/weed/cluster/cluster_test.go +++ b/weed/cluster/cluster_test.go @@ -3,6 +3,8 @@ package cluster import ( "github.com/chrislusf/seaweedfs/weed/pb" "github.com/stretchr/testify/assert" + "strconv" + "sync" "testing" ) @@ -45,3 +47,35 @@ func TestClusterAddRemoveNodes(t *testing.T) { c.RemoveClusterNode("", "filer", pb.ServerAddress("111:1")) } + +func TestConcurrentAddRemoveNodes(t *testing.T) { + c := NewCluster() + var wg sync.WaitGroup + for i := 0; i < 50; i++ { + wg.Add(1) + go func(i int) { + defer wg.Done() + address := strconv.Itoa(i) + c.AddClusterNode("", "filer", pb.ServerAddress(address), "23.45") + }(i) + } + wg.Wait() + + for i := 0; i < 50; i++ { + wg.Add(1) + go func(i int) { + defer wg.Done() + address := strconv.Itoa(i) + node := c.RemoveClusterNode("", "filer", pb.ServerAddress(address)) + + if len(node) == 0 { + t.Errorf("TestConcurrentAddRemoveNodes: node[%s] not found", address) + return + } else if node[0].ClusterNodeUpdate.Address != address { + t.Errorf("TestConcurrentAddRemoveNodes: expect:%s, actual:%s", address, node[0].ClusterNodeUpdate.Address) + return + } + }(i) + } + wg.Wait() +} |
