On Thu, Dec 16, 2010 at 2:13 PM, Steve Simmons <[email protected]> wrote: > This was originally subject "[OpenAFS] GiveUpAllCallBacks callers." I've > moved it over to developers and kicked off a new thread. > > On Dec 14, 2010, at 6:50 PM, Simon Wilkinson wrote: > >> I think that, as responsible developers and vendors, we should not be >> knowingly shipping new code which can crash previous stable releases. >> However, I also find myself agreeing with the various objections that have >> been raised to creating new capability bits, tying together unrelated RPCs, >> and replacing RPCs because of implementation faults. >> >> At this point, I think we should take a look at how other protocols deal >> with the problem of avoiding triggering bugs in badly written peers. The use >> of version string matching is pretty common in this area - witness OpenSSH's >> use of the protocol version information to avoid their client from crashing >> other's servers, Apache's use of header matching to avoid breaking >> non-confornmant HTTP clients, and so on. >> >> If we are going to have a richer AFS ecosystem, then we're going to have to >> gain the ability to deal with these problems. I think that this means that >> in the future, we're going to have to produce a new versioning RPC which >> allows the distribution of structured vendor and version information. >> However, we don't have that RPC now, and it doesn't help us with already >> deployed servers. In the short term, I think it would be appropriate to use >> the RX version identifier. > > What he said. This is a problem, and solving it in any near-optimum way isn't > going to be easy. We should address it, write RFCs as needed, yadda, yadda. > But we should not let the perfect be the enemy of the good here. We're not > going to have that ready as part of 1.6, maybe not 1.8. In the interim, I'd > rather see us do a few things that I think are small/easy to implement but > will ease the current pain. > > One is a ping equivalent. The RPC suite that Sun developed for NFS, netinfo, > etc, uses this as a core feature. It's a effective workaround for some > limitations of UDP-based services, but it does more than just work around > that issue. In Sun terminology (well, assuming I recall Sun terminology > correctly) for every RPC type there is a reserved call 0 that's just a ping. > Make that procedure call, and it should return true immediately.
GetCapabilities will (I hope!) return a fixed vector, and so should always be as cheap to call as we can manage. We should, if we're pursuing this, just add that globally. > The version report we get from rxdebug -v is useful, but as others note, it > can and is set by various sites to reflect their local needs. A 'core > version' flavor that strictly follows AFS releases would be useful, eg, > rxdebug -coreversion would only report a string the user shouldn't muck with. > And yes, I know that git-ish things have to be considered, yadda, yadda. The > devil is always in the details. Yes, yes it is. If you patch 1.4.12, do you report 1.4.12? What if you have all the 1.4.13 patches in when 1.4.13 releases? -- Derrick _______________________________________________ OpenAFS-devel mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-devel
