Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jun 2015 10:30:34 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        "alex.burlyga.ietf alex.burlyga.ietf" <alex.burlyga.ietf@gmail.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: [nfs][client] - Question about handling of the NFS3_EEXIST error in SYMLINK rpc
Message-ID:  <1969046464.61534041.1434897034960.JavaMail.root@uoguelph.ca>
In-Reply-To: <CA%2BJhTNTSC-xPVdpUGcQemVMLUwuQB6D8-3d2HD6WjU%2Bjd1SMNQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_61534039_1057484672.1434897034958
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Alex Burlyga wrote:
> Hi,
> 
> NFS client code in nfsrpc_symlink() masks server returned NFS3_EEXIST
> error
> code
> by returning 0 to the upper layers. I'm assuming this was an attempt
> to
> work around
> some server's broken replay cache out there, however, it breaks a
> more
> common
> case where server is returning EEXIST for legitimate reason and
> application
> is expecting this error code and equipped to deal with it.
> 
> To fix it I see three ways of doing this:
>  * Remove offending code
>  * Make it optional, sysctl?
>  * On NFS3_EEXIST send READLINK rpc to make sure symlink content is
>  right
> 
> Which of the ways will maximize the chances of getting this fix
> upstream?
> 
I've attached a patch for testing/review that does essentially #2.
It has no effect on trivial tests, since the syscall does a Lookup
before trying to create the symlink and fails with EEXIST.
Do you have a case where competing clients are trying to create
the symlink or something like that, which runs into this?

Please test the attached patch, since I don't know how to do that, rick

> One more point, old client circa FreeBSD 7.0 does not exhibit this
> problem.
> 
> Alex
> _______________________________________________
> freebsd-fs@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"
> 

------=_Part_61534039_1057484672.1434897034958
Content-Type: text/x-patch; name=eexist.patch
Content-Disposition: attachment; filename=eexist.patch
Content-Transfer-Encoding: base64

LS0tIGZzL25mc2NsaWVudC9uZnNfY2xycGNvcHMuYy5zYXYyCTIwMTUtMDYtMjEgMDk6Mjc6Mzgu
NjQwOTQ3MDAwIC0wNDAwCisrKyBmcy9uZnNjbGllbnQvbmZzX2NscnBjb3BzLmMJMjAxNS0wNi0y
MSAwOTo1Mzo0Mi43MjMwODUwMDAgLTA0MDAKQEAgLTQ2LDYgKzQ2LDEzIEBAIF9fRkJTRElEKCIk
RnJlZUJTRDogaGVhZC9zeXMvZnMvbmZzY2xpZW4KICNpbmNsdWRlICJvcHRfaW5ldDYuaCIKIAog
I2luY2x1ZGUgPGZzL25mcy9uZnNwb3J0Lmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorCitT
WVNDVExfREVDTChfdmZzX25mcyk7CisKK3N0YXRpYyBpbnQJbmZzaWdub3JlX2VleGlzdCA9IDA7
CitTWVNDVExfSU5UKF92ZnNfbmZzLCBPSURfQVVUTywgaWdub3JlX2VleGlzdCwgQ1RMRkxBR19S
VywKKyAgICAmbmZzaWdub3JlX2VleGlzdCwgMCwgIk5GUyBpZ25vcmUgRUVYSVNUIHJlcGxpZXMg
Zm9yIG1rZGlyL3N5bWxpbmsiKTsKIAogLyoKICAqIEdsb2JhbCB2YXJpYWJsZXMKQEAgLTI1MzAs
OCArMjUzNywxMiBAQCBuZnNycGNfc3ltbGluayh2bm9kZV90IGR2cCwgY2hhciAqbmFtZSwgCiAJ
bWJ1Zl9mcmVlbShuZC0+bmRfbXJlcCk7CiAJLyoKIAkgKiBLbHVkZ2U6IE1hcCBFRVhJU1QgPT4g
MCBhc3N1bWluZyB0aGF0IGl0IGlzIGEgcmVwbHkgdG8gYSByZXRyeS4KKwkgKiBPbmx5IGRvIHRo
aXMgaWYgdmZzLm5mcy5pZ25vcmVfZWV4aXN0IGlzIHNldC4KKwkgKiBOZXZlciBkbyB0aGlzIGZv
ciBORlN2NC4xIG9yIGxhdGVyIG1pbm9yIHZlcnNpb25zLCBzaW5jZSBzZXNzaW9ucworCSAqIHNo
b3VsZCBndWFyYW50ZWUgImV4YWN0bHkgb25jZSIgUlBDIHNlbWFudGljcy4KIAkgKi8KLQlpZiAo
ZXJyb3IgPT0gRUVYSVNUKQorCWlmIChlcnJvciA9PSBFRVhJU1QgJiYgbmZzaWdub3JlX2VleGlz
dCAhPSAwICYmICghTkZTSEFTTkZTVjQobm1wKSB8fAorCSAgICBubXAtPm5tX21pbm9ydmVycyA9
PSAwKSkKIAkJZXJyb3IgPSAwOwogCXJldHVybiAoZXJyb3IpOwogfQpAQCAtMjU1MCwxMCArMjU2
MSwxMiBAQCBuZnNycGNfbWtkaXIodm5vZGVfdCBkdnAsIGNoYXIgKm5hbWUsIGluCiAJbmZzYXR0
cmJpdF90IGF0dHJiaXRzOwogCWludCBlcnJvciA9IDA7CiAJc3RydWN0IG5mc2ZoICpmaHA7CisJ
c3RydWN0IG5mc21vdW50ICpubXA7CiAKIAkqbmZocHAgPSBOVUxMOwogCSphdHRyZmxhZ3AgPSAw
OwogCSpkYXR0cmZsYWdwID0gMDsKKwlubXAgPSBWRlNUT05GUyh2bm9kZV9tb3VudChkdnApKTsK
IAlmaHAgPSBWVE9ORlMoZHZwKS0+bl9maHA7CiAJaWYgKG5hbWVsZW4gPiBORlNfTUFYTkFNTEVO
KQogCQlyZXR1cm4gKEVOQU1FVE9PTE9ORyk7CkBAIC0yNjA1LDkgKzI2MTgsMTMgQEAgbmZzcnBj
X21rZGlyKHZub2RlX3QgZHZwLCBjaGFyICpuYW1lLCBpbgogbmZzbW91dDoKIAltYnVmX2ZyZWVt
KG5kLT5uZF9tcmVwKTsKIAkvKgotCSAqIEtsdWRnZTogTWFwIEVFWElTVCA9PiAwIGFzc3VtaW5n
IHRoYXQgeW91IGhhdmUgYSByZXBseSB0byBhIHJldHJ5LgorCSAqIEtsdWRnZTogTWFwIEVFWElT
VCA9PiAwIGFzc3VtaW5nIHRoYXQgaXQgaXMgYSByZXBseSB0byBhIHJldHJ5LgorCSAqIE9ubHkg
ZG8gdGhpcyBpZiB2ZnMubmZzLmlnbm9yZV9lZXhpc3QgaXMgc2V0LgorCSAqIE5ldmVyIGRvIHRo
aXMgZm9yIE5GU3Y0LjEgb3IgbGF0ZXIgbWlub3IgdmVyc2lvbnMsIHNpbmNlIHNlc3Npb25zCisJ
ICogc2hvdWxkIGd1YXJhbnRlZSAiZXhhY3RseSBvbmNlIiBSUEMgc2VtYW50aWNzLgogCSAqLwot
CWlmIChlcnJvciA9PSBFRVhJU1QpCisJaWYgKGVycm9yID09IEVFWElTVCAmJiBuZnNpZ25vcmVf
ZWV4aXN0ICE9IDAgJiYgKCFORlNIQVNORlNWNChubXApIHx8CisJICAgIG5tcC0+bm1fbWlub3J2
ZXJzID09IDApKQogCQllcnJvciA9IDA7CiAJcmV0dXJuIChlcnJvcik7CiB9Cg==
------=_Part_61534039_1057484672.1434897034958--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1969046464.61534041.1434897034960.JavaMail.root>