Opened 3 years ago

Last modified 3 years ago

#4576 closed defect

please_kill_startup_performance=true kills the subscriptions + custom filters — at Version 5

Reported by: mapx Assignee: trev
Priority: P1 Milestone: Adblock-Plus-2.8.1-for-Firefox
Module: Adblock-Plus-for-Firefox Keywords:
Cc: trev, greiner Blocked By:
Blocking: #3993 Platform: Firefox
Ready: yes Confidential: no
Tester: Scheer Verified working: yes
Review URL(s):

https://codereview.adblockplus.org/29360036/
https://codereview.adblockplus.org/29360039/
https://codereview.adblockplus.org/29360048/

Description (last modified by trev)

Environment

ABP 2.8
various filter lists (only 2 enabled), various custom filters groups

How to reproduce

  • in about:config it's already please_kill_startup_performance=false
  • set it to true
  • close Firefox
  • open Firefox

Observed behaviour:

All the lists are gone, only easylist is still there (or added automatically by ABP because ...no lists)
Groups of custom filters ==> gone

If I switch back to please_kill_startup_performance=false, close / open Firefox:

  • all the lists / custom filters are back !

Background

Reading filters errors out with "too much recursion." This recursion isn't ours but rather Task.jsm. It seems that Task.jsm doesn't handle it well, if a generator keeps yielding constants (meaning: non-promises) in a loop. It will recurse then and will explode eventually. Without please_kill_startup_performance we will yield a promise every now and then which makes the task return.

Change History (5)

comment:1 Changed 3 years ago by mapx

  • Cc greiner added

comment:2 Changed 3 years ago by trev

  • Owner set to trev
  • Priority changed from Unknown to P1
  • Ready set

comment:3 Changed 3 years ago by trev

  • Description modified (diff)

comment:4 Changed 3 years ago by trev

  • Blocking 3993 added

Caused by #3993 btw - landed in development builds six months ago and nobody seemed to have noticed.

comment:5 Changed 3 years ago by trev

  • Review URL(s) modified (diff)
Note: See TracTickets for help on using tickets.