Exim 4.95

What would you suggest for the default value? :)
1000000? https://lists.exim.org/lurker/message/20211009.071119.17958905.ca.html

Any idea on a timeframe for an official DirectAdmin solution for this? The only confirmed/tested fix now seems to downgrade Exim with:

Code:
echo "exim:4.94.2:" >> /usr/local/directadmin/custombuild/custom_versions.txt
/usr/local/directadmin/custombuild/build update
/usr/local/directadmin/custombuild/build exim
/usr/local/directadmin/custombuild/build exim_conf

Would be nice if DirectAdmin would step in here and come up with a proper long term solution.
 
Last edited:
After updating to this version the Exim stops working with the following errors in /var/log/messages:

Code:
Nov 29 12:32:44 srv2 kernel: pid 23374 (exim), jid 0, uid 12: exited on signal 11
Nov 29 12:32:48 srv2 kernel: pid 23483 (exim), jid 0, uid 12: exited on signal 11
Nov 29 12:32:49 srv2 kernel: pid 23784 (exim), jid 0, uid 12: exited on signal 11

The exim panic log shows messages like these:

Code:
2021-11-29 12:32:44 1mrdxi-000650-QY SIGSEGV (maybe attempt to write to immutable memory)
2021-11-29 12:32:47 1mrdxm-00066l-Nu SIGSEGV (maybe attempt to write to immutable memory)
2021-11-29 12:32:49 1mrdxo-0006Bc-Ps SIGSEGV (maybe attempt to write to immutable memory)

I had to revert back to 4.94.2
 
I just noticed a new exim.conf version with message_linelength_limit was released today.

If you currently have Exim 4.94.2 pinned in custom_versions.txt, remove it first:
Code:
sed '/exim:4.94.2:/d' -i /usr/local/directadmin/custombuild/custom_versions.txt

Then upgrade to Exim 4.95:
Code:
/usr/local/directadmin/custombuild/build update
/usr/local/directadmin/custombuild/build exim
Edit: I removed the configuration error part because it's not a problem if you use ./build update first (see comments below).
 
Last edited:
I just noticed a new exim.conf version with message_linelength_limit was released today.

If you reverted to Exim 4.94.2 the new exim.conf will break Exim:
Code:
Exim configuration error in line 1014 of /etc/exim.conf:
  option "message_linelength_limit" unknown

If you currently have Exim 4.94.2 pinned in custom_versions.txt, remove it first:
Code:
sed '/exim:4.94.2:/d' -i /usr/local/directadmin/custombuild/custom_versions.txt

Then upgrade to Exim 4.95:
Code:
/usr/local/directadmin/custombuild/build update
/usr/local/directadmin/custombuild/build exim
I guess you may have downloaded versions.txt only, without update of CB, as CB should auto-downgrade exim.conf if exim is older than 4.95.
 
You also need the latest CustomBuild script (not just versions.txt), so yes. ./build update downloads the latest script and versions.txt.
 
Indeed, build update was needed before running build_versions. That works as expected:
Code:
./build update
./build update_versions

Updating exim.conf
Selecting exim.conf 4.5.35 automatically, as older versions are not supported with exim 4.95 and newer.
 
Might be slightly off topic...

Would be nice if there were a changelog for the options in custombuild - or is there some where?

Is exim_conf the only option in custombuild that is just a configuration file? I guess there's dovecot_conf. There's also cpanel_to_da which is just a script.

Would be nice if there were a list of changes made to these specifically. Or even just the option to download the new config file separately so that it can be compared to the current config file.

Does exim_conf 4.5.36 remove ClamAV? Seems it's also removing the line

.include_if_exists /etc/exim.clamav.conf


Edit: Nevermind... I guess that comment gets removed if ClamAV is installed some where? Compared the exim_conf v4.5.35 from files.directadmin.com to exim_conf v4.5.36 from files.directadmin.com and the only change was the addition of the message_linelength_limit directive in the smtp transports.
 
Just wondering why the value is 52428800?
Wouldn't it be a question with any other value? :) Exim had a default of 998, that number was defined in RFC. All the other values are custom anyway. We need a number big enough to serve the long lines.
 
Does this solve the "message has lines too long for transport" problem with this value?
It should. I tested with a smaller value, and it's still working for my servers.

Wouldn't it be a question with any other value? :) Exim had a default of 998, that number was defined in RFC. All the other values are custom anyway. We need a number big enough to serve the long lines.
I know it's a custom value :D Just wondering, because if I remember correctly, somewhere in this post, others mention Postfix or MS Exchange has a value of 8000. 52428800 is wayyyyy much bigger :D If it's too big, is there any risk? For example, will a spam message with very long lines take more cpu, ram for processing?
 
I know it's a custom value :D Just wondering, because if I remember correctly, somewhere in this post, others mention Postfix or MS Exchange has a value of 8000. 52428800 is wayyyyy much bigger :D If it's too big, is there any risk? For example, will a spam message with very long lines take more cpu, ram for processing?

Before this version there wasn't a limit, so asking if there is a risk for using more resources is irrelevant I think... :p
 
MS Exchange has a value of 8000. 52428800 is wayyyyy much bigger :D
Yes as long as MS doesn't start complaining, we should be fine.

We need a number big enough to serve the long lines.
Just out of curiosity, is this a non changeable value? Or can this be adjusted (if somebody would want that) via one of the custom scripts like exim.variables.conf.custom or something like that?
 
Just out of curiosity, is this a non changeable value? Or can this be adjusted (if somebody would want that) via one of the custom scripts like exim.variables.conf.custom or something like that?

From what I can tell, this isn't directly user configurable. But you can easily customize the value with a simple post exim_conf hook

mkdir -p /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post
touch /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh
chmod 700 /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh


Then edit the /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh file with:

sed -i "s/message_linelength_limit = 52428800/message_linelength_limit = %mycustomlimit%/g" /etc/exim.conf
systemctl reload exim


And then when exim_conf if built this script should run after the build is complete and update the message_linelength_limit to %mycustomlimit%
 
I was just curious, probably won't change anything. But thank you for sharing such nice and clear instructions for those who would like to change it.
I wasn't even aware of the post exim_conf hook, so I also learned something again.
Thanks!
 
From what I can tell, this isn't directly user configurable. But you can easily customize the value with a simple post exim_conf hook

mkdir -p /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post
touch /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh
chmod 700 /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh


Then edit the /usr/local/directadmin/custombuild/custom/hooks/exim_conf/post/fix_message_linelength_limit.sh file with:

sed -i "s/message_linelength_limit = 52428800/message_linelength_limit = %mycustomlimit%/g" /etc/exim.conf
systemctl reload exim


And then when exim_conf if built this script should run after the build is complete and update the message_linelength_limit to %mycustomlimit%
@sparek i would like to know more about this way to trigger hook-scripts .. how you came to that info ? would pls you be so kind and tell me where you found info about this ?

tnx
-c-
 
Back
Top