Linux XBMC-Addon-XVDR causes crash of XBMC-Eden-PVR
#1
Hi,

today I tried an update to XBMC 11.6 (xbmc-11.0_p76_pre.tar.gz) and when I try to play some kind of TV or movie, XBMC crashes immediately.

System: Gentoo
Kernel: 3.4.4
Videosystem: GT218 (ION2) with Nvidia-Drivers 302.17 and xorg-server 1.12.2
Backend: VDR
Error Message in XBMC-Crashlog: PVRClient - GetTimers - addon 'VDR-XVDR Server:127.0.0.1' returned an error: not implemented

Vdr with xineliboutput works like a charm. And when the X-Server starts I get an error:
Quote:The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
> Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
*** glibc detected *** /usr/lib64/xbmc/xbmc.bin: malloc(): memory corruption: 0x00007f8944002130 ***
Reply
#2
Ok, downgraded to:
- vdr-1.7.27
- nvidia-drivers- 295.59
- nvidia-settings-295.40

Didn't help. To revert to xbmc-11.0_p70 I would need to downgrade libpng-1.5 to libpng-1.4 too which affects a lot of system packages.

Update:
https://bugs.archlinux.org/task/30379 seems at least regarding the segfault slightly similar to my problem. Downgrading nvidia-drivers didn't give me any success. And the "Extra Thumbnail" setting I didn't find, but nevertheless I have my doubts, that this setting has to do something with the crash.
Reply
#3
Ok, some more information. The crash gives me some messages in the console:
Code:
X.Org X Server 1.12.2
Release Date: 2012-05-29
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.4.4-gentoo x86_64 Gentoo
Current Operating System: Linux htpc 3.4.4-gentoo #1 SMP Wed Jun 27 23:50:44 CEST 2012 x86_64
Kernel command line: BOOT_IMAGE=/boot/bzImage-344 root=/dev/sda2 quiet ro CONSOLE=/dev/tty1 acpi_enforce_resources=lax
Build Date: 02 July 2012  10:50:26PM

Current version of pixman: 0.26.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue Jul  3 23:45:58 2012
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
>                   Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
*** glibc detected *** /usr/lib64/xbmc/xbmc.bin: double free or corruption (out): 0x00007fca50038c10 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3503a79df6]
/usr/lib64/xbmc/xbmc.bin(_ZN12CGUIListItemD2Ev+0x155)[0x8ae6a5]
/usr/lib64/xbmc/xbmc.bin(_ZN9CFileItemD0Ev+0x9)[0xe760e9]
/usr/lib64/xbmc/xbmc.bin(_ZN5boost6detail12shared_countD1Ev+0x41)[0x68de01]
/usr/lib64/xbmc/xbmc.bin(_ZNSt8_Rb_treeI7CStdStrIcESt4pairIKS1_N5boost10shared_ptrI9CFileItemEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E+0x34)[0xe88e14]
/usr/lib64/xbmc/xbmc.bin(_ZNSt8_Rb_treeI7CStdStrIcESt4pairIKS1_N5boost10shared_ptrI9CFileItemEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E+0x27)[0xe88e07]
/usr/lib64/xbmc/xbmc.bin(_ZNSt8_Rb_treeI7CStdStrIcESt4pairIKS1_N5boost10shared_ptrI9CFileItemEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E+0x27)[0xe88e07]
/usr/lib64/xbmc/xbmc.bin(_ZN13CFileItemList10ClearItemsEv+0xed)[0xe7d17d]
/usr/lib64/xbmc/xbmc.bin(_ZN13CFileItemList5ClearEv+0x32)[0xe7d222]
/usr/lib64/xbmc/xbmc.bin(_ZN13CFileItemListD1Ev+0x32)[0xe7d4b2]
/usr/lib64/xbmc/xbmc.bin(_ZN13CFileItemListD0Ev+0x9)[0xe7d629]
/usr/lib64/xbmc/xbmc.bin(_ZN5XFILE15CDirectoryCache4CDirD0Ev+0x9)[0xb3a699]
/usr/lib64/xbmc/xbmc.bin(_ZN5XFILE15CDirectoryCache6DeleteESt17_Rb_tree_iteratorISt4pairIK7CStdStrIcEPNS0_4CDirEEE+0x24)[0xb3b2d4]
/usr/lib64/xbmc/xbmc.bin(_ZN5XFILE15CDirectoryCache14ClearDirectoryERK7CStdStrIcE+0xf3)[0xb3b9f3]
/usr/lib64/xbmc/xbmc.bin(_ZN5XFILE10CDirectory12GetDirectoryERK7CStdStrIcER13CFileItemListS2_bbNS_14DIR_CACHE_TYPEEbbb+0x959)[0xb3d3d9]
/usr/lib64/xbmc/xbmc.bin(_ZN5CUtil24ScanForExternalSubtitlesERK7CStdStrIcERSt6vectorIS1_SaIS1_EE+0x8e3)[0xee4153]
/usr/lib64/xbmc/xbmc.bin(_ZN10CDVDPlayer15OpenInputStreamEv+0x4c7)[0x92a3f7]
/usr/lib64/xbmc/xbmc.bin(_ZN10CDVDPlayer7ProcessEv+0x17)[0x92ab87]
/usr/lib64/xbmc/xbmc.bin(_ZN7CThread12staticThreadEPv+0x91)[0xe1b5e1]
...
big list
...
7fca6d7ee000-7fca6d9ee000 rwxs 115d36000 00:05 189                       /dev/nvidia0
7fca6d9ee000-7fca6daee000 rwxs 12126e000 00:05 189                       /dev/nvidia0
7fca6daee000-7fca6daef000 rwxs fdc08000 00:05 189                        /dev/nvidia0
7fca6daef000-7fca6db2f000 rwxs 115d63000 00:05 189                       /dev/nvidia0
7fca6db2f000-7fca6db4f000 rwxs 127553000 00:05 189                       /dev/nvidia0
7fca6db4f000-7fca6db8f000 rwxs 116af2000 00:05 189                       /dev/nvidia0
7fca6db9e000-7fca6db9f000 ---p 00000000 00:00 0
7fca6db9f000-7fca6dbaf000 rwxp 00000000 00:00 0
7fca6dbaf000-7fca6dbb0000 ---p 00000000 00:00 0
7fca6dbb0000-7fca6e3b0000 rwxp 00000000 00:00 0                          [stack:3040]
7fca6e3b0000-7fca6e3d7000 r-xp 00000000 00:0c 2918591                    /usr/lib64/libexpat.so.1.6.0
7fca6e3d7000-7fca6e5d7000 ---p 00027000 00:0c 2918591                    /usr/lib64/libexpat.so.1.6.0
7fca6e5d7000-7fca6e5d9000 r-xp 00027000 00:0c 2918591                    /usr/lib64/libexpat.so.1.6.0
7fca6e5d9000-7fca6e5da000 rwxp 00029000 00:0c 2918591                    /usr/lib64/libexpat.so.1.6.0
7fca6e5db000-7fca6e5f8000 rwxs 12b170000 00:05 189                       /dev/nvidia0
7fca6e5f8000-7fca6e608000 r-xp 00000000 00:0c 3400049                    /usr/lib64/xbmc/system/libcpluff-x86_64-linux.so
7fca6e608000-7fca6e807000 ---p 00010000 00:0c 3400049                    /usr/lib64/xbmc/system/libcpluff-x86_64-linux.so
7fca6e807000-7fca6e808000 r-xp 0000f000 00:0c 3400049                    /usr/lib64/xbmc/system/libcpluff-x86_64-linux.so
7fca6e808000-7fca6e809000 rwxp 00010000 00:0c 3400049                    /usr/lib64/xbmc/system/libcpluff-x86_64-linux.so
7fca6e809000-7fca6e80b000 r-xp 00000000 00:0c 2760049                    /usr/lib64/gconv/ISO8859-1.so
7fca6e80b000-7fca6ea0a000 ---p 00002000 00:0c 2760049                    /usr/lib64/gconv/ISO8859-1.so
7fca6ea0a000-7fca6ea0b000 r-xp 00001000 00:0c 2760049                    /usr/lib64/gconv/ISO8859-1.so
7fca6ea0b000-7fca6ea0c000 rwxp 00002000 00:0c 2760049                    /usr/lib64/gconv/ISO8859-1.so/usr/bin/xbmc: Zeile 137:  3030 Abgebrochen             "$LIBDIR/xbmc/xbmc.bin" $SAVED_ARGS
which: no lsb_release in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/gcc-bin/4.6.3)
Crash report available at /home/xbmc/xbmc_crashlog-20120703_234621.log
xinit: connection to X server lost

waiting for X server to shut down Server terminated successfully (0). Closing log file.
The glibc I would exclude as an error source. The last update was on 1st of June. XBMC still worked fine after that.

Any hints or ideas?

Reply
#4
Please post a full debug log. Who has built the package for Gentoo?
Reply
#5
Hi there,

I tried now the git-version. But immediately when I select a TV channel, it crashes again. I'll try to provide as much information as possible. If you need some more logs or other information, just tell me.

/home/xmbc/.xbmc/temp/xbmc.log
The crash happens at:
Code:
12:56:52 T:139817588913920   ERROR: PVRClient - GetTimers - addon 'VDR-XVDR Server:127.0.0.1' returned an error: not implemented
12:56:59 T:139817718769472  NOTICE: DVDPlayer: Opening: pvr://channels/tv/Alle TV Kanäle/0.pvr
12:56:59 T:139817718769472 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
12:56:59 T:139816687630080  NOTICE: Creating InputStream

/var/log/messages
Code:
Jul  7 12:57:00 localhost vdr: [9439] XVDR-Error: cxSocket::read: read() error at 0/4
Jul  7 12:57:00 localhost vdr: [2656] XVDR: Client with ID 2 seems to be disconnected, removing from client list

startx
Code:
X.Org X Server 1.12.2
Release Date: 2012-05-29
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.4.4-gentoo x86_64 Gentoo
Current Operating System: Linux htpc 3.4.4-gentoo #1 SMP Wed Jun 27 23:50:44 CEST 2012 x86_64
Kernel command line: BOOT_IMAGE=/boot/bzImage-344 root=/dev/sda2 quiet ro CONSOLE=/dev/tty1 acpi_enforce_resources=lax
Build Date: 06 July 2012  10:24:39PM

Current version of pixman: 0.26.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Jul  7 12:56:41 2012
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
>                   Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
sh: lsb_release: Kommando nicht gefunden.
sh: lsb_release: Kommando nicht gefunden.
/usr/bin/xbmc: Zeile 137:  9406 Speicherzugriffsfehler  (Speicherabzug geschrieben) "$LIBDIR/xbmc/xbmc.bin" $SAVED_ARGS
which: no lsb_release in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/gcc-bin/4.6.3)
Crash report available at /home/xbmc/xbmc_crashlog-20120707_125700.log
xinit: connection to X server lost

waiting for X server to shut down Server terminated successfully (0). Closing log file.
Sorry for the German stuff inside:
  • Kommando nicht gefunden = Command not found
  • Speicherzugriffsfehler = Memory access error
  • Speicherabzug geschrieben = memory dump written
If you need the memory dump, write me, where can I find the dump file.

xbmc_crashlog-20120707_125700.log

System info:
emerge --info
Ebuild xbmc-9999.ebuild
Environment changes to get PVR functionality
xorg-server-1.12.2
libpng-1.5.11

The ebuild to install xbmc is the official ebuild in portage tree. It takes the sources directly from the Pulse-Eight Git Tree.

Behavior
XBMC starts normally. I can enter the menus. When I select something (weather, Addons, ...) XBMC freezes.

"Sometimes" XBMC startx normally, I can play movies and music from hard drive. The weather plug-in works too. On startup XBMC also tries to update the epg data. If I enter the LiveTV section and try to select a tv or a radio channel XBMC crashes immediately.

Haven't figured out yet, on which conditions it starts normally and when it freezes directly. Hope it helps anyway.

Update:
I downgraded temporarily to XBMC-11.0 without PVR support. Seems to work quite stable. Hope the PVR stuff will work again.
Reply
#6
First you should check that the version of XBMC PVR is compatible to the version of XVDR. The api still changes and compatibility might be broken. We maintain VNSI for vdr within the branch. I think pipelka builds XVDR against this version: https://github.com/pipelka/xbmc/commits/master/
Reply
#7
Hmm, I'm not really sure about this. The Tags on his Github have the same names as the ones from Opdenkamp/Pulse-Eight (pvr-ppa-odk48) and reach up to version 48. This Tag was uploaded 10 months ago.

Tags on the Opdenkamp Github provide pvr-ppa-odk73 as the newest versionen uploaded 3 months ago. On the main page he refers to Pulse-Eight.

So it seems to me:
Pipelka (xx-48)
Opdenkamp (xx-73)
Pulse-Eight (xx-76)

I found a quite recent french tutorial for VDR. They also use XBMC from Pulse-Eight and xvdr-addon-xbmc + vdr-plugin-xvdr from Pipelka's Github.

The strange thing for me is, that I used pvr-ppa-odk-70 for quite a long time. After the system-update (libpng-1.5, kernel-3.4) and pvr-ppa-odk-76 I got those issues. But a downgrade to the previous config (libpng-1.4, kernel-3.2, pvr-ppa-odk-70) didn't bring back the previous working behavior.
Reply
#8
There is a reason why we keep maintaining VNSI in this branch. It's not that we like the duplicate work or say VNSI is better than XVDR. We have expected exactly those things to happen.
Your crashlog states that it segfaults in XVDR.
Reply
#9
Yes, I tried it now on another computer. XBMC from the Pulse-Eight Github compiled fine, started and worked apparently perfect. Then I compiled xmbc-addon-xvdr. I even didn't need it to activate within XBMC. When I tried to start XBMC, it froze completely.

So confirming your statement the error occurs in the XVDR addon.
Found this:
https://github.com/pipelka/xbmc-addon-xvdr/issues/54

They only write about 32bit systems. In my case it breaks also my 64bit system.
Reply
#10
FernetMenta. I guess I need your help once more. As you told me I tried to install the "fallback" plugin. Unfortunately that isn't as easy as it seems.

The Gentoo-Ebuild vdr-vnsiserver-9999
Code:
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=2

RESTRICT="mirror strip"

inherit vdr-plugin git-2

EGIT_REPO_URI="git://github.com/pipelka/vdr-plugin-vnsiserver.git"

DESCRIPTION="VDR plugin: VNSI Streamserver Plugin"
HOMEPAGE="http://xbmc.org"
SRC_URI=""

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE=""

DEPEND=">=media-video/vdr-1.7.14"
RDEPEND="${DEPEND}"

src_prepare() {
        vdr-plugin_src_prepare

        sed -i 's/vnsi-server/vnsiserver/g' config.h || die 'sed failed'

        fix_vdr_libsi_include recplayer.c
        fix_vdr_libsi_include receiver.c
}

src_install() {
        vdr-plugin_src_install

        insinto /etc/vdr/plugins/vnsiserver
        doins vnsiserver/allowed_hosts.conf
#       doins vnsiserver/noSignal.mpg
        diropts -gvdr -ovdr
}
doesn't find the git repo. Ok, I found it on your github.

So I did the following changes:
Code:
EGIT_REPO_URI="git://github.com/FernetMenta/xbmc.git"
EGIT_BRANCH="vnsi"
EGIT_PROJECT="vdr-vnsi"

emerge vdr-vnsiserver gives me then:
Code:
emerge -1 =vdr-vnsiserver-9999
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) media-plugins/vdr-vnsiserver-9999 from vdr-devel
* please use append-cppflags for preprocessor flags
* Compiling against
*     vdr-1.7.27 [API version 1.7.27]
>>> Unpacking source...
Cloning into bare repository '/var/portage/distfiles/egit-src/vdr-vnsi'...
remote: Counting objects: 186414, done.
remote: Compressing objects: 100% (58555/58555), done.
remote: Total 186414 (delta 134887), reused 171016 (delta 124081)
Receiving objects: 100% (186414/186414), 322.50 MiB | 701 KiB/s, done.
Resolving deltas: 100% (134887/134887), done.
GIT NEW clone -->
   repository:               git://github.com/FernetMenta/xbmc.git
   at the commit:            a4920178afeb919e8bc070731f9030892e76594a
   branch:                   vnsi
   storage directory:        "/var/portage/distfiles/egit-src/vdr-vnsi"
   checkout type:            bare repository
Cloning into '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999'...
done.
Checking out files: 100% (14014/14014), done.
Branch branch-vnsi set up to track remote branch vnsi from origin.
Switched to a new branch 'branch-vnsi'
>>> Unpacked to /var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999
>>> Source unpacked in /var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work
>>> Preparing source in /var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999 ...
* Patching Makefile
* ERROR: media-plugins/vdr-vnsiserver-9999 failed (prepare phase):
*   Makefile of plugin can not be found!
*
* Call stack:
*     ebuild.sh, line   85:  Called src_prepare
*   environment, line 2858:  Called vdr-plugin_src_prepare
*   environment, line 3607:  Called vdr-plugin_src_util 'prepare'
*   environment, line 3639:  Called vdr-plugin_src_util 'add_local_patch' 'patchmakefile' 'i18n'
*   environment, line 3650:  Called vdr_patchmakefile
*   environment, line 3721:  Called die
* The specific snippet of code:
*       [[ -e Makefile ]] || die "Makefile of plugin can not be found!";
*
* If you need support, post the output of `emerge --info '=media-plugins/vdr-vnsiserver-9999'`,
* the complete build log and the output of `emerge -pqv '=media-plugins/vdr-vnsiserver-9999'`.
* This ebuild is from a repository named 'vdr-devel'
* The complete build log is located at '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/temp/environment'.
* Working directory: '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999'
* S: '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999'

>>> Failed to emerge media-plugins/vdr-vnsiserver-9999, Log file:

>>>  '/var/tmp/portage/media-plugins/vdr-vnsiserver-9999/temp/build.log'

The compile it manually I went to: /var/tmp/portage/media-plugins/vdr-vnsiserver-9999/work/vnsiserver-9999/xbmc/pvrclients/vdr-vnsi/vdr-plugin-vnsiserver and got
Code:
make

g++ -O2 -g -Wall -Woverloaded-virtual -fPIC -DPIC -c -DPLUGIN_NAME_I18N='"vnsiserver"' -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DVNSI_SERVER_VERSION='"0.9.0"' -I../../../include -I../../../../DVB/include -I../../.. vnsi.c
...
receiver.c:30:27: fatal error: libsi/section.h: No such file or directory
compilation terminated.
make: *** [receiver.o] Error 1

Is there a chance to get that plugin working?
Reply
#11
hey guys i'm running the new beta and it's slow on a dual-core 4400+ with 6 gig ram and stutters on streaming. besides the crash to 12.04 64bit desktop when going to my music folder in xbmc. oh gtx275 in it as well.
Reply
#12
musv, you need either the sources of vdr or vdr-devel package (or whatever it is called for gentoo)

themoddingden, please open a separate thread, or explain the relationship to this topic.
Reply
#13
(2012-07-09, 09:37)FernetMenta Wrote: musv, you need either the sources of vdr or vdr-devel package (or whatever it is called for gentoo)
That's not the problem. vdr-1.7.27 is installed. And in Gentoo almost everything is build from scratch. Means, I can access the source.

Will try it like described here: http://forum.xbmc.org/showthread.php?tid...pid1120127 when I'm at home again.

It's not really a good idea to install something aside of the package manager.
Reply
#14
I just noticed that the directory for addons has changed. In case you have pvr addons in /usr/local/share/xbmc/addons, delete those.
Reply
#15
There was also a problem with the Makefile, which somehow has to be patched via the ebuild and failed in this state. So I just used the unpack part of the ebuild, which copied the downloaded files to a temporary directory. There I corrected the Makefile and built the vnsiserver.so manually. Afterwards it was only necessary to copy that file to /etc/vdr/plugins/vnsiserver. And what should I say. It works like a charm.

I don't know, if there were some bigger performance improvements in the last PVR versions (from 70 to 76), but I notice a huge difference. The channels change much faster and also the GUI seems to be more agile.

However, after the yesterday tests I'm quite happy with vnsi and I guess I'll stay for some time with that solution.

Thank you a lot for your help. I had to some things again.
Reply

Logout Mark Read Team Forum Stats Members Help
XBMC-Addon-XVDR causes crash of XBMC-Eden-PVR0