Solaris, SEAM krb5, and com_err

Michael Bacon baconm at email.unc.edu
Wed Jul 15 11:37:10 EDT 2009


This is not so much a problem with Cyrus but a cautionary tale about using 
Solaris's SEAM implementation of com_err.  I'd be curious if anyone else 
has run into the same problem.

After building it in initially and designing our new murder cluster to use 
GSSAPI for all inter-host communication, catastrophically bad performance 
on the part of the krb5 authorization module when built with SEAM caused us 
to abandon it for PLAIN+TLS for now.  However, I still had the krb5 code 
built into the binaries.  On these builds, everything worked properly, 
except that our error codes didn't work right -- at the successful 
completion of a command, we'd get "<tag> OK Unknown code 54" and so forth.

This drove me crazy trying to debug, before I finally realized that while 
autoconf had built everything using the Cyrus com_err distribution, Sun, in 
their infinite wisdom, put a partial, broken version of com_err directly 
into libkrb5.so.  I'm not sure why the linker didn't catch the multiple 
versions of com_err and error_message (perhaps because one was dynamic and 
one was static).  However, the result is that while the error tables were 
generated to the Cyrus com_err spec, functions like error_message were 
getting overridden by the ghost versions in libkrb5.

Is anyone successfully using Solaris 10+SEAM for krb5?

Thanks,
Michael Bacon
ITS Messaging
UNC Chapel Hill


More information about the Info-cyrus mailing list