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 702605 - project: move enable update before the formatter is removed.
project: move enable update before the formatter is removed.
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other Linux
: Normal major
: 1.2.0
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-06-18 21:30 UTC by Alban Browaeys
Modified: 2013-09-24 16:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
project: move enable update before the formatter is removed. (1.03 KB, patch)
2013-06-18 21:30 UTC, Alban Browaeys
none Details | Review
timeline: fix segfaults (1.39 KB, patch)
2013-06-20 13:54 UTC, Thibault Saunier
committed Details | Review

Description Alban Browaeys 2013-06-18 21:30:59 UTC
Created attachment 247216 [details] [review]
project: move enable update before the formatter is removed.

Fixes segfault , formatter timeline is grabbed and passed
to ges_timeline_enable_update but has been reset to garabage at
formatter removal.

Backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff4219166 in ges_timeline_enable_update (timeline=0x-5555555555555556, enabled=1)
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-timeline.c:2745
2745	  for (tmp = timeline->tracks; tmp; tmp = tmp->next) {
(gdb) bt
  • #0 ges_timeline_enable_update
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-timeline.c line 2745
  • #1 ges_project_set_loaded
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-project.c line 520
  • #2 _loading_done
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-base-xml-formatter.c line 386
  • #3 new_asset_cb
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-base-xml-formatter.c line 604
  • #4 g_simple_async_result_complete
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/gio/gsimpleasyncresult.c line 777
  • #5 complete_in_idle_cb
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/gio/gsimpleasyncresult.c line 789
  • #6 g_idle_dispatch
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/glib/gmain.c line 5235
  • #7 g_main_dispatch
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/glib/gmain.c line 3058
  • #8 g_main_context_dispatch
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/glib/gmain.c line 3634
  • #9 g_main_context_iterate
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/glib/gmain.c line 3705
  • #10 g_main_loop_run
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/glib/glib/gmain.c line 3899
  • #11 ffi_call_unix64
    at ../src/x86/unix64.S line 76
  • #12 ffi_call
    at ../src/x86/ffi64.c line 522
  • #13 g_callable_info_invoke
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gobject-introspection/girepository/gicallableinfo.c line 680
  • #14 g_function_info_invoke
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gobject-introspection/girepository/gifunctioninfo.c line 274
  • #15 _invoke_callable
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/pygobject-python2/gi/pygi-invoke.c line 64
  • #16 pygi_callable_info_invoke
    at remote 0x28089a8>,), kwargs={}, cache=0x2fceea0, function_ptr=0x0, user_data=0x0) at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/pygobject-python2/gi/pygi-invoke.c line 662
  • #17 _wrap_g_callable_info_invoke
    at remote 0x28089a8>,), kwargs={}) at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/pygobject-python2/gi/pygi-invoke.c line 685
  • #18 ext_do_call
  • #19 PyEval_EvalFrameEx
    at remote 0x28089a8>,), kwargs={}), throwflag=throwflag@entry=0) at ../Python/ceval.c line 2705
  • #20 PyEval_EvalCodeEx
  • #21 fast_function
    at ../Python/ceval.c line 4117
  • #22 call_function
    at ../Python/ceval.c line 4042
  • #23 PyEval_EvalFrameEx
    at remote 0x28089a8>), throwflag=throwflag@entry=0) at ../Python/ceval.c line 2666
  • #24 fast_function
    at ../Python/ceval.c line 4107
  • #25 call_function
    at ../Python/ceval.c line 4042
  • #26 PyEval_EvalFrameEx
  • #27 fast_function
    at ../Python/ceval.c line 4107
  • #28 call_function
    at ../Python/ceval.c line 4042
  • #29 PyEval_EvalFrameEx
  • #30 fast_function
    at ../Python/ceval.c line 4107
  • #31 call_function
    at ../Python/ceval.c line 4042
  • #32 PyEval_EvalFrameEx
  • #33 fast_function
    at ../Python/ceval.c line 4107
  • #34 call_function
    at ../Python/ceval.c line 4042
  • #35 PyEval_EvalFrameEx
  • #36 PyEval_EvalCodeEx
    at ../Python/ceval.c line 3253
  • #37 PyEval_EvalCode
  • #38 run_mod.42564
  • #39 PyRun_FileExFlags
  • #40 PyRun_SimpleFileExFlags
    at ../Python/pythonrun.c line 943
  • #41 PyRun_AnyFileExFlags
    at ../Python/pythonrun.c line 747
  • #42 Py_Main
    at ../Modules/main.c line 640
  • #43 __libc_start_main
    at libc-start.c line 260
  • #44 _start
  • #1 ges_project_set_loaded
    at /home/prahal/Projects/Devel/Gnome/jhbuild/gnome/gst-editing-services/ges/ges-project.c line 520
515	  GST_INFO_OBJECT (project, "Emit project loaded");
516	  g_signal_emit (project, _signals[LOADED_SIGNAL], 0, formatter->timeline);
517	
518	  /* We are now done with that formatter */
519	  ges_project_remove_formatter (project, formatter);
520	  ges_timeline_enable_update (formatter->timeline, TRUE);
521	  return TRUE;
522	}
523	
524	void
(gdb) p formatter
$2 = 0x29a34f0
(gdb) p *formatter
$3 = {parent = {g_type_instance = {g_class = 0xaaaaaaaaaaaaaaaa}, ref_count = 2863311530, qdata = 0xaaaaaaaaaaaaaaaa}, priv = 0xaaaaaaaaaaaaaaaa, 
  project = 0x-5555555555555556, timeline = 0x-5555555555555556, _ges_reserved = {0xaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaa, 
    0xaaaaaaaaaaaaaaaa}}
(gdb) b 519
Comment 1 Lubosz Sarnecki 2013-06-20 13:01:51 UTC
I can confirm this bug.

This patch fixes it for me:
https://github.com/lubosz/gst-editing-services/commit/a82843a21c55e8f5f2af77a46a9224956abbad94
Comment 2 Thibault Saunier 2013-06-20 13:54:04 UTC
The following fix has been pushed:
30f0924 timeline: fix segfaults
Comment 3 Thibault Saunier 2013-06-20 13:54:10 UTC
Created attachment 247327 [details] [review]
timeline: fix segfaults

don't call the timeline update, when the reference is invalid