Open Bug 537501 Opened 15 years ago Updated 2 years ago

Need new function "STOP EXECUTION - ALL" for Global Filters, which will stop and not execute ANY further filters (global nor account-specific)

Categories

(MailNews Core :: Filters, defect)

x86
Windows 7
defect

Tracking

(Not tracked)

UNCONFIRMED

People

(Reporter: RuCla, Unassigned)

References

Details

Attachments

(1 file)

321.92 KB, application/x-zip-compressed
Details
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.6) Gecko/20091201 YFF35 Firefox/3.5.6
Build Identifier: Thunderbird 3.0

I tried to create a filter action which only should run, if all other filter rules do not match. Therefore I have added the filter action "stop filter" to all other filter rules. But when one of the filter rules is executed the "fallback rule" is also executed even if "stop filter" is included.

Reproducible: Always

Steps to Reproduce:
1. Create some filter rule
2. add action "stop filter" to this rule
3. Create a filter rule which would match every time
4. Get a mail which matches to filter of step 1
5. Put the filter of step 4 at the end of the filter list

Actual Results:  
Both filters are executed

Expected Results:  
Only the first filter should be executed
Can you attach minimum test case and data for diagnosis?
  1. Define dummy POP3 account with no Global Inbox use,
     Create a mail folder(say "Test"), Copy a mail which produces problem to
     "Test".   
  2. Copy msgFilterRules.dat of existent account to mail directory of the dummy
     POP3 account, restart Tb, and change Message Filter for the dummy POP3
     account appropriately, and make it minimum.
  3. Enable filter log, Clear filter log, for the dummy POP3 account.
  4. Tools/"Run filters on folder" on "Test" folder.

Please attach(never paste long data, please) msgFilterRules.dat, filter log(filterlog.html), test mail(.eml file, or mail folder file for "Test"). 
And, describe about "what should be/what you are expecting" and "what is wrong behaviour of Tb", please.
OK, I have done your test and it work fine for the dummy acount. Maybe there is a problem with a global inbox folder (local)?

Describtion of what I'm expecting:
If I add an action "Stop execution" to a filter, I expect that all filter rules which are defined after the mentioned filter are not executed. 
Example:
1. Filter which moves Email to another folder (including "stop execution" at the end)
2. Filter which plays a sound.
So when Filter (1) executes, filter (2) should not execute

Am I wrong?
(In reply to comment #2)
> Example:
> 1. Filter which moves Email to another folder (including "stop execution" at
> the end)
> 2. Filter which plays a sound.
> So when Filter (1) executes, filter (2) should not execute

I think so too.

(Q1) Filter log says "(1) was executed"?
> moves Email to another folder 
(Q2) Really "another folder"?
     If "move to same folder as Run Filters on target folder" is involved,
     bug 232569 / bug 393668 may still happen in special situations.
     It may cause unexpected result.

As seen in bug 393668, "move folder" may have some problems in special situation including "folder of Local Folders". "stop execution" may have different problem.
Please separate "move to folder" case and "stop execution" case.
(Q1) should be next;
    (Q1) Filter log says "(1) was matched for the mail"?
To Q1:
I think we misunderstood:
The problem is that both rules are executed, not that no one is executed.
BTW: The log says the rule is executed, but it don't say that the "stop execution" action is done

To Q2:
My filter actions are defined like this:
1. Filter: If mail from xxx@xxx.xx then move to local folder and play sound and stop execution
2. Filter: If a mail is greater than 0 kb then play sound and stop execution

So maybe the second filter makes problems?
(In reply to comment #5)
> I think we misunderstood:

No, we don't have misunderstood. Problem is "evidence of your problem/data to do duplicate test is not provided yet by you". Your statements only. I never think phenomenon you described didn't occur at your environment. 
Please attach filter rules(msgFilterRules.dat) and filter log(filterlog.html).
And, please explain your test procedure(you said your problem couldn't be reproduced with dummy POP3 account).
(In reply to comment #5)
> My filter actions are defined like this:
> 1. Filter: If mail from xxx@xxx.xx then move to local folder and play sound and
> stop execution

Possibly issue relates to both of "move to folder"(which will stop further execution of following rules to the mail) and "stop execution" in a filter rule.
> Order of actions and mothod of nsMsgFilter::GetSortedActionList for it.
> http://mxr.mozilla.org/comm-central/source/mailnews/base/search/src/nsMsgFilter.cpp#310
> http://mxr.mozilla.org/comm-central/source/mailnews/base/search/src/nsMsgFilter.cpp#310

I guess that variable of nextIndexForStop and ++nextIndexForStop in each case block except in "379 case nsMsgFilterAction::StopExecution:" block.
To Comment 6:
My environment:
several accounts (they are redirected to a global inbox (local))

So when a new mail arrives and one filter rule is executed I expect that the
"fallback rule" which should only be executed if no other rule hits also is
executed.
example files
To Comment 10:
My "fallback rule" is called "Sonstige Emails". This rule should only be executed if no other rule hits. The biggest rule is called "Werbung" which often hits.
To Comment 8:
I cannot find the mentioned variable in the code snippet. But I guess that it should be included...
(Correction of my previous comment #8)
Replace last "." by "are required.", please. 

(In reply to comment #9)
> several accounts (they are redirected to a global inbox (local))
> So when a new mail arrives and one filter rule is executed I expect that the
> "fallback rule" which should only be executed if no other rule hits also is executed.

Problem only when "new mails is downloaded"?
Or problem is re-produced by "Run filters on" on mail folder of deferred_to_account(Global Inbox owner. usually "Local Folders")?
If former, do you enable qurantine option?  

Filter rule of deferring account(account who uses Global Inbox)?
Or filter rule of deferred_to_accoun(Global Inbox owner, usually "Local Folders")?
 
Anyway, could you please provide your environment/phenomenon by data which can be used to reproduce your problem, and explain "steps to reproduce your problem"(and "steps you couldn't reproduce your problem"), please.
(In reply to comment #10)
> filterlog and msgFilterRules.dat

Last part of filter log.
> <p>
> Filter &quot;Freunde Claudia&quot; auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt; - Wir sind krank ! am 03.01.2010 10:17:54 angewendet
> Play Sound
> </p>
> <p>
> Filter &quot;Freunde Claudia&quot; auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt; - Wir sind krank ! am 03.01.2010 10:17:54 angewendet
> Nachricht (ID= 4B4060C2.4090808@lamisch.de) verschoben nach mailbox://nobody@Local%20Folders/Freunde/Claudia
> </p>
> <p>a
> Filter &quot;Sonstige Emails&quot; auf die Nachricht  -  am 01.01.1970 01:00:00 angewendet
> Play Sound
> </p>
> <p>
> Filter &quot;Sonstige Emails&quot; auf die Nachricht  -  am 01.01.1970 01:00:00 angewendet
> Ausfuhrung gestoppt
> </p>

Last log for fall back filter of "Sonstige Emails" has "am 01.01.1970 01:00:00 angewendet"(epoc time in CEST(GMT+0100) used in Deutsch), and no mail data such as message-id is written in in the log record.
The epoc time is often displayed for phantome mail(MsgDB,.msf corrupted, duplicate mail entry was generated and compact folder is executed, ...)

Can you add action of "Add tag tag-x0?"?
 - Create tag of tag-x01 and tag-x02
 - Just before "Sonstige Emails", insert rule which adds tag-001 to any mail.
 - Add action of "Add tag tag-x02" to filter of name="Sonstige Emails".
To which mail is the tag-x01/tag-x02 added?
I guess tag-x02 is not added to any mail, even if tag-x01 is added to some mails. (filter is executed once more after all mail is processed==filter is executed for null or phantom mail.)
To Comment 13:
Yes the problem  only occurs, if the mail is downloaded. The steps for reproducing are not so easy because I should send a mail to an account which has the same filter rules...
To Comment 14:
Should I create these tags in msgFilterRules.dat?

<p>
> Filter &quot;Freunde Claudia&quot; auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt; - Wir sind krank ! am 03.01.2010 10:17:54 angewendet
> Play Sound
> </p>
> <p>
Filter &quot;Freunde Claudia&quot; auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt; - Wir sind krank ! am 03.01.2010 10:17:54 angewendet
> Nachricht (ID= 4B4060C2.4090808@lamisch.de) verschoben nach mailbox://nobody@Local%20Folders/Freunde/Claudia
> </p>
> <p>a
> Filter &quot;Sonstige Emails&quot; auf die Nachricht  -  am 01.01.1970 01:00:00 angewendet
> Play Sound
> </p>
> <p>
> Filter &quot;Sonstige Emails&quot; auf die Nachricht  -  am 01.01.1970 01:00:00 angewendet
> Ausfuhrung gestoppt
> </p>

If I understood the logging above correct first the filter rule "Freunde Claudia" executes playing sound and movement to an local folder, but not the action "stop execution" which is also defined in msgFilterRules.dat for "Freunde Claudia". Am I right?
So is this the problem?

>The epoc time is often displayed for phantome mail(MsgDB,.msf corrupted,
>duplicate mail entry was generated and compact folder is executed, ...)

I think this mail was neighter a phantome mail nor a null mail. It just was a mail which matches on "Freunde Claudia"
(In reply to comment #16)
> If I understood the logging above correct first the filter rule "Freunde
> Claudia" executes playing sound and movement to an local folder,
> but not the action "stop execution" which is also defined in sgFilterRules.dat for "Freunde Claudia".

I don't think so. If so, "auf die Nachricht Nadja Lamisch ..." should appear in log for "Filter &quot;Sonstige Emails&quot;" instead of "auf die Nachricht  -".
I guess;
  After successful "stop" of "Freunde Claudia" for a downloaded mail,
  one of next happened.
    a) Filter is applied to garbage which Tb wrongly thought next mail,
       after download/filterling of last mail.
    b) Qurantine option of Tb is used, and mail is qurantined by anti-virus
       software, then null data is read from temporary file,
       thus Tb applied filter to null mail data.
  And, as you have fall back filter, "Sonstige Emails" was applied to it. 
Why I guess so;
  - "auf die Nachricht" only in log.
     no name part of From:, no mail address of From: in log.
     it indicates no From: header is available.
  - "-" only in log. it indicates no Subject: header is available.
  - epoc time as mail date in log. it indicates no Date: header is available.

(In reply to comment #15)
> Yes the problem only occurs, if the mail is downloaded.

(Q1) Problem doesn't occur by "Run Filters on" Inbox of "Local Folders"?
(Q2) Problem always occurs upon any automatic/periodical download or upon any
     manual download by "Get Msgs"?
(Q3) If (Q2)=No, how frequently do you experience the problem?
   
(In reply to comment #16)
> Should I create these tags in msgFilterRules.dat?

Tools/Options/Display, "Tags" tab, "Add" button.
If your assumption is right, tag-x01/tag-x02 should be added to following mail.
> auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt;
> - Wir sind krank !
> am 03.01.2010 10:17:54
> angewendet Nachricht (ID= 4B4060C2.4090808@lamisch.de)
Component: General → Filters
Product: Thunderbird → MailNews Core
QA Contact: general → filters
To Comment 17:
Maybe it could help, if I translate the log messages:
auf die Nachricht Nadja Lamisch &lt;nadja@lamisch.de&gt; - Wir sind krank ! am 03.01.2010 10:17:54 angewendet
means
filter "Freunde Claudia" is execute on message with sender nadja@lamisch.de
and "- Wir sind krank !" 
is just a snippet of the mail.

BTW: The message is moved correctly to the specified folder and the sound is also played correctly. 

To Q1: You are right
To Q2: For every download. It doesn't if automatic/periodical or manual

To Comment 14:
> Can you add action of "Add tag tag-x0?"?
> - Create tag of tag-x01 and tag-x02
> - Just before "Sonstige Emails", insert rule which adds tag-001 to any mail.
> - Add action of "Add tag tag-x02" to filter of name="Sonstige Emails".

You are right, if I include the rule with tag-x01 it is every time include but never tag-x02 of "Sonstige Emails". Nevertheless something strange happens because the action "Play sound" of "Sonstige Emails" is executed....
(In reply to comment #18)
> Nevertheless something strange happens because the action "Play sound" of "Sonstige Emails" is executed....

It's normal. Because you request "Play sound" in fall back filter rule of "Sonstige Emails", if no filter rules above "Sonstige Emails" hits with a mail, sound is played according to your request.
See filter log file content. You can see both of next. 
  a) Normal log of "Sonstige Emails" with normal mail data
     (tag-x01 is added to the mail after "Add tag-x01" is added))
  b) Funny log of "Sonstige Emails" with no from data, with epoc time
     (No mail with tag-x02 is found)
You see b) after every download of mails?

Do you set next option to true? (Check via Config Editor)
> mailnews.downloadToTempFile
Yes I got this log everytime when download emails.

When the filter "Sonstige Emails" is used correcty I got this additional log:
<p>
Filter &quot;Sonstige Emails&quot; auf die Nachricht bugzilla-daemon@mozdev.mozdev.org - [webmailnotifier] [Bug 22204] Checking for emails does not work in version 2.0.3 am 05.01.2010 08:31:28 angewendet
AusfĂĽhrung gestoppt
</p>

But everytime I have the action "play sound" I got this funny logging:
<p>
Filter &quot;Sonstige Emails&quot; auf die Nachricht  -  am 01.01.1970 01:00:00 angewendet
Play Sound
</p>

> Do you set next option to true? (Check via Config Editor)
Yes it is set true
(In reply to comment #20)
> > Do you set next option to true? (Check via Config Editor)
> Yes it is set true

What anti-virus software do you use? Is there log for qurantine of file in Tb's profile directory or temp directory?
I use Norton Antivirus and there is no log for qurantine
Problem around qurantine option and "stop execution" was observed.

Filter rules:
 filter-1 : if subject begins with test-1, 
             add tag test-1, copy to test-1, stop execution
 filter-2 : if subject begins with test-2, 
             add tag test-2, copy to test-2, stop execution
 filter-3 : match all messages,
             add tag Important, copy to fall-back, stop execution
Test:
1. Send 6 mails to myself, test-11,test-12,test-21,test-22,test-31,test-32
2. Get Msgs(POP3 account) 
 folder test-1: no mail is listed, file seze=0
 folder test-2: 1 mail is listed with tag of test-1 added,
                but file size of file test-1 = 0,
                view source displays nothing.
                after rebuild-index, nothing is listed
 folder test-2: 2 mails are listed with tag of test-2 added,
                but file size of file test-1 = 0,
                view source displays nothing.
                after rebuild-index, nothing is listed.
 This problm couln't be seen with quarantine option is disabled.
  
Can you check with quarantine option disabled?
> mailnews.downloadToTempFile = false
To Comment 23:
I have checked with the disabled option and nothing changed
if this isn't bug 376441, please improve summary as soon as you have details
I see now that most of the filters generally are not performed when the mails are downloaded. when I start the filter (junk and user defined) actions via menu everything is OK.
RuCla, using exact terminology helps people better understand your bug. 
for example filter action "stop"  should be "Stop Filter Action" (unless you are seeing something different in a localize version.


(In reply to comment #27)
> when I start the filter (junk and user defined) actions via
> menu everything is OK.

what do you mean?  run filters on folder?
Summary: Filter action "stop" doesn't work → "Stop Filter Action" doesn't work
To Comment 28:
I'm sorry, but I'm using the german version and simple try to translate the german menu items...
Your question:
Yes I meant "run Filters on folder"
This may be the same or a related issue: In reviewing FiltaQuilla, reviewer Archaeopteryx stated:

"Stop filter execution": I assumed what this will stop the filters from being applied to the message that matches, not all messages. I had a subject regex filter as first filter which would have stopped filter execution, the second filter matched all messages and marked them as read. If both filters had been active and the first messages didn't match filter 1, they still didn't get marked as read, but after disabling filter 1, it worked.

to which I replied:

The behavior that you describe is true for all search terms, not just FiltaQuilla terms. AFAIK, this is only an issue for "after the fact" filters (manual or "run now"). So this is unchanged in version 1.0.1 because it is a core issue, not an issue with this extension.
please update the bug summary to correctly indicate the exact issue (summary is too vague).. thanks.
John, can you refine this further, perhaps change summary, and should we confirm?
Who is John?
And should we confirm? In my opinion yes.
Summary: "Stop Filter Action" doesn't work → "Stop Filter Action" doesn't prevent filters listed below it in the filter list from being executed
Status: UNCONFIRMED → NEW
Ever confirmed: true
> Ludovic Hirlimann [:Usul] 2012-04-09 05:39:30 PDT
> Status: UNCONFIRMED → NEW
> Ever confirmed: true

How did you confirm this bug?

Bug opener's claim is;
  Other filter rules is still applied to same mail,
  even after a rule which has "Stop Filter Execution" is applied to the mail.
  In logs attached below case, "Move to" is also requested in same filter rule. 
Kent James's case in Comment #30 is;
  If "Stop Filter Execution" in a filter rule fires on a mail,
  filter rule application on other/irrelevant mails is not executed.

Following is a "multiple filter log lines for same Messae-ID" in attached filterlog.html by bug opener.
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat

Log lines corresponding to above is following and these are concecutive logs.
> <p>
> Filter &quot;Elternbeirat&quot; auf die Nachricht &quot;Schueler, Werner&quot; &lt;werner.schueler@intel.com&gt; - Gehweg und die Nichtraucher... am 05.10.2009 21:09:30 angewendet
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat
> </p>
> <p>
> Filter &quot;Elternbeirat&quot; auf die Nachricht &quot;Schueler, Werner&quot; &lt;werner.schueler@intel.com&gt; - [kjhdorfen] Gehweg und die Nichtraucher... am 05.10.2009 21:09:30 angewendet
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat
> </p>
> <p>
> Filter &quot;Elternbeirat&quot; auf die Nachricht &quot;Schueler, Werner&quot; &lt;werner.schueler@intel.com&gt; - [kjhdorfen] Gehweg und die Nichtraucher... am 05.10.2009 21:09:30 angewendet
> Nachricht (ID= 187DD816F568F94793FE1CF2E07029532DDE1EF4@irsmsx505.ger.corp.intel.com) verschoben nach mailbox://nobody@Local%20Folders/Elternbeirat
> </p>

Filter rule for name=name="Elternbeirat".
> name="Elternbeirat"
> enabled="yes"
> type="48"
> action="Move to folder"
> actionValue="mailbox://nobody@Local%20Folders/Elternbeirat"
> action="Stop execution"
> condition="OR (from,contains,kja-dorfen.de) OR (from,contains,werner.schueler@intel.com) OR (from,contains,fam.marek@vr-web.de) OR (from,contains,yahoogroups.de) OR (from,contains,wschueler@yahoo.com) OR (from,contains,tigerente_28@gmx.de)"

(A) For first log and second log.
Why same Message-ID is logged for different Subject: and Date:?
(B) For second log and third log.
Why absolutely same filter log is written?

This bug is "false hit on asoletely irrelevant/different mail" case, isn't it?
For example, if a mail doesn't have From:, From: of previous mail is used.
(This problem existed on CC: header, and was fixed, but it seems somehow regressed in some builds.)
To Ludovic, my comment #23 case is rather similar to Kent James's Comment #30.
FYI.
Bug 552936 is for "Stop Filter Execution in a rule prevents further filter application on other mails, if Run Filter on Folder".
This means "Stop Filter Execution in a rule wroks well as expected, if Run Filter on Selected Messages".
i.e. "Stop Filter Execution" usually works normally, and it works well upon mail download, and "Run Filters on Selected Message" is similar to "filter upon download" although "Run Filters on folder" is different.
(In reply to RuCla from comment #15)
> Yes the problem only occurs, if the mail is downloaded.

This is same as a characteristics of problem of "CC: of previous mail is used if mail doesn't have CC: header".
(In reply to WADA from comment #35)
> To Ludovic, my comment #23 case is rather similar to Kent James's Comment
> #30.

Yeah I didn't read all context. my bad.
Status: NEW → UNCONFIRMED
Ever confirmed: false
Cool, because this one report was saying (per current summary) the opposite what other reports are saying.

Can the reporter check what is the current state of things in his installation (TB11 hopefully)?
Thunderbird Daily 2012-04-19, Windows XP SP 3 32-bit

The bug summary is valid for me.

Steps to reproduce:
1. Create a POP3 account which uses the global inbox (Local Folders).
2. Create 2 filter for Local Folders, each checking the subject if it contains 'Test N' with N=1...2. 'Each a different tag and copy the message to a selected, different folder
3. Add a third filter which matches all messages, adds a third tag and copies the messages to a third folder.

Send you 6 mails which have the same subject and body: 'Test AB' with A=1...3 and B=1...2

Actual result:
All mails can be found in the Inbox of Local Folders as expected. The folders for filter 1 and 2 contain the 2 expected mails. But the catch-all folder contains all 6 mails which should only be 2 (Test 31 and Test 32).
Where is "Stop filter execution" in your steps? Copy does not imply one, only Move does.
Sorry, Filters 1 and 2 have "Stop filter execution".
Sorry again, I made a mistake, it works as expected.
Summary: "Stop Filter Action" doesn't prevent filters listed below it in the filter list from being executed → "Stop Filter Execution" action doesn't prevent filters listed below it in the filter list from being executed
Attached filter rules is relatively simple, although many rules are defined.
Filter consists of three kinds of action combination.
(order of actions is sorted by INDEX value of action, to show execution order)

(Type-A) Some are;
> name=" (without playing sound, move to a folder) "
> action="Move to folder", actionValue="mailbox:// ... .wav"
> action="Stop execution"
> condition=" from related condition only "
(Type-B) And others are;
> name=" (with playing sound, move to a folder) "
> action="Custom", customId="tonequilla@mesquilla.com#playSound", actionValue="file:// ... "
> action="Move to folder", actionValue="mailbox:// ... .wav"
> action="Stop execution"
> condition=" from related condition only "
(Type-C) Finally;
> name="Sonstige Emails"
> action="Custom", customId="tonequilla@mesquilla.com#playSound", actionValue="file:// ... .wav"
> action="Stop execution"
> condition="OR (size,is greater than,0)"

Following is your comment #0.
> Steps to Reproduce:
> 1. Create some filter rule
> 2. add action "stop filter" to this rule
> 3. Create a filter rule which would match every time
> 4. Get a mail which matches to filter of step 1
> 5. Put the filter of step 4 at the end of the filter list
> Actual Results:  
> Both filters are executed
> Expected Results:  
> Only the first filter should be executed

If multiple mails arrive at same time, and if (Type-B) is applied to mail-1 and (Type-C) is applied to other mail-2, I think tonequilla@mesquilla.com#playSound will try to play both .wav file specifiled in rule of (Type-B) and .wav file  specifiled in rule of (Type-C) at same time.

To bug opener, are you talking about this phenomenon?

I iitially thouhgt you were talking that both (Type-B) and (Type-C) fired on single mail even though "Stop Filter Execution" is requested in a rule, and I initially considered that you surely had evidence of such problem.
So I initially suspected interefere on "stopping further application of rules on a mail after Move to and/or Stop Filter Execution" by custom "play sound" action.

However, my any assumption might be wrong...
Phenomenon of your comment #0 can occur in next case.
(1) a (Type-B) rule fires on mail-1, and a .wav file is played.
(2) similar problem to "CC: of previous mail is used" happens on next mail-2,
    and same (Type-B) rule fires on mail-2.
(3) mail-2 doesn't match with condition specified in any (Type-B) rule which
    will play sound.
(4) final (Type-C) rule also has action of "play sound",
    and mail-1 matches with condition of the final (Type-C) rule too.
(5) it sounds for user that final (Type-C) rule is also applied to mail-1.
(6) if "Stop Filter Execution" is requested in the (Type-B) rule of step (1),
    it looks for user that "Stop Filter Execution" is ignored by Tb. 

Did you see your problem even when only one new mail is downloaded?
Do you still see your problem in recent Tb releases?
Blocks: 970343
To bug opener and all problem reporters:

Which filter rule do you use?    (a) Filter Before Classification,   (b) Filter After Classification.

When I tested comment #23, I perhaps used (a) Filter Before Classification, because default of new rule is (a), although I don't remeber which was actually used.
Note:
Bug  695671(action=Delete, Run Filter On ...),  Bug 552936(action=Stop ..., Run Filter On ...) is "After the fact filtering" case which utilizeds DoCopy(batch type filter appltication). "(b) Filter After Classification" also utilizes DoCopy after download of all new mails to Inbox, so it's also "batch type filter application".
In contrast to it, "(a) Filter Before Classification" doesn't use DoCopy.(Non "After the fact filtering"). So Bug 900142 can occur only when  "(a) Filter Before Classification" is used.

(In reply to :aceman from comment #39)
> Cool, because this one report was saying (per current summary) the opposite what other reports are saying.

I guess that difference comes from "After the fact filter" or "Non after the fact filter".
(In reply to WADA from comment #46)
> To bug opener and all problem reporters:
> 
> Which filter rule do you use?    (a) Filter Before Classification,   (b)
> Filter After Classification.
> 
> When I tested comment #23, I perhaps used (a) Filter Before Classification,
> because default of new rule is (a), although I don't remeber which was
> actually used.
> Note:
> Bug  695671(action=Delete, Run Filter On ...),  Bug 552936(action=Stop ...,
> Run Filter On ...) is "After the fact filtering" case which utilizeds
> DoCopy(batch type filter appltication). "(b) Filter After Classification"
> also utilizes DoCopy after download of all new mails to Inbox, so it's also
> "batch type filter application".
> In contrast to it, "(a) Filter Before Classification" doesn't use
> DoCopy.(Non "After the fact filtering"). So Bug 900142 can occur only when 
> "(a) Filter Before Classification" is used.
> 
> (In reply to :aceman from comment #39)
> > Cool, because this one report was saying (per current summary) the opposite what other reports are saying.
> 
> I guess that difference comes from "After the fact filter" or "Non after the
> fact filter".
Flags: needinfo?(honzab.moz)
(In reply to Wayne Mery (:wsmwk) from comment #47)

God, I've answered this like 1M times... 

And I don't think I have any filters now that would execute this bug, so I'm no help here anymore.  Sorry.

> (In reply to WADA from comment #46)
> > To bug opener and all problem reporters:
> > 
> > Which filter rule do you use?    (a) Filter Before Classification,   (b)
> > Filter After Classification.
> > 
> > When I tested comment #23, I perhaps used (a) Filter Before Classification,
> > because default of new rule is (a), although I don't remeber which was
> > actually used.
> > Note:
> > Bug  695671(action=Delete, Run Filter On ...),  Bug 552936(action=Stop ...,
> > Run Filter On ...) is "After the fact filtering" case which utilizeds
> > DoCopy(batch type filter appltication). "(b) Filter After Classification"
> > also utilizes DoCopy after download of all new mails to Inbox, so it's also
> > "batch type filter application".
> > In contrast to it, "(a) Filter Before Classification" doesn't use
> > DoCopy.(Non "After the fact filtering"). So Bug 900142 can occur only when 
> > "(a) Filter Before Classification" is used.
> > 
> > (In reply to :aceman from comment #39)
> > > Cool, because this one report was saying (per current summary) the opposite what other reports are saying.
> > 
> > I guess that difference comes from "After the fact filter" or "Non after the
> > fact filter".
Flags: needinfo?(honzab.moz)
Hmm.. but if I recall correctly, it was set to "after".
No longer blocks: 970343
Removing myslef on all the bugs I'm cced on. Please NI me if you need something on MailNews Core bugs from me.
October 2018

I have still this problem Latest version Thunderbird 52.9.1 (32bit)

Stop Filter Execution does not stop any other filter execution when moving an email from one folder to an other.

(In reply to Giulioski from comment #51)

Stop Filter Execution does not stop any other filter execution when moving an email from one folder to an other.

Giulioski, Aryx,

Does this still happen in version 60 or 68? And if so,

  • please post your filter rules.
  • Does it only happen with Global Inbox as suggested in comment 2 and comment 40
Severity: major → normal
Flags: needinfo?(straccia.giulio)
Flags: needinfo?(aryx.bugmail)

I have this issue and have had on many occasions in the past.

"Stop Filter Execution" doesn't actually stop the filter execution. Usually occurs when you have the following:

mail for <specific_account>@mydomain.com shoud go into a specific folder
mail for <everything_else>@mydomain.com should go in another folder.

You would expect a filter rule for the first + "stop filter execution" and a generic one for the rest would do the trick, but it doesn't. Mail for <specific_account>@mydomain.com starts bouncing between the two target folders, which shouldn't happen, because the second filter rule should never by reached.

Does "go" mean "move to folder" in your filters?

yes

Thomas, should we close this?

Danny Pernokis offers the following perspective...

The reporter's main issue (as I understand it) seems to be that subsequent filters executed even when a STOP FILTER was present in previous filters. All the other things look like red herrings and confounding issues like MOVEs and inconsistent settings.

The bug as described was actually quite easy to test -- and it works fine and as expected. Works for me the way it has for years -- if a STOP FILTER is present at the end of a filter, that's the end of processing for that mailbox account. If there is no STOP FILTER, then the next item(s) gets processed. (It seems the reporter -- at the time -- could not achieve that simple binary.)

For my test account, I added two filters at the very top of the filter list. One added a tag ("testing") and the second added a star. If the STOP is present in the first filter, only the tag appears. If the STOP is absent, the star appears too. (I ran these for a basic test, then re-ran for extended testing, below.)

However... There is a confounding issue that I reported somewhere a long time ago (and can't find in my emails): A filter in the LOCAL FOLDERS area runs prior to any account-specific filters, and even if it says STOP FILTERS, the account-specific filter(s) will run.

I first re-ran the above tests, but added a new filter to LOCAL FOLDERS that set an additional tag ("to be filed"), then STOP FILTER. The second tag appeared in both cases -- in other words, LOCAL FOLDERS ran regardless all STOP FILTERS. (This did not test priority, only that both local and specific filters ran regardless.)

I then ran the above series of tests again, checking and observing READ status to test priority. (This is the only status that can be toggled -- all others are "turn on" but none are "turn off" except READ).

  • When I put MARK READ in Local and MARK UNREAD in Specific, then the message shows with tags and appears unread.
  • When I put MARK UNREAD in Local and MARK READ in Specific, then the message shows with tags and appears read.
    This proved that (i) LOCAL FOLDERS runs first; (ii) its STOP FILTERS does not apply to account-specific filters; and (iii) that the account-specific filters override what may have been done in any LOCAL filters.

In hindsight, this has to be the preferred behaviour, because (i) the LOCAL FOLDERS section is intended to be global in scope -- affects all inbound emails; and (ii) the STOP FILTERS would stop further execution of any remaining filters in LOCAL FOLDERS; then (iii) the account-specific filter(s) can kick in.

Hope that helps!

-dan-

Flags: needinfo?(straccia.giulio)
Flags: needinfo?(bugzilla2007)
Flags: needinfo?(aryx.bugmail)

(In reply to Wayne Mery (:wsmwk) from comment #56)

(i) the LOCAL FOLDERS section is intended to be global in scope -- affects all inbound emails;

It's only supposed to take care of mails under Local Folders and not for the ones manages non-globally (e.g. as part of separate accounts).

(In reply to Sebastian Hengst [:aryx] (needinfo on intermittent or backout) from comment #57)

It's only supposed to take care of mails under Local Folders and not for the ones manages non-globally (e.g. as part of separate accounts).

It makes sense that filtering should cascade from global to specific (ie- Local Folders, then specific folders). This is a highly useful capability. Without the cascade, one would have to set up multiple copies of filters to apply a given global functionality to multiple accounts -- which is a lot of work for those with multiple accounts and leads to plenty of errors, omissions, and inconsistencies.

Functionally, if STOP EXECUTION in Local Folders halted all further (downstream) filtering, then the account-specific filters would never trigger, while omitting STOP EX means multiple subsequent filters in Local Folders would execute in turn, when perhaps they shouldn't.

My previous analysis cited by Wayne Mery in Comment #56 exactly mirrors how filtering works at present, and I wouldn't want to see it change. Not only would everyone lose a powerful functionality, but changes to filtering would introduce "silent changes" to user functionality which would unknowingly cause all kinds of different mysterious unexpected behaviours.

Thinking further (after re-reading the Reporter's Comment #2), I will add an additional qualification to my Comment #58 -- that there should be an additional form of global STOP EXECUTION (for example, "STOP EXECUTION - ALL") that can run for Local Folders, then stop and NOT execute any further filters -- neither global nor account-specific/folder-specific. (But don't change current STOP EXECUTION functionality as this will impact current user practice.)

Dan, your Comment 59 sounds like a good approach. We could morph the bug to that.

Aryx, would that work in the general case? And if not, is there an alternative?

Flags: needinfo?(bugzilla2007) → needinfo?(aryx.bugmail)
See Also: → 174441, 358684, 1320676
Severity: normal → S3

Danny, can you fix up the bug summary to match comment 59?

Flags: needinfo?(aryx.bugmail) → needinfo?(dannyfox)

I don't have ability to edit the bug summary field myself, but this is what I suggest:
"Need STOP EXECUTION - ALL for Global Filters, which will stop and not execute any further filters (global nor account-specific)"

Flags: needinfo?(dannyfox)
Summary: "Stop Filter Execution" action doesn't prevent filters listed below it in the filter list from being executed → Need new function "STOP EXECUTION - ALL" for Global Filters, which will stop and not execute ANY further filters (global nor account-specific)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: