[#1024] blobovnicza: Copy data on iterate
Some checks failed
Vulncheck / Vulncheck (pull_request) Failing after 1m41s
DCO action / DCO (pull_request) Successful in 1m48s
Build / Build Components (1.21) (pull_request) Successful in 2m52s
Tests and linters / Tests (1.20) (pull_request) Failing after 2m39s
Build / Build Components (1.20) (pull_request) Failing after 3m2s
Tests and linters / Staticcheck (pull_request) Failing after 3m43s
Tests and linters / Lint (pull_request) Failing after 4m26s
Tests and linters / Tests (1.21) (pull_request) Failing after 7m35s
Tests and linters / Tests with -race (pull_request) Failing after 8m9s

DB value is only valid while the tx is alive.
But handler may to run something in other goroutine.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2024-03-05 16:08:49 +03:00
parent 044fe860df
commit fdd191516f

View file

@ -1,6 +1,7 @@
package blobovnicza
import (
"bytes"
"context"
"fmt"
"math"
@ -159,7 +160,7 @@ func (b *Blobovnicza) Iterate(ctx context.Context, prm IteratePrm) (IterateRes,
}
if !prm.withoutData {
elem.data = v
elem.data = bytes.Clone(v)
}
return prm.handler(elem)