Menu

#40 spamprobe hangs in libdb; use MySQL instead?

v1.0 (example)
open
nobody
None
5
2022-06-30
2022-06-30
No

First of all, I realize I might be talking into a black hole, seeing there's been hardly any activity on the mailing list or about the tickets here for many years. Is anyone actually working on spamprobe anymore? Well, I'll post anyway, if only for reference ...

I had used spamprobe for many years without major problems. But recently it started hanging.

strace shows it blocks on a futex call which is strange enough since it's single-threaded and no other instances were running at the same time.

Once it happens, it seems to happen every time. Rebuilding the database helped, but only for a short while. After few days, it would hang again.

gdb shows the offending calls come from some libdb functions. Since I don't feel like debugging libdb, and you might not either, this got me thinking if using a file-based DB such as Berkeley is really the best option here.

Using a DB server such as MySQL might, apart from hopefully avoiding such locking bugs, be better for performance since it doesn't have to load the whole DB on each invocation, but can cache it if used frequently, as it normally does.

I see a similar request was made recently (well, 17 years ago ;) in https://sourceforge.net/p/spamprobe/feature-requests/23/ (with yet another reason), but got no replies.

Discussion


Log in to post a comment.