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 665171 - audio-sink: sigsegv while starting a call
audio-sink: sigsegv while starting a call
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: VoIP
unspecified
Other Linux
: Normal major
: ---
Assigned To: empathy-maint
empathy-maint
Depends on:
Blocks:
 
 
Reported: 2011-11-30 03:44 UTC by Raluca-Elena Podiuc
Modified: 2011-11-30 15:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] audio-sink: fix segfault in g_object_set buffer-time + latency-time (1.46 KB, patch)
2011-11-30 03:48 UTC, Raluca-Elena Podiuc
none Details | Review

Description Raluca-Elena Podiuc 2011-11-30 03:44:35 UTC
When I try to initiate a video call from Empathy to Gmail on the same computer I get a sigsegv.

Program received signal SIGSEGV, Segmentation fault.

Thread 2480929648 (LWP 22342)

  • #0 strchr
    at ../sysdeps/i386/strchr.S line 127
  • #1 g_param_spec_pool_lookup
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #2 g_object_set_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #3 g_object_set
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #4 create_sink
    at empathy-audio-sink.c line 225
  • #5 empathy_audio_sink_request_new_pad
    at empathy-audio-sink.c line 322



I bisected a segfault to this commit:
   commit 24882e924af2c0d8576970440d92ac5b4eb25bc8
   Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
   Date:   Mon Nov 21 23:27:08 2011 +0530

       audio-src,audio-sink: Use lower latency values on pulsesrc/pulsesink
       https://bugzilla.gnome.org/show_bug.cgi?id=663124

Which added:

+  /* Set latency (buffering on the PulseAudio side) of 40ms and transfer data
+   * in 10ms chunks */
+  g_object_set (sink, "buffer-time", 40000, "latency-time", 10000, NULL);
Comment 1 Raluca-Elena Podiuc 2011-11-30 03:48:01 UTC
Created attachment 202420 [details] [review]
[PATCH] audio-sink: fix segfault in g_object_set buffer-time +  latency-time

Splitting 
  g_object_set (sink, "buffer-time", 40000, "latency-time", 10000, NULL);

into
  g_object_set (sink, "buffer-time", 40000, NULL);
  g_object_set (sink, "latency-time", 10000, NULL);

makes the call work; no more segfaults.

I have no idea if the problem is from gobject, gstreamer, the sink implementation or some weird interaction of all of these on my system.
Comment 2 Guillaume Desmottes 2011-11-30 10:09:32 UTC
Hum I suppose you're using a 32 bits arch right?

Could you please try this change instead:

  g_object_set (sink,
    "buffer-time", (gint64) 40000,
    "latency-time", (gint64) 10000,
     NULL);
Comment 3 Raluca-Elena Podiuc 2011-11-30 14:40:52 UTC
Yep:
- 32-bits
- your patch works :)
Comment 4 Guillaume Desmottes 2011-11-30 15:03:14 UTC
Fixed in master; thanks!


commit 2d4ca2150069139ab347bddce5a5c9264c1be3b1
Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date:   Wed Nov 30 15:59:36 2011 +0100

    Properly cast buffer and latency times when setting properties
    
    This fix a crash on 32 bits system as gcc can't figure out the right size of
    the value.
    
    Thanks to Raluca-Elena Podiuc for her help in debugging this.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=665171


This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.