After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 595343 - Segfault in brasero_caps_find_link_for_input at brasero-caps-plugin.c:61
Segfault in brasero_caps_find_link_for_input at brasero-caps-plugin.c:61
Status: RESOLVED FIXED
Product: brasero
Classification: Applications
Component: libbrasero-burn
2.27.x
Other Linux
: Normal normal
: ---
Assigned To: Brasero maintainer(s)
Brasero maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2009-09-16 11:14 UTC by Emilio Pozuelo Monfort
Modified: 2009-09-24 12:33 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emilio Pozuelo Monfort 2009-09-16 11:14:34 UTC
[ From http://bugs.debian.org/546887 ]

"Here's the single liner which triggers a segfault:

  $ python -c 'import braseroburn; braseroburn.SessionCfg()'

gdb backtrace is attached.

This only occurs when python-brasero *and* brasero are installed. It
looks like python-brasero makes use of the plugins that brasero
provides."

I can reproduce the crash.
The backtrace is

(gdb) run -c 'import braseroburn; braseroburn.SessionCfg()'
Starting program: /usr/bin/python -c 'import braseroburn; braseroburn.SessionCfg()'
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0xb7c185e3 in brasero_caps_find_link_for_input (caps=0x8378268, input=0x0) at brasero-caps-plugin.c:61
61	brasero-caps-plugin.c: No such file or directory.
	in brasero-caps-plugin.c
(gdb) thread apply all bt

Thread 1 (Thread 0xb7e248d0 (LWP 22258))

  • #0 brasero_caps_find_link_for_input
    at brasero-caps-plugin.c line 61
  • #1 brasero_plugin_blank_caps
    at brasero-caps-plugin.c line 767
  • #2 brasero_plugin_register
    from /usr/lib/brasero/plugins/libbrasero-dvdrwformat.so
  • #3 brasero_plugin_init_real
    at burn-plugin.c line 1037
  • #4 brasero_plugin_set_property
    at burn-plugin.c line 1150
  • #5 object_set_property
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 942
  • #6 g_object_constructor
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1352
  • #7 IA__g_object_newv
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1215
  • #8 IA__g_object_new_valist
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1319
  • #9 IA__g_object_new
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1060
  • #10 brasero_plugin_new
    at burn-plugin.c line 1257
  • #11 brasero_plugin_manager_init
    at burn-plugin-manager.c line 470
  • #12 IA__g_type_create_instance
    at /build/buildd/glib2.0-2.21.5/gobject/gtype.c line 1674
  • #13 g_object_constructor
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1338
  • #14 IA__g_object_newv
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1215
  • #15 IA__g_object_new_valist
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1278
  • #16 IA__g_object_new
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1060
  • #17 brasero_plugin_manager_get_default
    at burn-plugin-manager.c line 547
  • #18 brasero_session_cfg_init
    at brasero-session-cfg.c line 1565
  • #19 IA__g_type_create_instance
    at /build/buildd/glib2.0-2.21.5/gobject/gtype.c line 1674
  • #20 g_object_constructor
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1338
  • #21 IA__g_object_newv
    at /build/buildd/glib2.0-2.21.5/gobject/gobject.c line 1215
  • #22 ??
    from /usr/lib/pymodules/python2.5/gtk-2.0/gobject/_gobject.so
  • #23 _wrap_brasero_session_cfg_new
    at brasero_burn.c line 1062
  • #24 type_call
    at ../Objects/typeobject.c line 436
  • #25 PyObject_Call
    at ../Objects/abstract.c line 1861
  • #26 do_call
    at ../Python/ceval.c line 3823
  • #27 call_function
    at ../Python/ceval.c line 3635
  • #28 PyEval_EvalFrameEx
    at ../Python/ceval.c line 2304
  • #29 PyEval_EvalCodeEx
    at ../Python/ceval.c line 2875
  • #30 PyEval_EvalCode
    at ../Python/ceval.c line 514
  • #31 run_mod
  • #32 PyRun_StringFlags
  • #33 PyRun_SimpleStringFlags
  • #34 Py_Main
    at ../Modules/main.c line 521
  • #35 main
    at ../Modules/python.c line 23
The program is running.  Quit anyway (and kill it)? (y or n)
Comment 1 Gustavo Carneiro 2009-09-16 13:01:51 UTC
Sounds more like a brasero bug, not bindings bug.
Comment 2 Philippe Rouquier 2009-09-16 13:32:26 UTC
Thanks for the report. You have not initialized libbrasero-burn first. Have a look at the examples in gnome-python, you need to call "braseroburn.start ()" before using any of the functions or objects. Let me know how it works once you initialized libbraseroburn.
Now it's true that libbrasero-burn could handle that case more gracefully ... I'll fix that.
Comment 3 Emilio Pozuelo Monfort 2009-09-16 14:26:09 UTC
(In reply to comment #2)
> Thanks for the report. You have not initialized libbrasero-burn first. Have a
> look at the examples in gnome-python, you need to call "braseroburn.start ()"
> before using any of the functions or objects. Let me know how it works once you
> initialized libbraseroburn.

Indeed, that solves it:

emilio@saturno:~$ python -c 'import braseroburn; braseroburn.SessionCfg()'
Violación de segmento
emilio@saturno:~$ python -c 'import braseroburn; braseroburn.start(); braseroburn.SessionCfg()'
emilio@saturno:~$ 


> Now it's true that libbrasero-burn could handle that case more gracefully ...
> I'll fix that.

Thanks!
Comment 4 Philippe Rouquier 2009-09-24 12:33:16 UTC
I fixed the crash, now when brasero_burn_library_start () has not been called beforehand, we'll simply abort with an error message stating that the above function was not called.