On Sat, 2014-05-24 at 03:28 +0100, Martin Gregorie wrote: > On Sat, 2014-05-24 at 02:36 +0200, Karsten Bräckelmann wrote:
> I've looked down the list a couple of times and didn't see anything I > thought would affect it due to a possibly bad assumption that this sort > of error would be insulated from the underlying binary code by at least > one layer of Perl library code. Plain spamassassin script works, spamc/d combination does not. Nope, this is not necessarily related to any Perl code. Looking through the full list of upgraded packages, the two SELinux related ones stick out. In particular, since the client / server environment is affected, but not the standalone variant of calling the majority of shared SA Perl code. > > By "started it", do you mean starting the daemon simply for that test, > > or did you ping spamd after launching your dev test rig? > > Yes, I meant starting it. As I said, this problem surfaced on the box I > use for SA rules development, actually a Lenovo laptop. Consequently SA > only runs on it during a rules test: all my test scripts are written to > start spamd, run the test and stop it. > > > Clean room vs. production conditions... > > Yes, exactly. Nah. I was talking about the difference in your test (manually starting spamd) and the environment observed to fail (your dev test rig script). If you want to debug what might cause spamc/d to fail, you need to reproduce the environment as close as possible. As is, I cannot even be sure your manual spamd test and the dev environment do use the same port, since at least the dev script doesn't sound like root privileges to me. > I have another script that copies the SA configuration > from the testing box to the live machine and then restarts the live copy > of spamd. That said, the run-time environment of spamd on the testing > machine is as near to identical with the live system as I can reasonably > make it. Unrelated to the problem at hand, but Fedora 18 and Fedora 20 does not account for "as near to identical" as reasonably possible. -- char *t="\10pse\0r\0dtu\0.@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4"; main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1: (c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}