<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.16.3">
</HEAD>
<BODY>
It seems that sasl_server_start() takes 0.17 seconds to run with selinux is disabled and takes 1.28 seconds to run when selinux is enabled.<BR>
<BR>
The SASL mechanism is set to Kerberos 5.&nbsp; The user is correctly authorized, and except for sasl_server_start() being really slow, things seem to work.<BR>
<BR>
Does any one have any idea why this happens and how to fix it?<BR>
<BR>
Some more details, the test system is running CentOS 6.3, which came with Cyrus SASL 2.1.23 and MIT Kerberos 1.9 libraries.&nbsp; I first noticed the problem with OpenLDAP 2.4.28.&nbsp; I have since compiled SASL 2.1.25 and confirmed the problem using the sample client and sample server.<BR>
<BR>
Running the sample client and sample server under strace, it looks like sasl_server_start() opens and processes the same set of files 9 times.&nbsp; Not sure why 9 times or why it would need to look at any of them more then one time.<BR>
<BR>
I grepped for open in the strace output collected while sasl_server_start() was running and copied the last group of open calls to get this list of files that are processed 9 times:
<PRE>
15:35:30.739312 open(&quot;/var/tmp/ldap_0&quot;, O_RDWR) = 12
15:35:30.748931 open(&quot;/etc/krb5.conf&quot;, O_RDONLY) = 13
15:35:30.749320 open(&quot;/dev/urandom&quot;, O_RDONLY) = 13
15:35:30.749664 open(&quot;/etc/krb5.conf&quot;, O_RDONLY) = 13
15:35:30.750056 open(&quot;/dev/urandom&quot;, O_RDONLY) = 13
15:35:30.750365 open(&quot;/dev/urandom&quot;, O_RDONLY) = 13
15:35:30.750700 open(&quot;/proc/self/task/4798/attr/current&quot;, O_RDONLY) = 13
15:35:30.750907 open(&quot;/proc/self/task/4798/attr/fscreate&quot;, O_RDONLY) = 13
15:35:30.751042 open(&quot;/etc/selinux/targeted/contexts/files/file_contexts.subs&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
15:35:30.751095 open(&quot;/etc/selinux/targeted/contexts/files/file_contexts&quot;, O_RDONLY) = 13
15:35:30.751199 open(&quot;/etc/selinux/targeted/contexts/files/file_contexts.homedirs&quot;, O_RDONLY) = 14
15:35:30.751251 open(&quot;/etc/selinux/targeted/contexts/files/file_contexts.local&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
15:35:30.873405 open(&quot;/proc/self/task/4798/attr/current&quot;, O_RDONLY) = 13
15:35:30.873964 open(&quot;/proc/self/task/4798/attr/fscreate&quot;, O_RDWR) = 13
15:35:30.874148 open(&quot;/usr/local/etc/openldap/ldap-infinite-temp.keytab&quot;, O_RDONLY) = 13
15:35:30.874228 open(&quot;/proc/self/task/4798/attr/current&quot;, O_RDONLY) = 14
15:35:30.875398 open(&quot;/proc/self/task/4798/attr/fscreate&quot;, O_RDWR) = 14
</PRE>
There are also many repeated calls to read, mmap, brk, and others that repeat 9 times while sasl_server_start() is running.<BR>
<BR>
So far, I have only tinkered with the sample/server.c code and tracked the slowness to sasl_server_start().<BR>
<BR>
With selinux disabled, it seems that sasl_server_start() does similar looping with krb5.conf, /etc/hosts, etc.&nbsp; The loop is still there, but, it does not take long because selinux is not slowing things way down.<BR>
<BR>
Kinit, ksu, ssh, and other &quot;kerberized&quot; programs do not seem to have any performance problems on CentOS 6.3.&nbsp; I have only noticed the slow down on programs that use SASL with saslauthd running on a system with selinux enabled.<BR>
<BR>
I appreciate any ideas you may have.<BR>
<BR>
Thanks<BR>
<BR>
Matt<BR>
<A HREF="mailto:mbrookov@mines.edu">mbrookov@mines.edu</A><BR>
<BR>
<BR>
</BODY>
</HTML>