← Back to team overview

desktop-packages team mailing list archive

[Bug 1479715] Re: Crash due to fd leak when playing sounds in pidgin

 

Created bug 1529445, which is about a different fd leak in gstreamer
1.6.0 itself that can result in the exact same crash in pidgin as this
bug.

It's not as straightforward as this bug in that it doesn't leak
constantly for all users, but requires, for example, not having a sound
card or some other error to play sounds (that's two different reports
from users who got crashes).

Mentioning this here mostly because until today I thought this was yet
another bug in pidgin that wasn't fixed, but no, it's a problem in
gstreamer. Or rather, ubuntu in general, which doesn't do SRUs of
bugfix-only releases until someone decides to point out that it's
critical enough. *sigh*. Don't mind me, it's like 4am and I feel like I
wasted most of my day with this dumb issue.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pidgin in Ubuntu.
https://bugs.launchpad.net/bugs/1479715

Title:
  Crash due to fd leak when playing sounds in pidgin

Status in pidgin package in Ubuntu:
  Confirmed

Bug description:
  The Ubuntu Error Tracker has been receiving reports about a problem
  regarding pidgin.  This problem was most recently seen with version
  1:2.10.11-0ubuntu4, the problem page at
  https://errors.ubuntu.com/problem/7470d12c4e88f72501f718f2e8fd6469b2cb650f
  contains more details.

  Upstream bug: https://developer.pidgin.im/ticket/16752

  Partial backtrace:

  #0  0x00007f0e72819b24 in g_source_attach (source=source@entry=0x0, context=0x0) at /build/glib2.0-ajuDY6/glib2.0-2.46.1/./glib/gmain.c:1163
  #1  0x00007f0e74b848b8 in gst_bus_add_watch_full_unlocked (bus=<optimized out>, priority=<optimized out>, func=0x56004c7ceeb0 <bus_call>, user_data=0x56004e00aa40, notify=0x0) at gstbus.c:885
  #2  0x00007f0e74b849e0 in gst_bus_add_watch_full (bus=0x7f0e14009260 [GstBus], priority=0, func=0x56004c7ceeb0 <bus_call>, user_data=0x56004e00aa40, notify=0x0) at gstbus.c:936
  #3  0x000056004c7cfb3a in pidgin_sound_play_file (filename=<optimized out>)
      at /build/pidgin-hiYwOJ/pidgin-2.10.11/./pidgin/gtksound.c:543
  #4  0x000056004c7cf927 in pidgin_sound_play_event (event=PURPLE_SOUND_SEND)
      at /build/pidgin-hiYwOJ/pidgin-2.10.11/./pidgin/gtksound.c:616

  
  [Impact]

  * Each sound played will leak a file descriptor.

  * Crash (null pointer dereference) after playing sounds roughly 1000
  times (depending on fd limit)

  * Depending on the amount of activity, this can mean every few hours
  for some users (it's once for each received or sent message)

  
  [Test Case]

  1. Set the file descriptor limit low enough to be able to login, plus a few extra. "ulimit -Sn 20" works for me
  2. Start pidgin
  3. Tools menu -> preferences -> sounds tab
  4. Click "preview" 10 times or so
  5. Acquire crash

  [Regression Potential]

  * The fix consists in adding two lines, returning FALSE when a sound
  finishes playing or when an error happens, which tells gstreamer to
  free those file descriptors, so it's highly unlikely that this could
  make things worse.

  * A user who reported this bug yesterday was given a .deb file with
  the fix, who also distributed that fixed .deb to other 50 users who
  also had the issue in ubuntu wily. Everyone is happy now.

  [Other Info]

  * This fix will be included in pidgin 2.10.12, set to release very
  soon.

  * The bug originally happened because of the backported gstreamer 1.0
  patch that was also introduced in post-2.10.11 development versions.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/1479715/+subscriptions


References