16.04: Crash on start after selecting CA (created with 14.04)

Bug #1545276 reported by Michael
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tinyca (Debian)
Fix Released
Unknown
tinyca (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

After selecting a CA, it says "Can't open index file: Ressource temporarily unavailable" and then it crashes. Using 16.04 with a CA created with 14.04.

gdb -backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff67e5850 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
(gdb) bt
#0 0x00007ffff67e5850 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1 0x00007ffff67eed8c in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#2 0x00007ffff67ef0bf in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3 0x00007ffff1ee6d70 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#4 0x00007ffff67d8d25 in g_object_unref () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff6a36e4a in ?? () from /usr/lib/x86_64-linux-gnu/perl5/5.22/auto/Glib/Glib.so
#6 0x00000000004bd6fa in Perl_pp_entersub ()
#7 0x000000000043c338 in Perl_call_sv ()
#8 0x00000000004c20c3 in ?? ()
#9 0x00000000004c2b00 in Perl_sv_clear ()
#10 0x00000000004c2dbd in Perl_sv_free2 ()
#11 0x00000000004c0f1b in ?? ()
#12 0x00000000004c3174 in Perl_sv_clean_objs ()
#13 0x000000000043ebeb in perl_destruct ()
#14 0x000000000041cb83 in main ()

The last strace-entries:
writev(4, [{"\24\0\6\0\355\2\300\7Z\1\0\0\6\0\0\0\0\0\0\0\377\377\377\377", 24}, {NULL, 0}, {"", 0}], 3) = 24
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1 1\20\1\0\0\0\6\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 36
recvmsg(4, 0x7ffee3643430, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"\16\0\2\0\355\2\300\7", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0302\20\0\0\0\0\230\0\0\0\0\0\0\0X\2}\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee3643340, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee3643340, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"(\0\4\0\355\2\300\7\230\0\0\0\0\0\0\0", 16}, {NULL, 0}, {"", 0}], 3) = 16
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0013\20\0\0\0\0u\200\271\2\244\1\203\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"(\0\4\0\355\2\300\7\230\0\0\0\0\0\0\0", 16}, {NULL, 0}, {"", 0}], 3) = 16
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0014\20\0\0\0\0u\200\271\2\244\1\203\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee3643430, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee3643430, 0) = -1 EAGAIN (Resource temporarily unavailable)
write(12, "W", 1) = 1
write(12, "W", 1) = 1
futex(0x25a88e0, FUTEX_UNLOCK_PI_PRIVATE, 0) = 0
futex(0x25a8914, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 19, NULL, 0x25a88e0) = 0
futex(0x25a88e0, FUTEX_UNLOCK_PI_PRIVATE, 0) = 0
recvmsg(4, 0x7ffee36437c0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 3, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\5\0014\20\6+(\t\230\0\0\0\355\2\300\7\0\0\0\0\266\3\350\1\22\2e\0\0\1\1\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36437e0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"$\0\1\0&\2\2\0\230\0\0\0", 12}, {NULL, 0}, {"", 0}], 3) = 12
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0016\20\0\0\0\0\230\0\0\0u\200\271\2\266\3\350\1\266\3\350\1\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"&\0\2\0u\200\271\2", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0017\20\0\0\0\0\230\0\0\0v\200\271\2\266\3\350\1\35\2\213\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"&\0\2\0v\200\271\2", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0018\20\0\0\0\0\230\0\0\0\355\2\300\7\266\3\350\1\22\2e\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"&\0\2\0\355\2\300\7", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0019\20\0\0\0\0\230\0\0\0\0\0\0\0\266\3\350\1\22\2e\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, 0x7ffee36433a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"%\0\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4
recvmsg(4, 0x7ffee3643450, 0) = -1 EAGAIN (Resource temporarily unavailable)
write(5, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x1576c70, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGHUP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGILL, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTRAP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGABRT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGFPE, NULL, {SIG_IGN, [FPE], SA_RESTORER|SA_RESTART, 0x7f0d643ee2b0}, 8) = 0
rt_sigaction(SIGKILL, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR2, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f0d643ee2b0}, 8) = 0
rt_sigaction(SIGALRM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSTKFLT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCONT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSTOP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTIN, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTOU, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGURG, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXCPU, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXFSZ, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGVTALRM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPROF, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGWINCH, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGIO, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPWR, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_2, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_3, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_4, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_5, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_6, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_7, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_8, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_9, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_10, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_11, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_12, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_13, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_14, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_15, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_16, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_17, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_18, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_19, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_20, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_21, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_22, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_23, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_24, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_25, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_26, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_27, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_28, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_29, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_30, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_31, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_32, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGABRT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGIO, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xa} ---
+++ killed by SIGSEGV (core dumped) +++
Speicherzugriffsfehler (core dumped)

Tags: xenial
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in tinyca (Ubuntu):
status: New → Confirmed
Changed in tinyca (Debian):
status: Unknown → New
Revision history for this message
Andrey Bondarenko (abone) wrote :

In my opinion crash happens because of direct call of perl exit() in GTK signal handlers.

To reproduce bug: start tinyca2 without arguments, press cancel in create CA dialog, then select exit in main menu.

Here is stack trace from crash:

(gdb) bt
#0 0x00007ffff6817820 in signal_emit_unlocked_R (instance=0x17dec90, detail=0, signal_id=11)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./gobject/gsignal.c:824
#1 0x00007ffff6817820 in signal_emit_unlocked_R (node=node@entry=0x7ff7c0, detail=detail@entry=0, instance=instance@entry=0x17dec90, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd530) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./gobject/gsignal.c:3513
#2 0x00007ffff6820d5c in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd6e0) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./gobject/gsignal.c:3385
#3 0x00007ffff682108f in g_signal_emit (instance=instance@entry=0x17dec90, signal_id=<optimized out>, detail=detail@entry=0)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./gobject/gsignal.c:3441
#4 0x00007ffff1f06db0 in gtk_object_dispose (gobject=0x17dec90 [GtkProgressBar]) at /build/gtk+2.0-jJZIsQ/gtk+2.0-2.24.30/gtk/gtkobject.c:421
#5 0x00007ffff680ad25 in g_object_unref (_object=0x17dec90) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./gobject/gobject.c:3146
#6 0x00007ffff6a68e4a in XS_Glib__Object_DESTROY (my_perl=<optimized out>, cv=<optimized out>) at GObject.xs:1301
#7 0x00000000004bd41a in Perl_pp_entersub ()
#8 0x000000000043c2a8 in Perl_call_sv ()
#9 0x00000000004c1dc3 in ()
#10 0x00000000004c2800 in Perl_sv_clear ()
#11 0x00000000004c2abd in Perl_sv_free2 ()
#12 0x00000000004c0c3b in ()
#13 0x00000000004c2e74 in Perl_sv_clean_objs ()
#14 0x000000000043ee8b in perl_destruct ()
#15 0x000000000041caf3 in main ()

Looks like bug is only reproducible with some specific libraries version. It can be reproduced in Ubuntu 16.04.3 with following packages versions:

ii libglib2.0-0:amd64 2.48.2-0ubuntu1
ii libgtk2-perl 2:1.2498-1
ii libgtk2.0-0:amd64 2.24.30-1ubuntu1.16.0
ii tinyca 0.7.5-6

The same tinyca version does not crash in debian 9.3 with following packages versions:

ii libglib2.0-0:amd64 2.50.3-2
ii libgtk2-perl 2:1.2499-1
ii libgtk2.0-0:amd64 2.24.31-2
ii tinyca 0.7.5-6

I've created simple patch for Ubuntu, but not sure if it is necessary in future versions.
https://github.com/abone28/tinyca/commit/607e5477c756fb2214ee01f8e8e49e8d7b984b39

Changed in tinyca (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.