Samba 2.0.7 slowdown on Solaris 2.6 with gigantic /dev tree
Bernhard Sadlowski
sat06 at mat.mohn.bertelsmann.de
Fri Jan 26 17:49:13 GMT 2001
Hello,
Please apologize, if this has been raised before. I didn't find any hint for
this problem before.
I've used gcc 2.8.1 and installed Samba 2.0.7 on a Solaris 2.6 machine.
At start of smbd I notices a huge slowdown: about 5 minutes for each new
login!
The explanation: Solaris doesn't have a /dev/urandom device and therefore
Samba tries to get a random seed by scanning /dev and xor-ing the inode
values. But the machine has about 60000 device entries in /dev (because we
have lots of storage attached to the server), so this resulted in this
unpleasant behaviour.
I've attached a patch which just replaces /dev with /tmp in
"source/lib/genrand.c". Maybe it is better to scan only some fewer /dev
devices or to make a configuration option for the used directory.
Is this a known problem? It still exists in Samba 2.2.0-alpha1.
Bernhard
PS: I am not yet on this list. Please Cc any replies.
--
Bernhard Sadlowski, fon: +49 5241 80 88558
Mohn Media GmbH fax: +49 5241 80 6628
sat06 at mat.mohn.bertelsmann.de
-------------- next part --------------
diff -ur samba-2.0.7/source/lib/genrand.c samba-2.0.7-devfix/source/lib/genrand.c
--- samba-2.0.7/source/lib/genrand.c Wed Jul 21 03:25:08 1999
+++ samba-2.0.7-devfix/source/lib/genrand.c Thu Jan 25 18:36:47 2001
@@ -140,8 +140,11 @@
if(!got_random) {
/*
* /dev/urandom failed - try /dev for timestamps.
+ *
+ * source changed for solaris systems, which have gigantic /dev trees
+ * use now /tmp instead of /dev
*/
- do_dirrand("/dev", md4_inbuf, sizeof(md4_inbuf));
+ do_dirrand("/tmp", md4_inbuf, sizeof(md4_inbuf));
}
/* possibly add in some secret file contents */
More information about the samba
mailing list