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 721111 - Segfault while re-importing a clip that was removed
Segfault while re-importing a clip that was 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-12-27 03:24 UTC by Jean-François Fortin Tam
Modified: 2014-01-30 21:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Reference newly added asset. (840 bytes, patch)
2014-01-27 12:37 UTC, Mathieu Duponchelle
none Details | Review
Correct fix after checking with thib (915 bytes, patch)
2014-01-27 12:50 UTC, Mathieu Duponchelle
none Details | Review
ges-asset: Do not forget to give a ref to the registry (5.00 KB, patch)
2014-01-27 14:33 UTC, Thibault Saunier
none Details | Review
ges-asset: Do not forget to give a ref to the registry (5.35 KB, patch)
2014-01-27 14:37 UTC, Thibault Saunier
none Details | Review

Description Jean-François Fortin Tam 2013-12-27 03:24:31 UTC
1. Import "pitivi/tests/samples/tears of steel.webm" into Pitivi
2. Remove it from the media library
3. Import it again

In my case I get this:

pitivi/project.py:902: Warning: invalid unclassed pointer in cast to 'GObject'
  self.create_asset(quote_uri(uri), GES.UriClip)

(pitivi:27800): GLib-GIO-CRITICAL **: g_simple_async_result_new:
      assertion '!source_object || G_IS_OBJECT (source_object)' failed

project.py:902: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
    self.create_asset(quote_uri(uri), GES.UriClip)

(pitivi:27800): GLib-GIO-CRITICAL **: g_simple_async_result_complete_in_idle:
      assertion 'G_IS_SIMPLE_ASYNC_RESULT (simple)' failed

project.py:1066: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
   nb_remaining_file_to_import = len([asset for asset in 
                                    self.get_loading_assets() if

project.py:1066: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
   nb_remaining_file_to_import = len([asset for asset in 
                                    self.get_loading_assets() if


...followed by a huge, nasty segfault:

(gdb) bt full
  • #0 pygobject_new_full
    at pygobject.c line 1006
  • #1 _pygi_marshal_to_py_glist
    at pygi-marshal-to-py.c line 482
  • #2 _invoke_marshal_out_args
    at pygi-invoke.c line 543
  • #3 pygi_callable_info_invoke
  • #4 _wrap_g_callable_info_invoke
  • #5 _callable_info_call
  • #6 PyObject_Call
  • #7 do_call
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4316
  • #8 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4121
  • #9 PyEval_EvalFrameEx
  • #10 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #11 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #12 PyEval_EvalFrameEx
  • #13 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #14 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #15 PyEval_EvalFrameEx
  • #16 PyEval_EvalCodeEx
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 3330
  • #17 function_call
  • #18 PyObject_Call
  • #19 instancemethod_call
  • #20 PyObject_Call
  • #21 PyEval_CallObjectWithKeywords
  • #22 PyObject_CallObject
  • #23 pygi_signal_closure_marshal
    at pygi-signal-closure.c line 149
  • #24 g_closure_invoke
    at gclosure.c line 777
  • #25 signal_emit_unlocked_R
    at gsignal.c line 3586
  • #26 g_signal_emit_valist
    at gsignal.c line 3330
  • #27 g_signal_emit
    at gsignal.c line 3386
  • #28 _g_closure_invoke_va
    at gclosure.c line 840
  • #29 g_signal_emit_valist
    at gsignal.c line 3238
  • #30 g_signal_emit
    at gsignal.c line 3386
  • #31 button_activate_timeout
    at gtkbutton.c line 2127
  • #32 gdk_threads_dispatch
    at gdk.c line 804
  • #33 g_timeout_dispatch
    at gmain.c line 4451
  • #34 g_main_dispatch
    at gmain.c line 3066
  • #35 g_main_context_dispatch
    at gmain.c line 3642
  • #36 g_main_context_iterate
    at gmain.c line 3713
  • #37 g_main_loop_run
    at gmain.c line 3907
  • #38 ffi_call_unix64
    from /lib64/libffi.so.6
  • #39 ffi_call
    from /lib64/libffi.so.6
  • #40 g_callable_info_invoke
    at girepository/gicallableinfo.c line 680
  • #41 g_function_info_invoke
    at girepository/gifunctioninfo.c line 274
  • #42 _invoke_callable
    at pygi-invoke.c line 64
  • #43 pygi_callable_info_invoke
    at remote 0x1aa1bb0>,), kwargs=<optimized out>, cache=<optimized out>, function_ptr=function_ptr@entry=0x0, user_data=user_data@entry=0x0) at pygi-invoke.c line 652
  • #44 _wrap_g_callable_info_invoke
    at remote 0x1aa1bb0>,), kwargs=kwargs@entry=0x0) at pygi-invoke.c line 675
  • #45 _callable_info_call
  • #46 PyObject_Call
  • #47 do_call
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4316
  • #48 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4121
  • #49 PyEval_EvalFrameEx
    at remote 0x1aa1bb0>), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.5/Python/ceval.c line 2740
  • #50 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #51 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #52 PyEval_EvalFrameEx
  • #53 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #54 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #55 PyEval_EvalFrameEx
  • #56 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #57 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #58 PyEval_EvalFrameEx
  • #59 fast_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4184
  • #60 call_function
    at /usr/src/debug/Python-2.7.5/Python/ceval.c line 4119
  • #61 PyEval_EvalFrameEx
  • #62 PyEval_EvalCodeEx
  • #63 PyEval_EvalCode
  • #64 run_mod
  • #65 PyRun_FileExFlags
  • #66 PyRun_SimpleFileExFlags
    at /usr/src/debug/Python-2.7.5/Python/pythonrun.c line 951
  • #67 PyRun_AnyFileExFlags
    at /usr/src/debug/Python-2.7.5/Python/pythonrun.c line 755
  • #68 Py_Main
    at /usr/src/debug/Python-2.7.5/Modules/main.c line 640
  • #69 __libc_start_main
    at libc-start.c line 285
  • #70 _start

Comment 1 Jean-François Fortin Tam 2013-12-27 03:30:36 UTC
And interestingly enough, this happens on my desktop computer (Fedora 20) but not my laptop (F19).
Comment 2 Alex Băluț 2013-12-28 09:48:55 UTC
Unittest segfaulting here: https://github.com/aleb/pitivi/commit/9da98a1c1d39a122495382b34fa95b872db18a8f
Comment 3 Mathieu Duponchelle 2014-01-27 12:37:56 UTC
Created attachment 267298 [details] [review]
Reference newly added asset.
Comment 4 Mathieu Duponchelle 2014-01-27 12:38:33 UTC
The attached patch fixes it here, need thibault to review it.
Comment 5 Mathieu Duponchelle 2014-01-27 12:50:24 UTC
Created attachment 267299 [details] [review]
Correct fix after checking with thib
Comment 6 Thibault Saunier 2014-01-27 14:33:35 UTC
Created attachment 267313 [details] [review]
ges-asset: Do not forget to give a ref to the registry

+ Add test in the testsuite
+ Fix broken tests
Comment 7 Thibault Saunier 2014-01-27 14:37:39 UTC
Created attachment 267315 [details] [review]
ges-asset: Do not forget to give a ref to the registry

+ Add test in the testsuite
+ Fix broken tests
Comment 8 Mathieu Duponchelle 2014-01-30 21:39:37 UTC
Pushed.
Comment 9 Thibault Saunier 2014-01-30 21:48:42 UTC
For the reference:

commit 94dbf20400f7aeff6e43c947cf413abf0a8ce61f
Author: Thibault Saunier <thibault.saunier@collabora.com>
Date:   Mon Jan 27 15:30:40 2014 +0100

    ges-asset: Do not forget to give a ref to the registry
    
    + Add test in the testsuite
    + Fix broken tests
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721111