The Robinson Factor
The Robinson Factor
David Robinson's Weblog
All | General | Huh? | NFS | OpenSolaris | Politics

20050901 Thursday September 01, 2005

librac is dead, long live librac

In Solaris Express build 23 you will discover that librac no longer exists. Why? Because it is an old crufty attempt to allow a single threaded application to asynchronously issue multiple RPC requests. It was an attempt to allow some old SunOS 4.x era Netwise (a company bought by Microsoft who shutdown its RPC products) to be ported to Solaris 2.0.

The general market for ONC RPC based applications has been in steady decline. Replaced first by alternative RPC's such as DCE/RPC, then higher level distributed objects using things like Corba, and more recently JINI and remote Java objects. Also as of Solaris 2.3, full fledged support for multi-threaded RPCs further removed the need for librac.

So what was the harm of just leaving it alone? The bulk of the code is a duplicate of the regular RPC library in libnsl. Over the years there have been a number of bugs fixed in one but not the other, the maintainence cost was overwhelming any benefit.

So what do I do if I depended on it? The simplest solution is to grab a copy from an old OpenSolaris release and support it yourself. Nothing has changed to prevent it from working. A better solution is to just convert your code to be multi-threaded and issue each request in a different thread and wait for a reply. This is exactly what is done in the kernel RPC.

Did we warn you? Yes. Although the man pages did not use the more common term Obsolete, it used an alternative phrasing "use of this interface is disparaged." This is a bit of an odd phrasing, usually you disparage a thing, not its use, but the intent is the same, don't go there.

( Sep 01 2005, 02:16:44 AM CDT ) Permalink Comments [12]


Archives
Links
Referrers