2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-22 12:55:18 +00:00

internal/cache: Concurrent use of cache not working on Windows

This commit is contained in:
greatroar 2022-09-17 19:37:09 +02:00
parent b48766d7b8
commit 1220fe9650

View File

@ -6,6 +6,7 @@ import (
"io/ioutil" "io/ioutil"
"math/rand" "math/rand"
"os" "os"
"runtime"
"testing" "testing"
"time" "time"
@ -204,7 +205,19 @@ func TestFileLoad(t *testing.T) {
} }
// Simulate multiple processes writing to a cache, using goroutines. // Simulate multiple processes writing to a cache, using goroutines.
//
// The possibility of sharing a cache between multiple concurrent restic
// processes isn't guaranteed in the docs and doesn't always work on Windows
// due to the Go runtime opening files without FILE_SHARE_DELETE, hence the
// check on GOOS. This is considered a "nice to have" on POSIX, for now.
//
// See https://devblogs.microsoft.com/oldnewthing/20211022-00/?p=105822
// for hints on how to fix this properly.
func TestFileSaveConcurrent(t *testing.T) { func TestFileSaveConcurrent(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("may not work due to FILE_SHARE_DELETE issue")
}
const nproc = 40 const nproc = 40
c, cleanup := TestNewCache(t) c, cleanup := TestNewCache(t)