Skip to content
This repository has been archived by the owner on Jun 4, 2022. It is now read-only.

Segfault on attempting to download binary from github #195

Open
Moult opened this issue Jul 25, 2020 · 8 comments
Open

Segfault on attempting to download binary from github #195

Moult opened this issue Jul 25, 2020 · 8 comments

Comments

@Moult
Copy link

Moult commented Jul 25, 2020

  1. Go to https://github.com/RasmusLindroth/tut/releases/tag/0.0.14
  2. Click on tut-amd64
  3. Segfault!

Tested build from source from last night, on amd64, Gentoo.

From the terminal when it crashes:

[WARNING 10:07:11.884259] parser.vala:265: Failed to register filter. Filter '|trans' already exists.
[WARNING 10:07:11.884285] parser.vala:265: Failed to register filter. Filter '|uniqsort' already exists.
[FATAL 10:07:11.905206] [Gtk] gtk_entry_set_text: assertion 'text != NULL' failed
[FATAL 10:07:11.919188] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.919263] [Gtk] gtk_entry_set_text: assertion 'text != NULL' failed
[FATAL 10:07:11.928504] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.931553] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.934580] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.937636] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.940728] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.943783] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.946841] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.949891] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.952960] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.956018] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 10:07:11.956275] [Gtk] gtk_entry_set_text: assertion 'text != NULL' failed
[FATAL 10:07:12.023707] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.024158] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.024591] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.024744] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.024925] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.025080] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.025232] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.025383] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.025544] [GLib] g_strsplit: assertion 'string != NULL' failed
[FATAL 10:07:12.025682] [GLib] g_strsplit: assertion 'string != NULL' failed
[WARNING 10:07:12.232321] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.331215] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.334308] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.337264] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.368107] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.374319] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.401762] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.414252] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.461322] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.496470] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:12.498482] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[WARNING 10:07:14.357161] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[FATAL 10:07:17.394897] [GLib-GIO] g_file_new_for_path: assertion 'path != NULL' failed
[FATAL 10:07:17.395161] [GLib-GIO] g_file_new_for_path: assertion 'path != NULL' failed
[FATAL 10:07:17.395214] [GLib-GIO] g_file_get_child: assertion 'G_IS_FILE (file)' failed
[FATAL 10:07:17.395239] [GLib-GIO] g_file_query_exists: assertion 'G_IS_FILE(file)' failed
[FATAL 10:07:17.395273] [GLib-GIO] g_file_make_directory: assertion 'G_IS_FILE (file)' failed
[FATAL 10:07:17.395298] [GLib-GIO] g_file_get_child: assertion 'G_IS_FILE (file)' failed
[FATAL 10:07:17.395319] [GLib-GIO] g_file_query_exists: assertion 'G_IS_FILE(file)' failed
[FATAL 10:07:17.395342] [GLib-GIO] g_file_get_uri: assertion 'G_IS_FILE (file)' failed
[FATAL 10:07:17.395366] void webkit_download_set_destination(WebKitDownload*, const gchar*): assertion 'uri' failed
[1]    27544 segmentation fault  ./com.github.alcinnz.odysseus
@alcinnz
Copy link
Owner

alcinnz commented Jul 25, 2020

Failed to reproduce issue. tutamd64 downloaded successfully!

@Moult
Copy link
Author

Moult commented Jul 25, 2020

@alcinnz does the terminal output give any hints on how I can further debug? If you cannot reproduce, it is probably an issue on my end ... or it may be how I have compiled the dependencies on Gentoo (which will affect how Odysseus is packaged for Gentoo) ...

@alcinnz
Copy link
Owner

alcinnz commented Jul 26, 2020

A gdb stacktrace would be useful.

I think a theory just occurred to me. Maybe it's a desktop-integration I've implemented specific to the Pantheon and late Unity desktops, and I'm not recovering well enough from errors there. I'll try adding some more NULL checks tonight and have you test if that fixes it.

@alcinnz
Copy link
Owner

alcinnz commented Jul 27, 2020

Try the latest master, or failing that commenting out src/Traits/init.vala line 22. Does either of those fix it? Though looking at that log again I might be barking up the wrong tree.

If you run it under GDB what does running bt after the crash output?

@Moult
Copy link
Author

Moult commented Jul 27, 2020

Still broken.

Hopefully this helps?

 gdb ./src/com.github.alcinnz.odysseus                                                                                                                                                                          master ✔ :) 
GNU gdb (Gentoo 9.1 vanilla) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./src/com.github.alcinnz.odysseus...
(gdb) run
Starting program: /home/dion/drive/odysseus/Odysseus/build/src/com.github.alcinnz.odysseus 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[INFO 19:47:18.172512] Application.vala:155: Odysseus version: 1
[INFO 19:47:18.172568] Application.vala:157: Kernel version: 5.7.10-gentoo-x86_64
[New Thread 0x7fffed9da700 (LWP 655)]
[Detaching after fork from child process 656]
[New Thread 0x7fffed1d9700 (LWP 657)]
[WARNING 19:47:18.211689] parser.vala:244: Failed to register tag. Tag 'appstream' already exists.
[WARNING 19:47:18.211722] parser.vala:244: Failed to register tag. Tag 'autoescape' already exists.
[WARNING 19:47:18.211743] parser.vala:244: Failed to register tag. Tag 'debug' already exists.
[WARNING 19:47:18.211769] parser.vala:244: Failed to register tag. Tag 'fetch' already exists.
[WARNING 19:47:18.211800] parser.vala:244: Failed to register tag. Tag 'filter' already exists.
[WARNING 19:47:18.211832] parser.vala:244: Failed to register tag. Tag 'for' already exists.
[WARNING 19:47:18.211865] parser.vala:244: Failed to register tag. Tag 'if' already exists.
[WARNING 19:47:18.211896] parser.vala:244: Failed to register tag. Tag 'ifchanged' already exists.
[WARNING 19:47:18.211928] parser.vala:244: Failed to register tag. Tag 'include' already exists.
[WARNING 19:47:18.211962] parser.vala:244: Failed to register tag. Tag 'mimeinfo' already exists.
[WARNING 19:47:18.211994] parser.vala:244: Failed to register tag. Tag 'random' already exists.
[WARNING 19:47:18.212026] parser.vala:244: Failed to register tag. Tag 'templatetag' already exists.
[WARNING 19:47:18.212059] parser.vala:244: Failed to register tag. Tag 'test' already exists.
[WARNING 19:47:18.212091] parser.vala:244: Failed to register tag. Tag 'test-report' already exists.
[WARNING 19:47:18.212123] parser.vala:244: Failed to register tag. Tag 'trans' already exists.
[WARNING 19:47:18.212154] parser.vala:244: Failed to register tag. Tag 'with' already exists.
[WARNING 19:47:18.212184] parser.vala:265: Failed to register filter. Filter '|add' already exists.
[WARNING 19:47:18.212212] parser.vala:265: Failed to register filter. Filter '|alloc' already exists.
[WARNING 19:47:18.212241] parser.vala:265: Failed to register filter. Filter '|base' already exists.
[WARNING 19:47:18.212271] parser.vala:265: Failed to register filter. Filter '|capfirst' already exists.
[WARNING 19:47:18.212301] parser.vala:265: Failed to register filter. Filter '|cut' already exists.
[WARNING 19:47:18.212332] parser.vala:265: Failed to register filter. Filter '|date' already exists.
[WARNING 19:47:18.212366] parser.vala:265: Failed to register filter. Filter '|default' already exists.
[WARNING 19:47:18.212404] parser.vala:265: Failed to register filter. Filter '|diff' already exists.
[WARNING 19:47:18.212435] parser.vala:265: Failed to register filter. Filter '|escape' already exists.
[WARNING 19:47:18.212467] parser.vala:265: Failed to register filter. Filter '|escapeURI' already exists.
[WARNING 19:47:18.212500] parser.vala:265: Failed to register filter. Filter '|favicon' already exists.
[WARNING 19:47:18.212535] parser.vala:265: Failed to register filter. Filter '|filesize' already exists.
[WARNING 19:47:18.212566] parser.vala:265: Failed to register filter. Filter '|filter' already exists.
[WARNING 19:47:18.212601] parser.vala:265: Failed to register filter. Filter '|first' already exists.
[WARNING 19:47:18.212634] parser.vala:265: Failed to register filter. Filter '|force-escape' already exists.
[WARNING 19:47:18.212668] parser.vala:265: Failed to register filter. Filter '|join' already exists.
[WARNING 19:47:18.212703] parser.vala:265: Failed to register filter. Filter '|last' already exists.
[WARNING 19:47:18.212734] parser.vala:265: Failed to register filter. Filter '|length' already exists.
[WARNING 19:47:18.212765] parser.vala:265: Failed to register filter. Filter '|lengthis' already exists.
[WARNING 19:47:18.212798] parser.vala:265: Failed to register filter. Filter '|lookup' already exists.
[WARNING 19:47:18.212830] parser.vala:265: Failed to register filter. Filter '|lower' already exists.
[WARNING 19:47:18.212864] parser.vala:265: Failed to register filter. Filter '|md5' already exists.
[WARNING 19:47:18.212892] parser.vala:265: Failed to register filter. Filter '|mimeicon' already exists.
[WARNING 19:47:18.212916] parser.vala:265: Failed to register filter. Filter '|safe' already exists.
[WARNING 19:47:18.212941] parser.vala:265: Failed to register filter. Filter '|split' already exists.
[WARNING 19:47:18.212964] parser.vala:265: Failed to register filter. Filter '|text' already exists.
[WARNING 19:47:18.212986] parser.vala:265: Failed to register filter. Filter '|title' already exists.
[WARNING 19:47:18.213027] parser.vala:265: Failed to register filter. Filter '|trans' already exists.
[WARNING 19:47:18.213055] parser.vala:265: Failed to register filter. Filter '|uniqsort' already exists.
[FATAL 19:47:18.236200] [Gtk] gtk_entry_set_text: assertion 'text != NULL' failed
[New Thread 0x7fffec81e700 (LWP 658)]
[New Thread 0x7fffdffff700 (LWP 659)]
[New Thread 0x7fffdf7fe700 (LWP 661)]
[New Thread 0x7fffde5ff700 (LWP 662)]
[New Thread 0x7fffdddfe700 (LWP 663)]
[New Thread 0x7fffdd5fd700 (LWP 664)]
[New Thread 0x7fffdcdfc700 (LWP 665)]
[FATAL 19:47:18.270640] [Gtk] gtk_notebook_get_tab_label: assertion 'GTK_IS_WIDGET (child)' failed
[FATAL 19:47:18.270711] [Gtk] gtk_entry_set_text: assertion 'text != NULL' failed
[FATAL 19:47:18.331117] [GLib] g_strsplit: assertion 'string != NULL' failed
[Detaching after fork from child process 666]
[Detaching after fork from child process 667]
[New Thread 0x7fff97ffd700 (LWP 668)]
[New Thread 0x7fff977fc700 (LWP 669)]
[Detaching after fork from child process 693]
[WARNING 19:47:18.493887] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[Thread 0x7fffdffff700 (LWP 659) exited]
[Detaching after fork from child process 716]
[WARNING 19:47:20.723035] Links.vala:61: Failed to parse links from page source: Failed to execute child process “hxwls” (No such file or directory)
[FATAL 19:47:24.135147] [GLib-GIO] g_file_new_for_path: assertion 'path != NULL' failed
[FATAL 19:47:24.136142] [GLib-GIO] g_file_new_for_path: assertion 'path != NULL' failed
[FATAL 19:47:24.136240] [GLib-GIO] g_file_get_child: assertion 'G_IS_FILE (file)' failed
[FATAL 19:47:24.136296] [GLib-GIO] g_file_query_exists: assertion 'G_IS_FILE(file)' failed
[FATAL 19:47:24.136349] [GLib-GIO] g_file_make_directory: assertion 'G_IS_FILE (file)' failed
[FATAL 19:47:24.136397] [GLib-GIO] g_file_get_child: assertion 'G_IS_FILE (file)' failed
[FATAL 19:47:24.136430] [GLib-GIO] g_file_query_exists: assertion 'G_IS_FILE(file)' failed
[FATAL 19:47:24.136461] [GLib-GIO] g_file_get_uri: assertion 'G_IS_FILE (file)' failed
[FATAL 19:47:24.136507] void webkit_download_set_destination(WebKitDownload*, const gchar*): assertion 'uri' failed

Thread 1 "com.github.alci" received signal SIGSEGV, Segmentation fault.
0x00007ffff727f9c5 in has_case_prefix () from /usr/lib64/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff727f9c5 in has_case_prefix () at /usr/lib64/libglib-2.0.so.0
#1  0x00007ffff7281132 in g_filename_from_uri () at /usr/lib64/libglib-2.0.so.0
#2  0x00007ffff47bc8db in webkitDownloadDecideDestinationWithSuggestedFilename(_WebKitDownload*, WTF::CString const&, bool&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#3  0x00007ffff47be322 in DownloadClient::decideDestinationWithSuggestedFilename(WebKit::DownloadProxy&, WTF::String const&, WTF::Function<void (WebKit::AllowOverwrite, WTF::String)>&&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#4  0x00007ffff483d361 in WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync(WebKit::DownloadID, WTF::String const&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#5  0x00007ffff44c0d4a in void IPC::handleMessage<Messages::DownloadProxy::DecideDestinationWithSuggestedFilenameAsync, WebKit::DownloadProxy, void (WebKit::DownloadProxy::*)(WebKit::DownloadID, WTF::String const&)>(IPC::Decoder&, WebKit::DownloadProxy*, void (WebKit::DownloadProxy::*)(WebKit::DownloadID, WTF::String const&)) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#6  0x00007ffff44bad3d in WebKit::DownloadProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#7  0x00007ffff464039a in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#8  0x00007ffff484f9d3 in WebKit::NetworkProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#9  0x00007ffff4639068 in IPC::Connection::dispatchMessage(IPC::Decoder&) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#10 0x00007ffff463a445 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) () at /usr/lib64/libwebkit2gtk-4.0.so.37
#11 0x00007ffff463ab2a in IPC::Connection::dispatchOneIncomingMessage() () at /usr/lib64/libwebkit2gtk-4.0.so.37
#12 0x00007ffff395c49a in WTF::RunLoop::performWork() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#13 0x00007ffff39ad179 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#14 0x00007ffff72a15ed in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#15 0x00007ffff72a19c8 in g_main_context_iterate.isra () at /usr/lib64/libglib-2.0.so.0
#16 0x00007ffff72a1a5f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#17 0x00007ffff74aa21d in g_application_run () at /usr/lib64/libgio-2.0.so.0
#18 0x000055555556dfeb in _vala_main (args=0x7fffffffd1f8, args_length1=1) at ../src/Odysseus.vala:141
#19 0x000055555556e013 in main (argc=1, argv=0x7fffffffd1f8) at ../src/Odysseus.vala:140
(gdb) quit
A debugging session is active.

        Inferior 1 [process 651] will be killed.

Quit anyway? (y or n) y

@Moult
Copy link
Author

Moult commented Jul 27, 2020

src/Traits/init.vala is a comment line... did I misunderstand what you asked me to do?

        // NOTE: In early versions I misspelled Odysseus's name,

@alcinnz
Copy link
Owner

alcinnz commented Jul 28, 2020

Maybe I cited the wrong line in that file, but never mind. I definitely was barking up the wrong tree.

@alcinnz
Copy link
Owner

alcinnz commented Jul 29, 2020

Now try the latest master, this might fix it.

If the issue was that you were lacking the standardized environment variable telling me where to place downloads...

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

No branches or pull requests

2 participants