Skip to content

Commit 3ddf8ee

Browse files
committed
fix: Prevent a data race in asyncPutOnCluster and syncPutOnCluster
1 parent 68700d5 commit 3ddf8ee

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

dmap_put.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,13 @@ func (db *Olric) localPut(hkey uint64, dm *dmap, w *writeop) error {
152152
}
153153

154154
func (db *Olric) asyncPutOnCluster(hkey uint64, dm *dmap, w *writeop) error {
155-
req := w.toReq(w.replicaOpcode)
156155
// Fire and forget mode.
157156
owners := db.getBackupPartitionOwners(hkey)
158157
for _, owner := range owners {
159158
db.wg.Add(1)
160159
go func(host discovery.Member) {
161160
defer db.wg.Done()
161+
req := w.toReq(w.replicaOpcode)
162162
_, err := db.requestTo(host.String(), req)
163163
if err != nil {
164164
if db.log.V(3).Ok() {
@@ -171,12 +171,11 @@ func (db *Olric) asyncPutOnCluster(hkey uint64, dm *dmap, w *writeop) error {
171171
}
172172

173173
func (db *Olric) syncPutOnCluster(hkey uint64, dm *dmap, w *writeop) error {
174-
req := w.toReq(w.replicaOpcode)
175-
176174
// Quorum based replication.
177175
var successful int
178176
owners := db.getBackupPartitionOwners(hkey)
179177
for _, owner := range owners {
178+
req := w.toReq(w.replicaOpcode)
180179
_, err := db.requestTo(owner.String(), req)
181180
if err != nil {
182181
if db.log.V(3).Ok() {

0 commit comments

Comments
 (0)