Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.13.7] SIGSEGV: Click 'Update All' then 'Next Unread Item' #1091

Closed
paulgevers opened this issue Mar 4, 2022 · 3 comments · Fixed by #1094
Closed

[1.13.7] SIGSEGV: Click 'Update All' then 'Next Unread Item' #1091

paulgevers opened this issue Mar 4, 2022 · 3 comments · Fixed by #1094

Comments

@paulgevers
Copy link
Contributor

This issue was reported in Debian: https://bugs.debian.org/1006747

=======================================
Occasionally I'm experiencing SIGSEGV in liferea.

To reproduce:

  • Click on the button 'Update All'
  • Click on the button 'Next Unread Item' directly after that

I assume that the update is still ongoing, but the 'Next Unread Item' could
have moved to any of the unread items.

I've installed liferea-dbgsym, here is a partially legible stack trace:

Thread 1 "liferea" received signal SIGSEGV, Segmentation fault.
0x000055555557f951 in feedlist_collect_unread (user_data=0x7fffffffc6d0,
node=0x5555561546a0) at ../feedlist.c:500
500 ../feedlist.c: No such file or directory.
(gdb) bt
#0 0x000055555557f951 in feedlist_collect_unread (user_data=0x7fffffffc6d0,
node=0x5555561546a0) at ../feedlist.c:500
#1 feedlist_collect_unread (node=0x5555561546a0, user_data=0x7fffffffc6d0) at
../feedlist.c:490
#2 0x0000555555588f58 in node_foreach_child_full
(node=, func=0x55555557f920 <feedlist_collect_unread>,
params=1, user_data=0x7fffffffc6d0) at ../node.c:575
#3 0x00005555555804bd in feedlist_find_unread_feed (folder=) at
../feedlist.c:512
#4 0x0000555555583bfd in itemlist_select_next_unread () at ../itemlist.c:386
#5 0x00007ffff37f173f in g_closure_invoke () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#6 0x00007ffff3803b96 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff3809fb1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#8 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#9 0x00007ffff3978115 in () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#10 0x00007ffff3d59ee3 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff37f173f in g_closure_invoke () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#12 0x00007ffff3803d71 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff3809fb1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#14 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#15 0x00007ffff3d5c090 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007ffff37f173f in g_closure_invoke () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#17 0x00007ffff38037f5 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff3809fb1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#19 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#20 0x00007ffff3d5a3f0 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff4016239 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff37f1969 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007ffff380a339 in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#24 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#25 0x00007ffff3e263e4 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff37f47d2 in g_cclosure_marshal_VOID__BOXEDv () at
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff37f1969 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ffff380a339 in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#29 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#30 0x00007ffff3e23487 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#31 0x00007ffff3e24b0b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007ffff3e27bbf in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007ffff3dee28c in gtk_event_controller_handle_event () at
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff3fb836d in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007ffff400ffc4 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007ffff37f1969 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#37 0x00007ffff380969b in g_signal_emit_valist () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#38 0x00007ffff380a55f in g_signal_emit () at /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#39 0x00007ffff3fb9bc4 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#40 0x00007ffff3e6e7c0 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#41 0x00007ffff3e7027d in gtk_main_do_event () at /usr/lib/x86_64-linux-
gnu/libgtk-3.so.0
#42 0x00007ffff3b586a5 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#43 0x00007ffff3b8c1a2 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#44 0x00007ffff36fccdb in g_main_context_dispatch () at /usr/lib/x86_64-linux-
gnu/libglib-2.0.so.0
#45 0x00007ffff36fcf88 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007ffff36fd03f in g_main_context_iteration () at /usr/lib/x86_64-linux-
gnu/libglib-2.0.so.0
#47 0x00007ffff396f14d in g_application_run () at /usr/lib/x86_64-linux-
gnu/libgio-2.0.so.0
#48 0x00005555555851e0 in liferea_application_new (argc=1, argv=0x7fffffffe1e8)
at ../liferea_application.c:352
#49 0x00007ffff338c7fd in __libc_start_main (main=
0x5555555745d0

, argc=1, argv=0x7fffffffe1e8, init=,
fini=, rtld_fini=, stack_end=0x7fffffffe1d8) at
../csu/libc-start.c:332
#50 0x000055555557467a in _start ()

@paulgevers
Copy link
Contributor Author

The reporter had a follow up:

I've additional information that will help to reproduce the issue.

  • I have 'View|Reduced Feed List' active.
  • When Liferea starts, there is no selection present in the list of
    subscriptions.
  • Do not click on 'Update All' (it is not needed to reproduce the crash)
  • Click on 'Next Unread Item'
  • Crash

If a selection is present in the list of subscriptions, liferea will not
crash.

To get to the situation with no selection present:

  • Uncheck 'View|Reduced Feed List'
  • Select any read item
  • Check 'View|Reduced Feed List' (now the subscription is present, but
    not active)
  • Close and restart Liferea

@paulgevers
Copy link
Contributor Author

With these instructions, I could reproduce the crash myself.

mhoran added a commit to mhoran/liferea that referenced this issue Mar 7, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
When no feed is selected (e.g. when using the Reduced Feed List),
selecting the next unread item will cause a crash.

Fixes lwindolf#1091
@mhoran
Copy link
Contributor

mhoran commented Mar 7, 2022

Reproduced, fix in #1094. Note that the next unread button won't work until there is an unread and it is selected manually. That would be an area for further improvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants