[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#341133: marked as done (beep-media-player: bug in NPTL implementation causing segfault when using crossfade plugin)



Your message dated Sun, 05 Aug 2007 14:19:43 +0200
with message-id <87tzreqilc.fsf@slavuj.carpriv.carnet.hr>
and subject line Removed
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: beep-media-player
Severity: wishlist
Tags: patch

Dear beep-media-player maintainers,

forwarding an excerpt from the README of the upcoming xmms-crossfade
release:

|   * There is a serious problem on some systems: Users who have the
|     NPTL (Native Posix Thread Libary) version of glibc instaleld on
|     their systems will experience a lockup or SEGFAULT when exitting
|     XMMS while a song is being played using XMMS-crossfade. This is
|     because of a bug in the NPTL implementation:
| 
|     http://sources.redhat.com/bugzilla/show_bug.cgi?id=654
| 
|     Fortunatelly, there is a workaround, which (unfortunatelly) requires
|     a patch to XMMS itself. As of version 0.3.9 of XMMS-crossfade, these
|     patches (for BMP and Audacious as well) are included in the
|     distribution. It is now up to the developers and/or maintainers of
|     the players to incorporate the (fully transparent) patch into their
|     programs.

Further background can be found at
<http://groups.google.de/group/comp.programming.threads/browse_thread/thread/9e4e6cd0e95f9a1/17b4c7a4f35bd1c5>.

For reference, the bug that raised this issue was initially reported as
<http://bugs.debian.org/240186> (X-Debbugs-CC'd).

Thus now forwarding the attached patch by Peter Eisenlohr
<peter@eisenlohr.org> (xmms-crossfade upstream) for bmp, generated
against bmp-0.9.7.1.
Unfortunately I haven't tested it yet as currently bmp is
uninstallable due to the libstdc++ allocator change transition.

The upcoming crossfade package will have support for bmp, so please
consider including the patch while this bug is not yet fixed in glibc.
However, as this is not a bug in xmms per se, perhaps you'll prefer to
tag this wontfix and we better wait for glibc...

Cheers,
Flo
diff -ur bmp-0.9.7.1/beep/mainwin.c bmp-0.9.7.1.patched/beep/mainwin.c
--- bmp-0.9.7.1/beep/mainwin.c	2005-05-09 10:45:39.000000000 +0200
+++ bmp-0.9.7.1.patched/beep/mainwin.c	2005-11-25 00:03:59.000000000 +0100
@@ -655,9 +655,11 @@
     mainwin_set_shade(!cfg.player_shaded);
 }
 
+gboolean is_quitting = FALSE;
 void
 mainwin_quit_cb(void)
 {
+    is_quitting = TRUE;
     gtk_widget_hide(equalizerwin);
     gtk_widget_hide(playlistwin);
     gtk_widget_hide(mainwin);
@@ -1318,7 +1320,7 @@
 change_song(guint pos)
 {
     if (bmp_playback_get_playing())
-        bmp_playback_stop();
+        bmp_playback_stop_for_restart();
 
     playlist_set_position(pos);
     bmp_playback_initiate();
diff -ur bmp-0.9.7.1/beep/playback.c bmp-0.9.7.1.patched/beep/playback.c
--- bmp-0.9.7.1/beep/playback.c	2005-01-26 06:56:15.000000000 +0100
+++ bmp-0.9.7.1.patched/beep/playback.c	2005-11-25 00:03:59.000000000 +0100
@@ -89,7 +89,7 @@
         return;
 
     if (bmp_playback_get_playing())
-        bmp_playback_stop();
+        bmp_playback_stop_for_restart();
 
     vis_clear_data(mainwin_vis);
     vis_clear_data(playlistwin_vis);
@@ -135,6 +135,15 @@
     get_current_input_plugin()->pause(ip_data.paused);
 }
 
+gboolean input_stopped_for_restart = FALSE;
+void
+bmp_playback_stop_for_restart(void)
+{
+	input_stopped_for_restart = TRUE;
+	bmp_playback_stop();
+	input_stopped_for_restart = FALSE;
+}
+
 void
 bmp_playback_stop(void)
 {
diff -ur bmp-0.9.7.1/beep/playback.h bmp-0.9.7.1.patched/beep/playback.h
--- bmp-0.9.7.1/beep/playback.h	2004-12-04 10:04:26.000000000 +0100
+++ bmp-0.9.7.1.patched/beep/playback.h	2005-11-25 00:03:59.000000000 +0100
@@ -26,6 +26,7 @@
 void bmp_playback_initiate(void);
 void bmp_playback_pause(void);
 void bmp_playback_stop(void);
+void bmp_playback_stop_for_restart(void);
 gboolean bmp_playback_play_file(const gchar * filename);
 gboolean bmp_playback_get_playing(void);
 gboolean bmp_playback_get_paused(void);
diff -ur bmp-0.9.7.1/beep/playlist.c bmp-0.9.7.1.patched/beep/playlist.c
--- bmp-0.9.7.1/beep/playlist.c	2005-08-11 09:25:51.000000000 +0200
+++ bmp-0.9.7.1.patched/beep/playlist.c	2005-11-25 00:03:59.000000000 +0100
@@ -817,7 +817,7 @@
     if (bmp_playback_get_playing()) {
         /* We need to stop before changing playlist_position */
         PLAYLIST_UNLOCK();
-        bmp_playback_stop();
+        bmp_playback_stop_for_restart();
         PLAYLIST_LOCK();
         restart_playing = TRUE;
     }
@@ -868,7 +868,7 @@
     if (bmp_playback_get_playing()) {
         /* We need to stop before changing playlist_position */
         PLAYLIST_UNLOCK();
-        bmp_playback_stop();
+        bmp_playback_stop_for_restart();
         PLAYLIST_LOCK();
         restart_playing = TRUE;
     }
@@ -1018,7 +1018,7 @@
     if (bmp_playback_get_playing()) {
         /* We need to stop before changing playlist_position */
         PLAYLIST_UNLOCK();
-        bmp_playback_stop();
+        bmp_playback_stop_for_restart();
         PLAYLIST_LOCK();
         restart_playing = TRUE;
     }
@@ -1047,7 +1047,10 @@
 {
     GList *plist_pos_list;
 
-    bmp_playback_stop();
+    if (cfg.repeat)
+        bmp_playback_stop_for_restart();
+    else
+        bmp_playback_stop();
 
     PLAYLIST_LOCK();
     plist_pos_list = find_playlist_position_list();

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
beep-media-player has been removed from Debian.  For details, please
see <http://bugs.debian.org/422681>.

--- End Message ---

Reply to: