#995 Freeze of Liferea while removing items during a full update

v1.8
closed-fixed
Lars Windolf
Usability (69)
5
2013-01-30
2011-12-25
Vincent Lefevre
No

I've done a full update with Liferea 1.8.0. During this time, Liferea wasn't usable at all; it's window wasn't even redrawn and remained gray. When run with the --debug-all option, I could reproduce this problem and could see:

DB: removing item with id 166438
DB: removing item with id 166455
DB: removing item with id 166452
DB: removing item with id 166442
DB: removing item with id 166443
DB: removing item with id 166444
DB: removing item with id 166440
[...]

each removed item taking several seconds.

Discussion

  • I forgot to say: the freeze took about 3 minutes.

     
  • Lars Windolf
    Lars Windolf
    2011-12-25

    How many items do you have in total? How large is your DB file?

     
  • The DB size was 13 MB in the .liferea_1.6 directory, and 11 MB after the conversion to .liferea_1.8, and still 11 MB after the full update.

    Well, the problem occurs for some feeds only, and this is not just a performance bug, but a "severe program bug":

    [...]
    DB: removing item with id 167877
    DB: removing item with id 167483
    DB: removing item with id 167482
    DB: counting unread items took 0,008s
    CACHE: Fatal: Item merging bug! Resulting item list is too long! Cache limit does not work. This is a severe program bug!
    UPDATE: merge itemset took 2,628s
    [...]
    DB: removing item with id 166438
    DB: removing item with id 166455
    DB: removing item with id 166452
    DB: removing item with id 166442
    DB: removing item with id 166443
    DB: removing item with id 166444
    DB: removing item with id 166440
    DB: removing item with id 166456
    DB: removing item with id 166454
    DB: removing item with id 166439
    DB: removing item with id 166445
    DB: removing item with id 166441
    DB: removing item with id 166457
    DB: removing item with id 166448
    DB: removing item with id 166446
    DB: removing item with id 166450
    DB: removing item with id 166449
    DB: removing item with id 166447
    DB: removing item with id 166453
    DB: removing item with id 166451
    DB: counting items took 0,001s
    DB: counting unread items took 0,032s
    CACHE: Fatal: Item merging bug! Resulting item list is too long! Cache limit does not work. This is a severe program bug!
    UPDATE: merge itemset took 132,894s
    [...]
    DB: removing item with id 167306
    DB: removing item with id 167307
    DB: removing item with id 167308
    DB: removing item with id 167309
    DB: removing item with id 167310
    DB: removing item with id 167311
    DB: removing item with id 167312
    DB: removing item with id 167314
    DB: removing item with id 167315
    DB: removing item with id 167316
    DB: removing item with id 167317
    DB: removing item with id 167319
    DB: removing item with id 167320
    DB: counting items took 0,001s
    CACHE: Fatal: Item merging bug! Resulting item list is too long! Cache limit does not work. This is a severe program bug!
    UPDATE: merge itemset took 119,645s
    [...]
    DB: removing item with id 166461
    DB: removing item with id 166462
    DB: removing item with id 166463
    DB: removing item with id 166464
    DB: removing item with id 166465
    DB: removing item with id 166466
    DB: removing item with id 166467
    DB: removing item with id 166468
    DB: removing item with id 166469
    DB: removing item with id 166470
    DB: removing item with id 166471
    DB: removing item with id 166472
    DB: counting items took 0,003s
    DB: counting unread items took 0,051s
    CACHE: Fatal: Item merging bug! Resulting item list is too long! Cache limit does not work. This is a severe program bug!
    UPDATE: merge itemset took 160,789s
    [...]

     
  • Lars Windolf
    Lars Windolf
    2012-03-23

    • assigned_to: nobody --> llando
    • status: open --> pending-fixed
     
  • Lars Windolf
    Lars Windolf
    2012-03-23

    Paulo Anes found that the "items" relation was missing indices for parent_node_id and parent_item_id which both are accessed for mass deletions.

    This is fixed in the new release 1.9.2. The release also provides WAL journaling which should further speed up things.

    Vincent can you please retest with 1.9.2 (it is cache compatible)?

     
  • Lars Windolf
    Lars Windolf
    2013-01-30

    • status: pending-fixed --> closed-fixed
    • milestone: --> v1.8