Opened 21 months ago

Last modified 10 days ago

#6254 new change

Fix potential race conditions

Reported by: asmirnov Assignee:
Priority: P2 Milestone:
Module: Adblock-Plus-for-Chromium Keywords:
Cc: Blocked By:
Blocking: Platform: Android
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description

Background

We should take care about concurrency. Let's say in background threads (see adblock_bridge.cc https://gitlab.com/adblockplus/chromium/blob/abp/chrome/browser/android/adblock/adblock_bridge.cc#L245) we check for filterEnginePtr to be not null. If it's not we continue working with it. But it can be released actually but setting null from java side to c++ not yet sent/received:
https://gitlab.com/adblockplus/chromium/blob/abp/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java#L1981

FilterEngine is mostly accessed from background but creating/releasing happens in main thread.

What to change

We need to change the way "don't use it anymore" notifications is sent or prevent filter engine from actual disposing until it not needed anymore.

Change History (2)

comment:1 Changed 3 months ago by elimitix

spam

Last edited 10 days ago by kzar (previous) (diff)

comment:2 Changed 3 months ago by slotxo777

spam

Last edited 10 days ago by kzar (previous) (diff)
Note: See TracTickets for help on using tickets.