Tilix: Segfaults since Beta 1.4.0

Created on 12 Dec 2016  路  10Comments  路  Source: gnunn1/tilix

I noticed a few segfaults.

terminix[31091]: segfault at 0 ip 00000000009c2f3a sp 00007ffcfbbb40c0 error 4 in terminix[400000+a48000]

Unfortunately that's all I have. I don't know how to reproduce it. My system:

~> uname -a
Linux sectoid.local 4.9.0-0.rc8.git2.2.fc26.x86_64 #1 SMP Wed Dec 7 23:36:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

~> cat /etc/os-release 
NAME=Fedora
VERSION="25 (Workstation Edition)"
ID=fedora
VERSION_ID=25
PRETTY_NAME="Fedora 25 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:25"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=25
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=25
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy
VARIANT="Workstation Edition"
VARIANT_ID=workstation
bug

Most helpful comment

You can download a debug build here, this has debug information and tracing enabled.

http://gexperts.com/files/terminix.zip

To debug it, run terminix in gdb using the following command:

gdb terminix

And then type run to actually start the application. Once it crashes, run the the command bt which will give you a backtrace. Paste the backtrace here in this bug report.

All 10 comments

Thanks for the report, much appreciated. To debug this, you would need to run a debug build under gdb until it segfaults and then get a backtrace. If you are willing to do that I put together a build for you and some instructions later tonight.

Also, can you run terminix --version and post the output here please.

That'd be useful. I use terminix everyday 24/7, so it's quite important this gets fix :-) Anything I can do to help let me know.

@gnunn1 I'm hitting this as well and quite often, on Fedora 23. Please provide debug build for me as well.

terminix --version
Versions
    Terminix version: 1.4.0-beta
    VTE version: 0.42
    GTK Version: 3.18.9

Terminix Special Features
    Notifications enabled=1
    Triggers enabled=0
    Badges enabled=0

You can download a debug build here, this has debug information and tracing enabled.

http://gexperts.com/files/terminix.zip

To debug it, run terminix in gdb using the following command:

gdb terminix

And then type run to actually start the application. Once it crashes, run the the command bt which will give you a backtrace. Paste the backtrace here in this bug report.

Just got segfault

error (just after the segfault)

Program received signal SIGSEGV, Segmentation fault.
0x0000000000aa750a in gx.terminix.terminal.terminal.Terminal.createVTE().__dgliteral11!(vte.Terminal.Terminal).__dgliteral11(vte.Terminal.Terminal) (
    this=0x7ffff7f4bbf0, VTE=0x7fffe1055000) at source/gx/terminix/terminal/terminal.d:851
851 source/gx/terminix/terminal/terminal.d: No such file or directory.

backtrace from gdb

#0  0x0000000000aa750a in gx.terminix.terminal.terminal.Terminal.createVTE().__dgliteral11!(vte.Terminal.Terminal).__dgliteral11(vte.Terminal.Terminal) (
    this=0x7ffff7f4bbf0, VTE=0x7fffe1055000) at source/gx/terminix/terminal/terminal.d:851
#1  0x0000000000aceca8 in vte.Terminal.Terminal.callBackSelectionChanged(vtec.vtetypes.VteTerminal*, vte.Terminal.Terminal) (terminalStruct=0x1abe3e0, 
    _terminal=0x7fffe1055000) at ../../.dub/packages/gtk-d-3.3.1/gtk-d/srcvte/vte/Terminal.d:2060
#2  0x00007ffff63097a5 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#3  0x00007ffff631b851 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#4  0x00007ffff6324530 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#5  0x00007ffff6324dc5 in g_signal_emit_by_name () from /lib64/libgobject-2.0.so.0
#6  0x00007fffebf6f69c in vte_terminal_deselect_all(_VteTerminal*) () from /lib64/libvte-2.91.so.0
#7  0x00007fffedb579e3 in clipboard_unset () from /lib64/libgtk-3.so.0
#8  0x00007fffedb57aac in selection_clear_event_cb () from /lib64/libgtk-3.so.0
#9  0x00007fffed9f4eec in _gtk_marshal_BOOLEAN__BOXED () from /lib64/libgtk-3.so.0
#10 0x00007ffff63097a5 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#11 0x00007ffff631b851 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#12 0x00007ffff6324122 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#13 0x00007ffff63248ff in g_signal_emit () from /lib64/libgobject-2.0.so.0
#14 0x00007fffedb324bc in gtk_widget_event_internal () from /lib64/libgtk-3.so.0
#15 0x00007fffed9f40b6 in gtk_main_do_event () from /lib64/libgtk-3.so.0
#16 0x00007ffff0fb1e92 in gdk_event_source_dispatch () from /lib64/libgdk-3.so.0
#17 0x00007ffff600ae5a in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#18 0x00007ffff600b1f0 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#19 0x00007ffff600b29c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#20 0x00007ffff03fba1c in g_application_run () from /lib64/libgio-2.0.so.0
#21 0x0000000000aee6db in gio.Application.Application.run(immutable(char)[][]) (this=0x7ffff7efe800, argv=...)
    at ../../.dub/packages/gtk-d-3.3.1/gtk-d/src/gio/Application.d:889
#22 0x00000000009bdd70 in D main (args=...) at source/app.d:119

Another one

#0  0x0000000000aa750a in gx.terminix.terminal.terminal.Terminal.createVTE().__dgliteral11!(vte.Terminal.Terminal).__dgliteral11(vte.Terminal.Terminal) (
    this=<error reading variable: Cannot access memory at address 0x7fffffffce60>, 
    VTE=<error reading variable: Cannot access memory at address 0x7fffffffce68>) at source/gx/terminix/terminal/terminal.d:851
#1  0x0000000000aceca8 in vte.Terminal.Terminal.callBackSelectionChanged(vtec.vtetypes.VteTerminal*, vte.Terminal.Terminal) (
    terminalStruct=<error reading variable: Cannot access memory at address 0x7fffffffce70>, 
    _terminal=<error reading variable: Cannot access memory at address 0x7fffffffce70>) at ../../.dub/packages/gtk-d-3.3.1/gtk-d/srcvte/vte/Terminal.d:2060
#2  0x00007ffff63097a5 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#3  0x00007ffff631b851 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#4  0x00007ffff6324530 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#5  0x00007ffff6324dc5 in g_signal_emit_by_name () from /lib64/libgobject-2.0.so.0
#6  0x00007fffebf6f69c in vte_terminal_deselect_all(_VteTerminal*) () from /lib64/libvte-2.91.so.0
#7  0x00007fffedb579e3 in clipboard_unset () from /lib64/libgtk-3.so.0
#8  0x00007fffedb57aac in selection_clear_event_cb () from /lib64/libgtk-3.so.0
#9  0x00007fffed9f4eec in _gtk_marshal_BOOLEAN__BOXED () from /lib64/libgtk-3.so.0
#10 0x00007ffff63097a5 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#11 0x00007ffff631b851 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#12 0x00007ffff6324122 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#13 0x00007ffff63248ff in g_signal_emit () from /lib64/libgobject-2.0.so.0
#14 0x00007fffedb324bc in gtk_widget_event_internal () from /lib64/libgtk-3.so.0
#15 0x00007fffed9f40b6 in gtk_main_do_event () from /lib64/libgtk-3.so.0
#16 0x00007ffff0fb1e92 in gdk_event_source_dispatch () from /lib64/libgdk-3.so.0
#17 0x00007ffff600ae5a in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#18 0x00007ffff600b1f0 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#19 0x00007ffff600b29c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#20 0x00007ffff03fba1c in g_application_run () from /lib64/libgio-2.0.so.0
#21 0x0000000000aee6db in gio.Application.Application.run(immutable(char)[][]) (this=<error reading variable: Cannot access memory at address 0x7fffffffdae0>, 
    argv=<error reading variable: Cannot access memory at address 0x7fffffffdae0>) at ../../.dub/packages/gtk-d-3.3.1/gtk-d/src/gio/Application.d:889
#22 0x00000000009bdd70 in D main (args=<error reading variable: Cannot access memory at address 0x7fffffffdb40>) at source/app.d:119

dmesg

[287847.879323] terminix[26215]: segfault at 0 ip 00000000009c2f3a sp 00007ffe99372ec0 error 4 in terminix[400000+a48000]

Thanks, I'll have a look.

I think this is caused because I'm being aggressive about removing the VTE widget. Can you please try this updated version where I've added some additional checks on the VTE events to make sure it is not null.

http://gexperts.com/files/terminix2.zip

Can you let me know if the version above appears to correct the problem?

@gnunn1 will do.
I'm running the updated version, no segfaults yet. I'll update the ticket if I get any

I'm going to close this, if the problem happens again just re-open the issue.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

iax7 picture iax7  路  4Comments

gregflynn picture gregflynn  路  4Comments

tomtobac picture tomtobac  路  3Comments

roadhoghook picture roadhoghook  路  4Comments

lucascosti picture lucascosti  路  3Comments