Am 2022-05-08 18:13, schrieb Henrik K:
On Sun, May 08, 2022 at 05:33:24PM +0200, Michael Storz wrote:
Am 2022-05-08 06:43, schrieb bugzilla-dae...@spamassassin.apache.org:
> https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7987
>
> --- Comment #4 from Henrik Krohns <apa...@hege.li> ---
> I mostly agree with everything, great to have extra eyeballs. Can you
> comment
> if my previous list comment and Revision 1900667 additions cleared any
> things
> up for you and changes anything?
>

Unfortunately not, I'm still struggling to understand the various aspects of processing. However, I understand, that a call of rule_ready for a sync rule
makes sense. It does not need a call to rule_pending in this case.

Example for a problem: a rule_pending must be followed by a rule_ready or a got_hit. But how a got_hit should work instead of a rule_ready is a mystery to me. In sub do_meta_tests the query whether a rule dependency exists is
defined as:

I noticed that got_hit doesn't do everything that it can. But I also found many other cases that need fixing and better testing. Spent 8 hours today trying different things and planning how to do things, trying to make bgsend
automatically mark things ready is hard, as it's so complex in itself..
this is going to take few days..

Wow, maybe it would help when you try to explain what is going wrong? I have made the experience that I have often already found the solution when I tried to describe a problem to someone else, even though they didn't have much of an idea about the problem.

The only other problem I found with bgsend_and_start_lookup is the handling of end cases. When abort_remaining_lookups is called, it triggers a callback for the lookups that are still waiting. They in turn can register lookups with bgsend_and_start_lookup again. Therefore, bgsend_and_start_lookup must check whether it is in the aborting state, and instead of queuing the lookup, it should immediately abort the lookup in the same way as abort_remaining_lookups. However, it should be prepared to break a loop if the plugin misbehaves and schedules lookup after lookup.

Michael

Reply via email to