Comments (5)
We discussed that in detail when writing the protocol spec, and decided that to add requirements that clients should not send overlapping commands and that servers should check that would incur difficulties on said servers that would not be worth it.
Perhaps the spec could say that clients SHOULD NOT do so, but that servers MAY ignore the situation if it happens, or some such. At any rate, a client doing so is dabbing into "undefined territory" as it would be known for C constructs, and what happens could be anything.
As for current implementations, the reference implementation (which is only the server really, as the client "just" does the setup) doesn't care about it, the Linux kernel doesn't issue them AFAIK, and neither does qemu.
from nbd.
Yeah imposing this kind of requirement on the server would be overly burdensome, normal hard drives don't make sure things are done in order. A properly working linux client won't do this unless some application does it with O_DIRECT with different threads. We assume that the user is smart enough to make sure this sort of thing doesn't happen, and if the client is a file system this won't ever actually be seen.
from nbd.
@yoe @josefbacik Thanks for the feedback. :-)
Would you like that I send a PR amending the protocol to explicitly say that there is no such guarantee?
from nbd.
Better to do that on the mailinglist instead: https://lists.sourceforge.net/lists/listinfo/nbd-general
We usually do some review there before changes to the protocol are accepted, to make sure that no accidental mistakes are made.
from nbd.
@yoe OK, will do. Thanks for the quick feedback! :-)
Closing the issue now.
from nbd.
Related Issues (20)
- A typo in the format string in error message in nbd-client.c HOT 1
- Integer Overflow in nbd-client.c:421
- Stack Overflow in nbd-client.c: 501 HOT 1
- client authorization is always successfull (return true) for v6-mapped IPV4 addresses.
- Sporadic build failure with parallel make due to implicit dependency in Makefile.am
- Crashes when giving HUP-signal to nbd-server HOT 2
- 3.24: test suite runs forever HOT 8
- How to configure a local Ubuntu system to boot from NBD server hosting a multiple partition(e.g. GPT) image HOT 3
- server fails with glib2 2.76.0 HOT 22
- support windows client or server version HOT 1
- nbd-3.25 compile failure in gznbd HOT 2
- Extremely low performance with 20 simultaneous clients and 9Gb squashfs image HOT 3
- Performance optimization HOT 3
- Feature request: nbd-server serves multiple (autogenerated) files in directory hierarchy HOT 1
- default port become 0 after updating to 3.26.1 HOT 1
- NBD export fail "nbd0: truncated" to mount with block size other than 512 HOT 1
- compiler warning: warning: 'daemon' is deprecated: first deprecated in macOS 10.5 - Use posix_spawn APIs instead. HOT 1
- If the client connects to the nbd socket, and then disconnects without sending any data, nbd floods the logs HOT 4
- 3.26.1 systemd/ builds from Git but fails from release HOT 2
- Confusing error message when run without sufficient permissions
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 nbd.