Comments (8)
oh ho, it's supposed to be there but is not. It's almost as though it came back from a readdir but the stat failed?
One thing that would be helpful is some way to enable per-request logging, since it is not always possible to use wireshark (I'm running nfs3 over ssh).
More as I learn it.
from go-nfs.
Also, I should know this, but what is 0x10431b490
from go-nfs.
ah, ok, it seems to be the kernel trying to do something? maybe set atime? still looking.
from go-nfs.
OK, the code for lookup I think could be changed. nfs_onlookup should be able to use Lstat, not Readdir, as readdir is a very inefficient way to do a lookup (just image a directory with 10k+ entries and repeated lookups ... this happens. Or 1M. This happens).
I'm surprised that billy has no lookup operation, but I think Lstat would serve. Thoughts?
from go-nfs.
I was actually thinking the same thing (in practice, directories are not usually large enough to make a difference, but it's a simple optimization to make).
from go-nfs.
I just discovered LOG_LEVEL, which removes the extra prints. It seems to default to LOG_ERROR? I think it ought to be a higher level. Although, in general, log messages of any kind in a Go package are frowned upon ...
from go-nfs.
- when using this library in a larger program, you can connect it up to whatever logging system is in use via
SetLogger
https://github.com/willscott/go-nfs/blob/master/log.go#L61 - I think you're right that it may be worthwhile to differentiate between recoverable/non-recoverable errors at the library versus at the protocol level.
- The inefficiency in onlookup is a good call. I'll file a separate issue to track that.
from go-nfs.
Line 130 in ea1b85e
I'd suggest removing this print. especially for shells, which do a lot of stats for PATH resolution, I am getting a lot of prints.
This is a file system error, and there are always a lot of these, and they are not really NFS-level failures,
from go-nfs.
Related Issues (20)
- There are still places where FileID zero is returned, which confuses linux HOT 9
- Still getting stale file handle issues: see #100 HOT 3
- `onRename` errors out with "comparing uncomparable type" HOT 4
- if `fs.Remove` fails with `non-empty directory`, the server should forward that. HOT 1
- Incorrect handling of an open file's `Name()` HOT 1
- If `Read` is above a certain size, it will return nothing HOT 1
- onReadDirPlus with small cache yields no results, but no error HOT 2
- Some Write calls leads to data loss HOT 30
- A git clone will lead to the server displaying files with corrupted permissions HOT 9
- make `onlookup` use stat rather than readdir HOT 1
- Removing directory leads to `Stale file handle` HOT 3
- Symbolic Links Cause Stale NFS File Handles HOT 1
- tagged releases
- fs.Stat is called when fs.Lstat should be called HOT 5
- support backing systems without exposed fileids
- Sockets don't work through mount HOT 11
- "Illegal instruction" when trying to run `su user` in chroot in mount HOT 29
- `flock` hangs HOT 3
- GETATTR does not set fhandle in returned struct HOT 3
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 go-nfs.