Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

RE: [milter-greylist] hang in new configuration load

2014-05-13 by Bruncsak, Attila

> In acl.c we have a rather long ACL_RDLOCK/ACL_UNLOCK in acl_filter(). It
> calls ac->ac_acr->acr_filter() and acl_actions(). Both may perform
> network operations (e.g.: DNSRBL).
> 
> How can that be fixed? We can lock the individual entry and assign it a
> refcount (config reload will decrease the refcount, unlink the entry,
> and leave it allocated if refcount > 0). Or we can make sure no thread
> get stuck forever here, but I am not sure how it could be acheived.
> 

As a principle all lock protected critical section must not contain any
other actions than manipulating the memory of the process shared
between the threads. 
This excludes every I/O operation like sending syslog message or whatever else.

Please let us know if anybody disagree with me!

If you agree with me, we should start thinking of redesigning the program
strictly adhering to that principle.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.