On 11/1/17 10:07 AM, Frank Filz wrote:
So part of why that code looks bizarre? Because the NLM ASYNC RPC procedures
are bizarre...
The NLM ASYNC procedures DON'T have a normal RPC call response. Instead, the
host handling the call (normally the server, but the client in the case of
NLM_GRANTED for lock grant callbacks) makes an RPC CALL back to the sender!
The RPC library, at least at the time of writing this, had no mechanism to
fire off RPC calls and not care about a response...
Good to know. A feature I can add!
The problem is the client NEVER sends a response to the NLM_xxxx_RSP RPC
callback. So I coded a short timeout so we didn't actually wait for a
response we would never get... This code was also written in haste. I had a
day or so to get it re-written and tested during one of the few
Connectathons I attended with Ganesha that Apple also attended... Since
then, I have never had a Mac client to even make sure it still works...
I've never seen these in a log. Just reading the code, prior to
making modifications. But my reading is that with current RPC, this
short nearly impossible timeout will start a connection, fire off 3 calls,
drop the connection and immediately reconnect, fire off 3 calls, then
drop the connection and immediately reconnect, fire off 3 calls, then
drop the connection.
Probably not the planned operation.
So what I'll do by Friday is remove the re-connection loop. Tell me
3 times (3 fast calls) should be enough? I'll also make the timeout
10 ms so that we don't thrash threads so much.
In a week or two, I'll add the feature to not await a response at all.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel