Hey front-end folks.

I could use your help with the #7 top crasher! In particular, if you have
some expertise with Loaders, it'd be good to get your eyes on this!
  https://bugzilla.mozilla.org/show_bug.cgi?id=760956

TopSitesLoader (which uses our customization of CursorLoader under the
hood) is re-using an already closed Cursor, which throws an Exception,
causing the crash. TopSitesLoader uses TopSitesCursorWrapper as its Cursor,
which is a wrapper around three separate Cursors. Some thoughts on where
the problem could be coming from:

   - Our custom CursorLoader implementation pushes the query outside of the
   CursorLoader, allowing us to do operations before and after the query.
   However, we took the CursorLoader code straight from the framework and it
   may be written to assume the query happens in one call
   - We're using the TopSitesLoader incorrectly (i.e. we're not managing
   its lifecycle correctly with the LoaderManager)
   - There is a bug in the Android framework around Loaders

I started to investigate and came up with some speculative fixes, seeing
that the framework used `CancellationSignal`s, but I later discovered the
framework has two implementations (one built-in and one in the support
library), one of which does not use the `CancellationSignal`s so I think
the implementation with the signals is an optimization and I lost
confidence in my solution.

Some of my previous investigations provide more context: see comments 12
[1] - 15 (and ignore the comments on cancelling).

Thanks in advance!
- Mike

[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=760956#c12
_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to