Comments (2)
@georgysavva Thanks for the question. I believe the concurrency issue you describe does not affect the testserver.
As you say, if both processes see that the file does not exist, they will both call the downloadFile
function to create the file and download into it. The first thing this function does is create the file with os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0200)
. This call will return an error if the file already exists. So one process will successfully create the file, and the other will fail. On most filesystems, this file creation is atomic. For more details, read about the O_EXCL
flag here: https://linux.die.net/man/2/open.
If you're still affected by the issue, could you please re-open this, and provide a way to reproduce it?
from cockroach-go.
Thanks for the answer. Everything is clear.
from cockroach-go.
Related Issues (20)
- testserver: if killed during download, future invocations will not work
- testserver: Start() is useless HOT 2
- testserver: Make it easier to use store=type=mem
- Unit tests with sqlproxy fail against bleeding edge CockroachDB version HOT 3
- testserver: cmd with `--log` option does not generate `listen-url` in tests
- Feature Request: Support `BEGIN PRIORITY X` for pgx HOT 3
- ExecuteInTx does not honor context cancellation HOT 3
- Need variants of ExecuteInTx and ExecuteTx that take a `fn(context.Context, ...)` as arg
- Custom binary - tests failure HOT 1
- standard package errors should be used instead of archived pkg/errors
- Add support for jackc/pgx/v5 HOT 1
- Error parsing headers when downloading binary
- Testing in pipeline
- Print log when cannot poll from ListeningURLFile
- Vendor GetTotalMemoryWithoutLogging from github.com/cockroachdb/cockroach HOT 4
- User requested rollbacks
- package version logic points to unavailable cockroachdb version HOT 2
- cockroach-go testserver: Failed to fetch latest binary: error downloading https://binaries.cockroachdb.com/cockroach-v23.2.0.darwin-10.9-amd64.tgz: 404 (404 Not Found) HOT 2
- Should be 25P02 retriable? HOT 8
- Second call to Start() throws error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cockroach-go.