Your message dated Fri, 27 May 2011 13:31:31 +0200
with message-id <6832866bd26da7a03b3431c9b3b37...@chewa.net>
and subject line Re: vlc sometimes uses 100% CPU when connecting to lua rc
interface using TCP
has caused the Debian Bug report #614307,
regarding vlc sometimes uses 100% CPU when connecting to lua rc interface using
TCP
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 this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
614307: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614307
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: vlc
Version: 1.1.3-1squeeze2
Severity: normal
Tags: upstream patch
Launching vlc with these options:
$ vlc -vvv -I rc --lua-config "rc={host='localhost:4212'}"
and connecting to the interface, then sending a command and then closing the
connection
without reading the response, makes vlc use 100%. I have tested this with this
simple C
program:
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <sys/types.h> /* See NOTES */
int main () {
struct sockaddr_in addr;
memset(&addr, '\0', sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(4212);
int fd = socket(AF_INET, SOCK_STREAM, 0);
int ret = connect(fd, (struct sockaddr *)&addr, sizeof(addr));
if (ret == 0) {
send(fd, "playlist\n", 8, 0);
close(fd);
}
}
I have found that the problem is in the host.lua file in the _accept_and_select
function.
When testing if there's a POLLIN event it just performs and == instead of a
bitwise AND (&) and
in the case the remote end closes the connection, the poll could return: POLLIN
| POLLERR | POLLHUP.
This caused that no read was performed and caused the infinite loop.
I've resolved this with the attached patch (apparently lua doesn't support
natively bitwise operations
so I had to do it a bit differently).
I hope this help.
Best regards,
Santi
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=es_ES.ISO-8859-1, LC_CTYPE=es_ES.ISO-8859-1 (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Versions of packages vlc depends on:
ii libaa1 1.4p5-38 ascii art library
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii libfreetype6 2.4.2-2.1 FreeType 2 font engine, shared lib
ii libfribidi0 0.19.2-1 Free Implementation of the Unicode
ii libgcc1 1:4.4.5-10 GCC support library
ii libgl1-mesa-glx [libgl1 7.7.1-4 A free implementation of the OpenG
ii libqtcore4 4:4.6.3-4 Qt 4 core module
ii libqtgui4 4:4.6.3-4 Qt 4 GUI module
ii libsdl-image1.2 1.2.10-2+b2 image loading library for Simple D
ii libsdl1.2debian 1.2.14-6.1 Simple DirectMedia Layer
ii libstdc++6 4.4.5-10 The GNU Standard C++ Library v3
ii libtar 1.2.11-6 C library for manipulating tar arc
ii libvlccore4 1.1.3-1squeeze2 base library for VLC and its modul
ii libx11-6 2:1.4.1-4 X11 client-side library
ii libx11-xcb1 2:1.4.1-4 Xlib/XCB interface library
ii libxcb-keysyms1 0.3.6-1 utility libraries for X C Binding
ii libxcb-randr0 1.7-2 X C Binding, randr extension
ii libxcb-shm0 1.7-2 X C Binding, shm extension
ii libxcb-xv0 1.7-2 X C Binding, xv extension
ii libxcb1 1.7-2 X C Binding
ii libxext6 2:1.2.0-2 X11 miscellaneous extension librar
ii ttf-freefont 20100919-1 Freefont Serif, Sans and Mono True
ii vlc-nox 1.1.3-1squeeze2 multimedia player and streamer (wi
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
Versions of packages vlc recommends:
ii vlc-plugin-notify 1.1.3-1squeeze2 LibNotify plugin for VLC
ii vlc-plugin-pulse 1.1.3-1squeeze2 PulseAudio plugin for VLC
Versions of packages vlc suggests:
pn mozilla-plugin-vlc <none> (no description available)
pn videolan-doc <none> (no description available)
Versions of packages vlc-nox depends on:
ii liba52-0.7.4 0.7.4-14 library for decoding ATSC A/52 str
ii libasound2 1.0.23-2.1 shared library for ALSA applicatio
ii libass4 0.9.9-1 library for SSA/ASS subtitles rend
ii libavahi-client3 0.6.28-3 Avahi client library
ii libavahi-common3 0.6.28-3 Avahi common library
ii libavc1394-0 0.5.3-1+b2 control IEEE 1394 audio/video devi
ii libavcodec52 4:0.5.2-6 ffmpeg codec library
ii libavformat52 4:0.5.2-6 ffmpeg file format library
ii libavutil49 4:0.5.2-6 ffmpeg utility library
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii libcaca0 0.99.beta17-1 colour ASCII art library
ii libcddb2 1.3.2-2 library to access CDDB data - runt
ii libcdio10 0.81-4 library to read and control CD-ROM
ii libdbus-1-3 1.4.1-2 simple interprocess messaging syst
ii libdc1394-22 2.1.2-3 high level programming interface f
ii libdca0 0.0.5-3 decoding library for DTS Coherent
ii libdirac-encoder0 1.0.2-3 open and royalty free high quality
ii libdvbpsi6 0.1.7-1 library for MPEG TS and DVB PSI ta
ii libdvdnav4 4.1.3-7 DVD navigation library
ii libdvdread4 4.1.3-10 library for reading DVDs
ii libebml0 0.7.7-3.1 access library for the EBML format
ii libfaad2 2.7-6 freeware Advanced Audio Decoder -
ii libflac8 1.2.1-3 Free Lossless Audio Codec - runtim
ii libfontconfig1 2.8.0-2.1 generic font configuration library
ii libfreetype6 2.4.2-2.1 FreeType 2 font engine, shared lib
ii libfribidi0 0.19.2-1 Free Implementation of the Unicode
ii libgcc1 1:4.4.5-10 GCC support library
ii libgcrypt11 1.4.5-2 LGPL Crypto library - runtime libr
ii libgnutls26 2.10.4-2 the GNU TLS library - runtime libr
ii libgpg-error0 1.10-0.3 library for common error values an
ii libkate1 0.3.8-1 Kate is a codec for karaoke and te
ii liblircclient0 0.8.3-5 infra-red remote control support -
ii liblua5.1-0 5.1.4-5 Simple, extensible, embeddable pro
ii libmad0 0.15.1b-5 MPEG audio decoder library
ii libmatroska0 0.8.1-1.1 extensible open standard audio/vid
ii libmodplug1 1:0.8.8.1-2 shared libraries for mod music bas
ii libmpcdec6 2:0.1~r459-1 MusePack decoder - library
ii libmpeg2-4 0.4.1-3 MPEG1 and MPEG2 video decoder libr
ii libmtp8 1.0.3-1 Media Transfer Protocol (MTP) libr
ii libncursesw5 5.7+20100313-5 shared libraries for terminal hand
ii libogg0 1.2.0~dfsg-1 Ogg bitstream library
ii libpng12-0 1.2.44-1 PNG library - runtime
ii libpostproc51 4:0.5.2-6 ffmpeg video postprocessing librar
ii libproxy0 0.3.1-2 automatic proxy configuration mana
ii libraw1394-11 2.0.5-2 library for direct access to IEEE
ii libschroedinger-1.0-0 1.0.9-2 library for encoding/decoding of D
ii libshout3 2.2.2-5+b1 MP3/Ogg Vorbis broadcast streaming
ii libsmbclient 2:3.5.6~dfsg-5 shared library for communication w
ii libspeex1 1.2~rc1-1 The Speex codec runtime library
ii libstdc++6 4.4.5-10 The GNU Standard C++ Library v3
ii libswscale0 4:0.5.2-6 ffmpeg video scaling library
ii libtag1c2a 1.6.3-1 TagLib Audio Meta-Data Library
ii libtheora0 1.1.1+dfsg.1-3 The Theora Video Compression Codec
ii libtwolame0 0.3.12-1 MPEG Audio Layer 2 encoding librar
ii libudev0 164-3 libudev shared library
ii libupnp3 1:1.6.6-5 Portable SDK for UPnP Devices, ver
ii libv4l-0 0.8.2-1 Collection of video4linux support
ii libvcdinfo0 0.7.23-4+b2 library to extract information fro
ii libvlc5 1.1.3-1squeeze2 multimedia player and streamer lib
ii libvlccore4 1.1.3-1squeeze2 base library for VLC and its modul
ii libvorbis0a 1.3.1-1 The Vorbis General Audio Compressi
ii libvorbisenc2 1.3.1-1 The Vorbis General Audio Compressi
ii libxml2 2.7.8.dfsg-2 GNOME XML library
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
Versions of packages libvlc5 depends on:
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii libvlccore4 1.1.3-1squeeze2 base library for VLC and its modul
Versions of packages libvlccore4 depends on:
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii libdbus-1-3 1.4.1-2 simple interprocess messaging syst
ii vlc-data 1.1.3-1squeeze2 Common data for VLC
Versions of packages vlc is related to:
pn libavutil50 <none> (no description available)
pn libavutil51 <none> (no description available)
-- no debconf information
--- ./share/lua/intf/modules/host.lua.old 2011-02-20 22:58:20.000000000
+0100
+++ ./share/lua/intf/modules/host.lua 2011-02-20 22:59:10.000000000 +0100
@@ -251,7 +251,8 @@
if pollfds[client:fd()] == vlc.net.POLLOUT then
table.insert(wclients,client)
end
- if pollfds[client:fd()] == vlc.net.POLLIN then
+ -- Test if the POLLIN flag is set
+ if pollfds[client:fd()] % (2*vlc.net.POLLIN) >= vlc.net.POLLIN
then
table.insert(rclients,client)
end
end
--- End Message ---
--- Begin Message ---
tags 614307 + fixed-upstream confirmed
found 614307 1.1.7-1
fixed 614307 1.1.9-1
thanks
This is fixed.
--
RĂ©mi Denis-Courmont
http://www.remlab.net/
--- End Message ---
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers