Hi all, Just FYI, for those of you who use DecodeShortURLs.pm ... it appears that, if you are running in a per-user setup (i.e., running spamd as root such that it does a setuid <user> when invoked from spamc, and/or allowing individual users to run spamassassin), then the short-URL cache used by DSU must be world-writable (or, more correctly, writable by all users invoking spamd/SA), else the DSU rules fail. This is because DSU is trying to write to the cache file; if it appears read-only to spamd/SA, the HAS_SHORT_URL rule fails, which halts DSU operation.
Unfortunately the error is completely silent unless running in debug mode, and since very few people operate spamd that way (or even SA, in normal usage), the only way one would notice this is because the rule fails to fire when it should. Sysadmins who normally use spamd as root, but check their installation via manually invoking SA as root, could potentially miss this. I filed an issue at DSU's github: https://github.com/smfreegard/DecodeShortURLs/issues/6 The workaround for now, if running per-user, is to make the DB world-writable. The ultimate solution would be to fail gracefully (ignore failure to write; treat failure to read as "not found"; perform appropriate lookups even if not writable), and to provide an option for per-user databases, like with Bayes. Unfortunately I'm not at a position where I can patch the code myself, but I wanted to let SA list users know, in case they might be in the same boat. Cheers. --- Amir