Bug 1197175 - [abrt] spice-gtk-tools: signal_handler(): spicy killed by SIGABRT
Summary: [abrt] spice-gtk-tools: signal_handler(): spicy killed by SIGABRT
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: spice-gtk
Version: 21
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Marc-Andre Lureau
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:e4b669c5a4f97c0c62b7818307f...
: 1211571 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-02-27 16:30 UTC by Michele
Modified: 2015-06-29 23:38 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-06-29 23:38:27 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (28.12 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: build_ids (6.53 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: cgroup (190 bytes, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: core_backtrace (14.48 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: dso_list (14.76 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: environ (3.18 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: limits (1.29 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: maps (71.70 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: open_fds (1.80 KB, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: proc_pid_status (934 bytes, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details
File: var_log_messages (29 bytes, text/plain)
2015-02-27 16:31 UTC, Michele
no flags Details

Description Michele 2015-02-27 16:30:59 UTC
Description of problem:
Start a remote spicy session then kill spicy with a SIGABRT or shutdown pc

Version-Release number of selected component:
spice-gtk-tools-0.27-3.fc21

Additional info:
reporter:       libreport-2.3.0
backtrace_rating: 4
cmdline:        spicy -h telco.di.unisa.it -p 6789
crash_function: signal_handler
executable:     /usr/bin/spicy
kernel:         3.18.7-200.fc21.x86_64
runlevel:       N 5
type:           CCpp
uid:            1000

Truncated backtrace:
Thread no. 1 (4 frames)
 #2 signal_handler at spicy.c:1725
 #4 fsync at ../sysdeps/unix/syscall-template.S:81
 #5 write_to_temp_file at gfileutils.c:1107
 #6 g_file_set_contents at gfileutils.c:1197

Comment 1 Michele 2015-02-27 16:31:03 UTC
Created attachment 996105 [details]
File: backtrace

Comment 2 Michele 2015-02-27 16:31:04 UTC
Created attachment 996106 [details]
File: build_ids

Comment 3 Michele 2015-02-27 16:31:06 UTC
Created attachment 996107 [details]
File: cgroup

Comment 4 Michele 2015-02-27 16:31:07 UTC
Created attachment 996108 [details]
File: core_backtrace

Comment 5 Michele 2015-02-27 16:31:09 UTC
Created attachment 996109 [details]
File: dso_list

Comment 6 Michele 2015-02-27 16:31:10 UTC
Created attachment 996110 [details]
File: environ

Comment 7 Michele 2015-02-27 16:31:11 UTC
Created attachment 996111 [details]
File: limits

Comment 8 Michele 2015-02-27 16:31:13 UTC
Created attachment 996112 [details]
File: maps

Comment 9 Michele 2015-02-27 16:31:14 UTC
Created attachment 996113 [details]
File: open_fds

Comment 10 Michele 2015-02-27 16:31:15 UTC
Created attachment 996114 [details]
File: proc_pid_status

Comment 11 Michele 2015-02-27 16:31:16 UTC
Created attachment 996115 [details]
File: var_log_messages

Comment 12 Cole Robinson 2015-05-06 14:59:10 UTC
*** Bug 1211571 has been marked as a duplicate of this bug. ***

Comment 13 Cole Robinson 2015-05-06 15:02:19 UTC
Looked into this out of curiousity. signal_handler is:

static void
signal_handler(int signum)
{
    static gint recursion = FALSE;

    /*
     * reset all signal handlers: any further crashes should just be allowed
     * to crash normally.
     * */
    signal(SIGSEGV, segv_handler);
    signal(SIGABRT, abrt_handler);
    signal(SIGFPE,  fpe_handler);
    signal(SIGILL,  ill_handler);
#ifndef G_OS_WIN32  
    signal(SIGBUS,  bus_handler);
#endif

    /* Stop bizarre loops */
    if (recursion)
        abort ();

    recursion = TRUE;

    g_main_loop_quit(mainloop);
}


It's hitting the abort()... but the usage of signal handler is strange anyways. I don't know why it wants to catch SIGABRT etc, the only thing it seems to want to handle is SIGINT and SIGTERM

And you can't call any gtk functions from a signal handler, which may contribute to crashes here: http://askra.de/software/gtk-signals/x2992.html

Comment 14 Daniel Berrangé 2015-05-06 15:09:35 UTC
(In reply to Cole Robinson from comment #13)
> And you can't call any gtk functions from a signal handler, which may
> contribute to crashes here: http://askra.de/software/gtk-signals/x2992.html

And if it doesn't crash, it is likely to deadlock, because g_main_loop_quit acquires mutexes, and that is not async signal safe.

Comment 15 Marc-Andre Lureau 2015-05-06 15:31:39 UTC
That should fix it:
http://lists.freedesktop.org/archives/spice-devel/2015-May/019697.html

Comment 16 Marc-Andre Lureau 2015-06-29 23:38:27 UTC
f22 should have spice-gtk 0.29 with the fixes now


Note You need to log in before you can comment on or make changes to this bug.