If you’re building (compiling) a new qmail server on some Linux host and after properly installing the qmail binaries and daemontools, suddenly you notice in readproctitle service errors: or somewhere in in qmail logs for instance in/var/log/qmail/current the error:
/usr/local/bin/tcpserver: error while loading shared libraries:
libc.so.6: failed to map segment from shared object: Cannot allocate memory
then you have hit a bug caused by insufficient memory assigned for tcpserver in your /var/qmail/supervise/qmail-smtpd/run daemontools qmail-smtpd initialize script:
This kind of issue is quite common especially on hardware architectures that are 64 bit and on Linux installations that are amd65 (x86_64) e.g. run 64 bit version of Linux.
It relates to the 64 bit architecture different memory distribution and thus as I said to solve requires increase in memory softlimit specified in the run script an example good qmail-smtpd run script configuration which fixed the libc.so.6: failed to map segment from shared object: Cannot allocate memory I use currently is as follows:
#!/bin/shQMAILDUID=`id -u vpopmail`NOFILESGID=`id -g vpopmail`MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`# softlimit changed from 8000000exec /usr/local/bin/softlimit -m 32000000 /usr/local/bin/tcpserver -v -H -R -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD"
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp
/var/qmail/bin/qmail-smtpd
/home/vpopmail/bin/vchkpw /bin/true 2>&1
The default value which was for softlimit was:
exec /usr/local/bin/softlimit -m 8000000
A good softlimit raise up values which in most cases were solving the issue for me are:
exec /usr/local/bin/softlimit -m 3000000
or
exec /usr/local/bin/softlimit -m 4000000
The above example run configuration fixed the issue on a amd64 debian 5.0 lenny install, the server hardware was:
CPU: Intel(R) Core(TM)2 Duo CPU @ 2.93GHz
System Memory: 4GB
HDD Disk space: 240GB
The softlimit configuration which I had to setup on another server with system parameters:
Intel(R) Core(TM) i7 CPU (8 CPUS) @ 2.80GHz
System Memory: 8GB
HDD Disk Space: 1.4Terabytes
is as follows:
#!/bin/sh
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/bin/softlimit -m 64000000
/usr/local/bin/tcpserver -v -H -R -l 0
-x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD"
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp
/var/qmail/bin/qmail-smtpd
/home/vpopmail/bin/vchkpw /bin/true 2>&1
If none of the two configurations pointed out in the post works, for you just try to manually set up the exec /usr/bin/softlimit -m to some high value.
To assure that the newly set value is not producing the same error you will have to, reload completely the daemontools proc monitor system.
To do so open /etc/inittab comment out the line:
SV:123456:respawn:/command/svscanboot
to
#SV:123456:respawn:/command/svscanboot
Save again /etc/inittab and issue te cmd:
linux:~# init q
Now again open /etc/inittab and uncomment the commented line:
#SV:123456:respawn:/command/svscanboot
to
SV:123456:respawn:/command/svscanboot
Lastly reload the inittab script once again with command:
linux:~# init q
To check if the error has disappeared check the readproctitle process, like so:
linux:~# ps ax|grep -i readproctitle
The command output should produce something like:
3070 ? S 0:00 readproctitle service errors: .......................................
Hope that helps.
More helpful Articles

Tags: amd64, amp, binaries, bit, bit architecture, Cannot, cdb, control, cpu intel, Disk, error while loading shared libraries, exec, hardware architectures, host, init, inittab, instance, insufficient memory, intel, libc, Linux, linux host, linux installations, loading, log, logs, QMAILDUID, script, segment, server hardware, shQMAILDUID, smtp, system, tcp, value, vpopmail
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Thank you so much for this post.I was having the same error and your solution totally worked.
Be blessed!
View CommentView Comment