Bug 1036235

Summary: gedit crashes when opening various files
Product: [Fedora] Fedora Reporter: Jacek Pliszka <Jacek.Pliszka>
Component: geditAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 20CC: kigurai, luca.cavalli, pborelli, rstrode, tomkarger
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-29 13:17:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Example of file crashing gedit none

Description Jacek Pliszka 2013-11-29 22:57:02 UTC
Created attachment 830785 [details]
Example of file crashing gedit

Description of problem:

gedit crashes when opening certain files


Version-Release number of selected component (if applicable):
gedit-3.10.2-1.fc20

How reproducible:
always

Steps to Reproduce:
1. in cmdline run:  gedit file
2.
3.

Actual results:
(gedit:10060): Gtk-WARNING **: Locale not supported by C library.
	Using the fallback 'C' locale.
**
ERROR:pygi-argument.c:1581:_pygi_argument_to_object: code should not be reached
Aborted (core dumped)


Expected results:
File is opened

Additional info:

i have LANG=en_US.UTF-8

Comment 1 Tomas Karger 2014-02-10 08:11:13 UTC
This bug affects me too for various files. I was also able to reproduce the result with the attached example file. 

I'm on fully updated f20.
Gedit version 3.10.3.

Comment 2 Luca Cavalli 2014-02-10 08:18:01 UTC
This bug is having huge impact also my work-flow. I use gedit as default text editor and if I have several tabs opened, loading one of such crashing-files, makes all my work disappear.

If there is any information I can provide to help solving this bug, please let me know.

Not even sure it is a gedit bug or Python gobject bindings bug.

Comment 3 Tomas Karger 2014-02-10 09:13:55 UTC
I opened the example file in gedit with gdb. This is what I got:

(gdb) run
Starting program: /usr/bin/gedit 
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib64/libgobject-2.0.so.0.3800.2-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Missing separate debuginfo for /lib64/libgraphite2.so.3
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/90/82e46860379c3dff9004eb8c9834e50afbb528.debug
[New Thread 0x7fffe70fa700 (LWP 14876)]
[New Thread 0x7fffdffff700 (LWP 14877)]
[New Thread 0x7fffd2939700 (LWP 14878)]
Detaching after fork from child process 14879.
Detaching after fork from child process 14880.
[New Thread 0x7fffd135e700 (LWP 14989)]
**
ERROR:pygi-argument.c:1581:_pygi_argument_to_object: code should not be reached

Program received signal SIGABRT, Aborted.
0x00007ffff4080c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	  return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
Missing separate debuginfos, use: debuginfo-install GConf2-3.2.6-7.fc20.x86_64 PackageKit-gtk3-module-0.8.16-1.fc20.x86_64 adwaita-gtk3-theme-3.10.0-1.fc20.x86_64 at-spi2-atk-2.10.2-1.fc20.x86_64 at-spi2-core-2.10.2-1.fc20.x86_64 dbus-glib-0.100.2-2.fc20.x86_64 dbus-libs-1.6.12-8.fc20.x86_64 dconf-0.18.0-2.fc20.x86_64 expat-2.1.0-7.fc20.x86_64 fontconfig-2.11.0-1.fc20.x86_64 freetype-2.5.0-4.fc20.x86_64 gvfs-1.18.3-2.fc20.x86_64 harfbuzz-0.9.24-1.fc20.x86_64 hunspell-1.3.2-14.fc20.x86_64 libXau-1.0.8-2.fc20.x86_64 libXcomposite-0.4.4-4.fc20.x86_64 libXcursor-1.1.14-2.fc20.x86_64 libXdamage-1.1.4-4.fc20.x86_64 libXext-1.3.2-2.fc20.x86_64 libXfixes-5.0.1-2.fc20.x86_64 libXi-1.7.2-2.fc20.x86_64 libXinerama-1.1.3-2.fc20.x86_64 libXrandr-1.4.1-2.fc20.x86_64 libXrender-0.9.8-2.fc20.x86_64 libXxf86vm-1.1.3-2.fc20.x86_64 libbluray-0.5.0-2.fc20.x86_64 libcanberra-0.30-4.fc20.x86_64 libcanberra-gtk3-0.30-4.fc20.x86_64 libcroco-0.6.8-3.fc20.x86_64 libdrm-2.4.50-1.fc20.x86_64 libffi-3.0.13-5.fc20.x86_64 libgcc-4.8.2-7.fc20.x86_64 libogg-1.3.0-6.fc20.x86_64 libpng-1.6.3-3.fc20.x86_64 librsvg2-2.40.1-1.fc20.x86_64 libselinux-2.2.1-6.fc20.x86_64 libstdc++-4.8.2-7.fc20.x86_64 libtdb-1.2.12-2.fc20.x86_64 libtool-ltdl-2.4.2-23.fc20.x86_64 libvorbis-1.3.4-1.fc20.x86_64 libwayland-client-1.2.0-3.fc20.x86_64 libwayland-cursor-1.2.0-3.fc20.x86_64 libwayland-server-1.2.0-3.fc20.x86_64 libxcb-1.9.1-3.fc20.x86_64 libxkbcommon-0.3.1-1.fc20.x86_64 mesa-libEGL-9.2.5-1.20131220.fc20.x86_64 mesa-libGL-9.2.5-1.20131220.fc20.x86_64 mesa-libgbm-9.2.5-1.20131220.fc20.x86_64 mesa-libglapi-9.2.5-1.20131220.fc20.x86_64 ncurses-libs-5.9-12.20130511.fc20.x86_64 nss-softokn-freebl-3.15.4-1.fc20.x86_64 pcre-8.33-4.fc20.x86_64 pixman-0.30.0-3.fc20.x86_64 python3-gobject-3.10.2-1.fc20.x86_64 python3-libs-3.3.2-8.fc20.x86_64 systemd-libs-208-9.fc20.x86_64 vte3-0.34.9-1.fc20.x86_64 xz-libs-5.1.2-6alpha.fc20.x86_64 zlib-1.2.8-3.fc20.x86_64
(gdb) bt
#0  0x00007ffff4080c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff4082348 in __GI_abort () at abort.c:89
#2  0x00007ffff497e0ed in _g_log_abort () at gmessages.c:255
#3  0x00007ffff499bc97 in g_assertion_message (domain=domain@entry=0x0, 
    file=file@entry=0x7fffde813268 "pygi-argument.c", line=line@entry=1581, 
    func=func@entry=0x7fffde8130f0 "_pygi_argument_to_object", 
    message=message@entry=0xf80bd0 "code should not be reached") at gtestutils.c:2278
#4  0x00007ffff499bcfa in g_assertion_message_expr (domain=0x0, file=0x7fffde813268 "pygi-argument.c", 
    line=1581, func=0x7fffde8130f0 "_pygi_argument_to_object", expr=<optimized out>)
    at gtestutils.c:2293
#5  0x00007fffde80530d in _pygi_argument_to_object ()
   from /usr/lib64/python3.3/site-packages/gi/_gi.cpython-33m.so
#6  0x00007fffde80915b in pygi_signal_closure_marshal ()
   from /usr/lib64/python3.3/site-packages/gi/_gi.cpython-33m.so
#7  0x00007ffff4c6a298 in g_closure_invoke (closure=0xf1a320, return_value=return_value@entry=0x0, 
    n_param_values=4, param_values=param_values@entry=0x7fffffffda00, 
    invocation_hint=invocation_hint@entry=0x7fffffffd9a0) at gclosure.c:777
#8  0x00007ffff4c7c601 in signal_emit_unlocked_R (node=node@entry=0xde4650, detail=detail@entry=0, 
    instance=instance@entry=0xc28850, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffda00) at gsignal.c:3656
#9  0x00007ffff4c840f2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>, var_args=var_args@entry=0x7fffffffdbc0) at gsignal.c:3330
#10 0x00007ffff4c843af in g_signal_emit (instance=instance@entry=0xc28850, signal_id=<optimized out>, 
    detail=detail@entry=0) at gsignal.c:3386
#11 0x00007ffff6e6dacc in gtk_text_buffer_emit_insert (buffer=buffer@entry=0xc28850, 
    iter=iter@entry=0xd45138, text=text@entry=0xf77d48 " gsi\304\r\n", len=<optimized out>, len@entry=4)
    at gtktextbuffer.c:922
#12 0x00007ffff6e6de39 in gtk_text_buffer_insert (buffer=buffer@entry=0xc28850, 
    iter=iter@entry=0xd45138, text=text@entry=0xf77d48 " gsi\304\r\n", len=len@entry=4)
    at gtktextbuffer.c:953
#13 0x000000000042ff32 in validate_and_insert (stream=stream@entry=0xd451f0, 
    buffer=buffer@entry=0xf77d48 " gsi\304\r\n", count=count@entry=7)
    at gedit-document-output-stream.c:633
#14 0x00000000004306cf in gedit_document_output_stream_write (stream=<optimized out>, 
    buffer=<optimized out>, count=<optimized out>, cancellable=<optimized out>, error=0x7fffffffde20)
    at gedit-document-output-stream.c:974
#15 0x00007ffff514573e in g_output_stream_write (stream=0xd451f0, buffer=buffer@entry=0xf77d48, 
    count=count@entry=7, cancellable=cancellable@entry=0x7fffe0015820, error=error@entry=0x7fffffffde20)
    at goutputstream.c:211
#16 0x000000000042ed31 in write_file_chunk (async=0x72ec20) at gedit-document-loader.c:503
#17 async_read_cb (stream=<optimized out>, res=<optimized out>, async=0x72ec20)
    at gedit-document-loader.c:610
#18 0x00007ffff51399fa in async_ready_callback_wrapper (source_object=0x7fffc4001430, res=0xcdc340, 
    user_data=0x72ec20) at ginputstream.c:519
#19 0x00007ffff515a0ab in g_task_return_now (task=0xcdc340) at gtask.c:1108
#20 0x00007ffff515a0c9 in complete_in_idle_cb (task=0xcdc340) at gtask.c:1117
#21 0x00007ffff49772a6 in g_main_dispatch (context=0x6ca040) at gmain.c:3066
#22 g_main_context_dispatch (context=context@entry=0x6ca040) at gmain.c:3642
#23 0x00007ffff4977628 in g_main_context_iterate (context=context@entry=0x6ca040, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
#24 0x00007ffff49776dc in g_main_context_iteration (context=0x6ca040, context@entry=0x0, 
    may_block=may_block@entry=1) at gmain.c:3774
#25 0x00007ffff517a954 in g_application_run (application=0x6a3100, argc=argc@entry=1, 
---Type <return> to continue, or q <return> to quit---^Cargv=argv@entry=0x7Quit
(gdb) 
#0  0x00007ffff4080c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff4082348 in __GI_abort () at abort.c:89
#2  0x00007ffff497e0ed in _g_log_abort () at gmessages.c:255
#3  0x00007ffff499bc97 in g_assertion_message (domain=domain@entry=0x0, 
    file=file@entry=0x7fffde813268 "pygi-argument.c", line=line@entry=1581, 
    func=func@entry=0x7fffde8130f0 "_pygi_argument_to_object", 
    message=message@entry=0xf80bd0 "code should not be reached") at gtestutils.c:2278
#4  0x00007ffff499bcfa in g_assertion_message_expr (domain=0x0, file=0x7fffde813268 "pygi-argument.c", 
    line=1581, func=0x7fffde8130f0 "_pygi_argument_to_object", expr=<optimized out>)
    at gtestutils.c:2293
#5  0x00007fffde80530d in _pygi_argument_to_object ()
   from /usr/lib64/python3.3/site-packages/gi/_gi.cpython-33m.so
#6  0x00007fffde80915b in pygi_signal_closure_marshal ()
   from /usr/lib64/python3.3/site-packages/gi/_gi.cpython-33m.so
#7  0x00007ffff4c6a298 in g_closure_invoke (closure=0xf1a320, return_value=return_value@entry=0x0, 
    n_param_values=4, param_values=param_values@entry=0x7fffffffda00, 
    invocation_hint=invocation_hint@entry=0x7fffffffd9a0) at gclosure.c:777
#8  0x00007ffff4c7c601 in signal_emit_unlocked_R (node=node@entry=0xde4650, detail=detail@entry=0, 
    instance=instance@entry=0xc28850, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffda00) at gsignal.c:3656
#9  0x00007ffff4c840f2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>, var_args=var_args@entry=0x7fffffffdbc0) at gsignal.c:3330
#10 0x00007ffff4c843af in g_signal_emit (instance=instance@entry=0xc28850, signal_id=<optimized out>, 
    detail=detail@entry=0) at gsignal.c:3386
#11 0x00007ffff6e6dacc in gtk_text_buffer_emit_insert (buffer=buffer@entry=0xc28850, 
    iter=iter@entry=0xd45138, text=text@entry=0xf77d48 " gsi\304\r\n", len=<optimized out>, len@entry=4)
    at gtktextbuffer.c:922
#12 0x00007ffff6e6de39 in gtk_text_buffer_insert (buffer=buffer@entry=0xc28850, 
    iter=iter@entry=0xd45138, text=text@entry=0xf77d48 " gsi\304\r\n", len=len@entry=4)
    at gtktextbuffer.c:953
#13 0x000000000042ff32 in validate_and_insert (stream=stream@entry=0xd451f0, 
    buffer=buffer@entry=0xf77d48 " gsi\304\r\n", count=count@entry=7)
    at gedit-document-output-stream.c:633
#14 0x00000000004306cf in gedit_document_output_stream_write (stream=<optimized out>, 
    buffer=<optimized out>, count=<optimized out>, cancellable=<optimized out>, error=0x7fffffffde20)
    at gedit-document-output-stream.c:974
#15 0x00007ffff514573e in g_output_stream_write (stream=0xd451f0, buffer=buffer@entry=0xf77d48, 
    count=count@entry=7, cancellable=cancellable@entry=0x7fffe0015820, error=error@entry=0x7fffffffde20)
    at goutputstream.c:211
#16 0x000000000042ed31 in write_file_chunk (async=0x72ec20) at gedit-document-loader.c:503
#17 async_read_cb (stream=<optimized out>, res=<optimized out>, async=0x72ec20)
    at gedit-document-loader.c:610
#18 0x00007ffff51399fa in async_ready_callback_wrapper (source_object=0x7fffc4001430, res=0xcdc340, 
    user_data=0x72ec20) at ginputstream.c:519
#19 0x00007ffff515a0ab in g_task_return_now (task=0xcdc340) at gtask.c:1108
#20 0x00007ffff515a0c9 in complete_in_idle_cb (task=0xcdc340) at gtask.c:1117
#21 0x00007ffff49772a6 in g_main_dispatch (context=0x6ca040) at gmain.c:3066
#22 g_main_context_dispatch (context=context@entry=0x6ca040) at gmain.c:3642
#23 0x00007ffff4977628 in g_main_context_iterate (context=context@entry=0x6ca040, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
#24 0x00007ffff49776dc in g_main_context_iteration (context=0x6ca040, context@entry=0x0, 
    may_block=may_block@entry=1) at gmain.c:3774
#25 0x00007ffff517a954 in g_application_run (application=0x6a3100, argc=argc@entry=1, 
---Type <return> to continue, or q <return> to quit---
    argv=argv@entry=0x7fffffffe118) at gapplication.c:1635
#26 0x0000000000422780 in main (argc=1, argv=0x7fffffffe118) at gedit.c:68
(gdb) quit

Comment 4 paolo borelli 2014-02-11 07:07:38 UTC
(In reply to Luca Cavalli from comment #2)
> If there is any information I can provide to help solving this bug, please
> let me know.


Ciao Luca, the first thing I would try to do is to pinpoing if the problem is related to a specific plugin you are using

Comment 5 Tomas Karger 2014-02-11 07:57:59 UTC
It seems to be related to the Trailing Spaces plugin.

When I turn it off, the example file does not crash gedit (it just opens with the warning "There was a problem opening the file ..." and it points out that the file has some invalid characters). Other files that previously crashed gedit open just fine.

Can anyone confirm this?

Comment 6 Hannes Ovrén 2014-02-11 08:31:35 UTC
I don't have the "trailing spaces" plugin, and when I open the example file gedit does not crash, but shows the "There was a problem opening this file..."

Comment 7 Luca Cavalli 2014-02-11 08:33:12 UTC
(In reply to paolo borelli from comment #4)
> Ciao Luca, the first thing I would try to do is to pinpoing if the problem
> is related to a specific plugin you are using

Hi Paolo,

it was my first thought when I saw python in error message and renamed plugins directories, without success.

This time I disabled plugins one-by-one in preferences dialog and... Bingo :)

Probably I did something weird the first time I tried.

Tomas, on my system the culprit is Multi Edit plugin.

Comment 8 paolo borelli 2014-02-11 08:51:49 UTC
I wonder if this could be due to some changes in pygobject and due to some kind of mismatch between the .pyc files included in the plugins' rpm and a new version of pygobject...

Comment 9 Luca Cavalli 2014-02-11 09:28:38 UTC
Plugins are stored in /usr/lib64/gedit/plugins/, but first time I tried by renaming directories, I only renamed /usr/share/gedit/plugins and .local/share/gedit/plugins. This explains why I didn't find it was a plugin causing the crash.

My rpms are:

gedit.x86_64                         2:3.10.3-1.fc20                   @updates
gedit-plugins.x86_64                 3.10.1-1.fc20                     @updates

Anyway, tried to remove all *.pyc and *.pyo files in multiedit folder and recompiled with "python -m compileall ." (is it correct?). Same crash.

Comment 10 Jacek Pliszka 2014-02-11 11:36:20 UTC
OK, I can confirm that the bug is caused by Multi Edit plugin.

Once I disable the plugin gedit no longer crashes but detects incorrect character in the file.

Comment 11 Fedora End Of Life 2015-05-29 09:52:55 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '20'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 20 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 12 Fedora End Of Life 2015-06-29 13:17:09 UTC
Fedora 20 changed to end-of-life (EOL) status on 2015-06-23. Fedora 20 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.