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

Crash when invoking liferea feed://… #892

Closed
liskin opened this issue Oct 7, 2020 · 6 comments
Closed

Crash when invoking liferea feed://… #892

liskin opened this issue Oct 7, 2020 · 6 comments
Labels

Comments

@liskin
Copy link

liskin commented Oct 7, 2020

I'm trying to integrate a browser extension with liferea, and it seems to right way to do that is to let it open feed://%s URI, which is then passed to xdg-open which invokes liferea feed://… thanks to #193. Unfortunately every time I do this, the running liferea instance crashes.

I'm invoking exactly this command: liferea feed://https%3A%2F%2Fwork.lisk.in%2Fatom.xml

říj 07 14:11:08 notes.lisk.in systemd-coredump[1445568]: Process 1435783 (liferea) of user 1000 dumped core.
                                                           
                                                           Stack trace of thread 1435783:
                                                           #0  0x00007f97db3469bf next_enumerator (libgio-2.0.so.0 + 0x959bf)
                                                           #1  0x00007f97db346e88 next_enumerator (libgio-2.0.so.0 + 0x95e88)
                                                           #2  0x00007f97db3622e9 g_task_return_now (libgio-2.0.so.0 + 0xb12e9)
                                                           #3  0x00007f97db362329 complete_in_idle_cb (libgio-2.0.so.0 + 0xb1329)
                                                           #4  0x00007f97db140a8f g_main_dispatch (libglib-2.0.so.0 + 0x51a8f)
                                                           #5  0x00007f97db140e38 g_main_context_iterate (libglib-2.0.so.0 + 0x51e38)
                                                           #6  0x00007f97db140eef g_main_context_iteration (libglib-2.0.so.0 + 0x51eef)
                                                           #7  0x00007f97db390425 g_application_run (libgio-2.0.so.0 + 0xdf425)
                                                           #8  0x000055ddcf86b759 liferea_application_new (liferea + 0x31759)
                                                           #9  0x00007f97dadeacca __libc_start_main (libc.so.6 + 0x26cca)
                                                           #10 0x000055ddcf85a42a _start (liferea + 0x2042a)
                                                           
                                                           Stack trace of thread 1435792:
                                                           #0  0x00007f97daf98df8 futex_abstimed_wait_cancelable (libpthread.so.0 + 0xfdf8)
                                                           #1  0x00007f97da74942d _ZN7bmalloc9Scavenger13threadRunLoopEv (libjavascriptcoregtk-4.0.so.18 + 0x13cc42d)
                                                           #2  0x00007f97da749599 _ZN7bmalloc9Scavenger16threadEntryPointEPS0_ (libjavascriptcoregtk-4.0.so.18 + 0x13cc599)
                                                           #3  0x00007f97d8237c60 n/a (libstdc++.so.6 + 0xcec60)
                                                           #4  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #5  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435790:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db140eef g_main_context_iteration (libglib-2.0.so.0 + 0x51eef)
                                                           #3  0x00007f97d36da38d n/a (libdconfsettings.so + 0xa38d)
                                                           #4  0x00007f97db169ddd g_thread_proxy (libglib-2.0.so.0 + 0x7addd)
                                                           #5  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #6  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435793:
                                                           #0  0x00007f97daf98ad8 futex_abstimed_wait_cancelable (libpthread.so.0 + 0xfad8)
                                                           #1  0x00007f97da73be5b _ZN3WTF15ThreadCondition9timedWaitERNS_5MutexENS_8WallTimeE (libjavascriptcoregtk-4.0.so.18 + 0x13bee5b)
                                                           #2  0x00007f97da6e915b _ZN3WTF10ParkingLot21parkConditionallyImplEPKvRKNS_12ScopedLambdaIFbvEEERKNS3_IFvvEEERKNS_24TimeWithDynamicClockTypeE (libjavascriptcoregtk-4.0.so.18 + 0x136c15b)
                                                           #3  0x00007f97da6ec77a _ZN3WTF5sleepENS_7SecondsE (libjavascriptcoregtk-4.0.so.18 + 0x136f77a)
                                                           #4  0x00007f97dc9d001a n/a (libwebkit2gtk-4.0.so.37 + 0xb7601a)
                                                           #5  0x00007f97dc9d0739 n/a (libwebkit2gtk-4.0.so.37 + 0xb76739)
                                                           #6  0x00007f97da6ed499 _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE (libjavascriptcoregtk-4.0.so.18 + 0x1370499)
                                                           #7  0x00007f97da73b679 n/a (libjavascriptcoregtk-4.0.so.18 + 0x13be679)
                                                           #8  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #9  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435810:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db14112b g_main_loop_run (libglib-2.0.so.0 + 0x5212b)
                                                           #3  0x00007f97da7394c8 _ZN3WTF7RunLoop3runEv (libjavascriptcoregtk-4.0.so.18 + 0x13bc4c8)
                                                           #4  0x00007f97da6ed499 _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE (libjavascriptcoregtk-4.0.so.18 + 0x1370499)
                                                           #5  0x00007f97da73b679 n/a (libjavascriptcoregtk-4.0.so.18 + 0x13be679)
                                                           #6  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #7  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435794:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db14112b g_main_loop_run (libglib-2.0.so.0 + 0x5212b)
                                                           #3  0x00007f97da7394c8 _ZN3WTF7RunLoop3runEv (libjavascriptcoregtk-4.0.so.18 + 0x13bc4c8)
                                                           #4  0x00007f97da6ed499 _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE (libjavascriptcoregtk-4.0.so.18 + 0x1370499)
                                                           #5  0x00007f97da73b679 n/a (libjavascriptcoregtk-4.0.so.18 + 0x13be679)
                                                           #6  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #7  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435795:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db14112b g_main_loop_run (libglib-2.0.so.0 + 0x5212b)
                                                           #3  0x00007f97da7394c8 _ZN3WTF7RunLoop3runEv (libjavascriptcoregtk-4.0.so.18 + 0x13bc4c8)
                                                           #4  0x00007f97da6ed499 _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE (libjavascriptcoregtk-4.0.so.18 + 0x1370499)
                                                           #5  0x00007f97da73b679 n/a (libjavascriptcoregtk-4.0.so.18 + 0x13be679)
                                                           #6  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #7  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435787:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db140eef g_main_context_iteration (libglib-2.0.so.0 + 0x51eef)
                                                           #3  0x00007f97db140f41 glib_worker_main (libglib-2.0.so.0 + 0x51f41)
                                                           #4  0x00007f97db169ddd g_thread_proxy (libglib-2.0.so.0 + 0x7addd)
                                                           #5  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #6  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435788:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db14112b g_main_loop_run (libglib-2.0.so.0 + 0x5212b)
                                                           #3  0x00007f97db3cc746 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x11b746)
                                                           #4  0x00007f97db169ddd g_thread_proxy (libglib-2.0.so.0 + 0x7addd)
                                                           #5  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #6  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)
                                                           
                                                           Stack trace of thread 1435809:
                                                           #0  0x00007f97daeb74bf __GI___poll (libc.so.6 + 0xf34bf)
                                                           #1  0x00007f97db140dce g_main_context_poll (libglib-2.0.so.0 + 0x51dce)
                                                           #2  0x00007f97db14112b g_main_loop_run (libglib-2.0.so.0 + 0x5212b)
                                                           #3  0x00007f97da7394c8 _ZN3WTF7RunLoop3runEv (libjavascriptcoregtk-4.0.so.18 + 0x13bc4c8)
                                                           #4  0x00007f97da6ed499 _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE (libjavascriptcoregtk-4.0.so.18 + 0x1370499)
                                                           #5  0x00007f97da73b679 n/a (libjavascriptcoregtk-4.0.so.18 + 0x13be679)
                                                           #6  0x00007f97daf91ea7 start_thread (libpthread.so.0 + 0x8ea7)
                                                           #7  0x00007f97daec1eaf __clone (libc.so.6 + 0xfdeaf)

I realize that the crash is in glib, but invoking liferea https://work.lisk.in/atom.xml works fine, so I'm guessing this is probably a liferea issue after all.

$ dpkg -l liferea | grep liferea
ii  liferea        1.13.2-2     amd64        feed/news/podcast client with plugin support
$ liferea --version
Liferea 1.13.2
@Leiaz
Copy link
Collaborator

Leiaz commented Oct 8, 2020

Is that even a valid feed:// uri ? I think it should be either feed://work.lisk.in/atom.xml or feed:https://work.lisk.in/atom.xml

Either way, it should not crash, so this is a bug. But the crash seems to come from telling libsoup to download a malformed url.

GLib-GIO-WARNING **: 14:31:43.955: Invalid URI 'http://[https://work.lisk.in/atom.xml]:80/'

@Leiaz Leiaz added the bug label Oct 8, 2020
@liskin
Copy link
Author

liskin commented Oct 8, 2020

Oh, you're right. I tried quite hard to find what a feed: URI is supposed to like and couldn't find anything, and today the first result is https://en.wikipedia.org/wiki/Feed_URI_scheme which explains everything. I don't think I'll be able to persuade the Chrome extension I'm using to stop escaping it, but I'll figure out some workaround. Thanks for pointing me in the right direction.

@lwindolf
Copy link
Owner

lwindolf commented Nov 9, 2020

The error is in general updating feeds with URLs like

 http://https%3A%2F%2F<server/path>

@beroal
Copy link

beroal commented Feb 16, 2021

I don't think I'll be able to persuade the Chrome extension I'm using to stop escaping it, but I'll figure out some workaround.

I guess the extension does this because otherwise a URL with the feed scheme may be invalid. See the discussion in this issue. The Wikipedia article above is based on a draft that was not submitted. There are general rules for URIs. The references in the Wikipedia article give additional information.

@Leiaz
Copy link
Collaborator

Leiaz commented Feb 17, 2021

I think the extension does this because it is made originally for online services where the feeds are added by passing them as a parameter inside a url.

@lwindolf
Copy link
Owner

@liskin Closing this if it is ok for you.

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

No branches or pull requests

4 participants