duckduckgo / duckduckgo/Android

[Bug] Application not responding while in middle of importing large number of bookmarks

Open
#1,693 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Under investigation
Dominant language
Kotlin
Stars
4.8k
Forks
1.4k
Avg merge
2d 17h
Merged PRs (30d)
170

Description

Describe the bug

DuckDuckGo stops responding while in the middle of importing 50000 bookmarks. Choosing to not terminate the process makes DDG close the Bookmarks view after a while. After restarting the app (reentering the Bookmarks view), only fraction of bookmarks are correctly imported (for emulated Pixel 5 usually around 9000 imported sites, for Xiaomi Mi Note 10 Lite 18000 the first try and 33000 the second try).

On emulated Pixel 5 it also doesn't properly import 10000 bookmarks most of the times.

How to Reproduce
  1. Generate an html file with tens of thousands of bookmarks.
  2. Open the app, open the browser menu and open the Bookmarks view.
  3. Try importing the file via the import function in Bookmarks.

App stopped responding while importing:
DDG_ANR25

The html file content:

<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<Title>Bookmarks</Title>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="1618844074" LAST_MODIFIED="1618844074" PERSONAL_TOOLBAR_FOLDER="true">DuckDuckGo Bookmarks</H3>
<DL><p>
<DT><A HREF="https://myanimelist.net/manga/1/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 1</A>
<DT><A HREF="https://myanimelist.net/manga/2/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 2</A>
[...]
<DT><A HREF="https://myanimelist.net/manga/49999/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 49999</A>
</DL><p>
</DL><p>

Expected behavior

The bookmarks would be correctly imported.

Environment
- DDG App Version: 5.107.0
- Device: Pixel 5
- OS: Android 11.0
and
- DDG App Version: 5.105.1
- Device: Xiaomi Mi Note 10 Lite
- OS: Android 11.0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the Bookmarks view using a generated HTML file containing tens of thousands of bookmarks, as described. Investigate the import path and verify completion by confirming that all 50,000 bookmarks are imported without the app becoming unresponsive or closing the view.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
mobile-dev, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.