VDR segfaults on timer recording from pvr150 after wakeup from suspend to ram

  • Hi all,


    let me first note I am an absolute beginner with VDR. I'm running a home server since serveral years, curently with Ubuntu 10.04LTS. Few weeks ago I've installed yaVDR and a DVB-T stick, without any problems. So I went on and added a pvr150 using pvrinput. The card itself works, I'm able to schedule recordings, stream TV aso. The server itself usually sleeps (suspend to ram). A sheevaplug wakes the server (wake on lan) whenever something interesting happens (like the next recording is ready to start). So here starts my problem: whenever the server wakes up to start a recording using the pvr150, it crashes after a short time:
    Jul 3 11:01:35 ghost kernel: [11592.705028] vdr[9472]: segfault at 7f93c2ca7386 ip 00007f93c7223de7 sp 00007f93ae7f3520 error 4 in libgcc_s.so.1[7f93c7214000+16000]


    After the crash the server is unable to suspend:
    Jul 3 09:14:23 ghost kernel: [ 5160.600162] INFO: task 11_unbindUSB:7613 blocked for more than 120 seconds.
    Jul 3 09:14:23 ghost kernel: [ 5160.600171] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    Jul 3 09:14:23 ghost kernel: [ 5160.600177] 11_unbindUSB D 0000000000000000 0 7613 7387 0x00000000
    Jul 3 09:14:23 ghost kernel: [ 5160.600188] ffff88010a493b28 0000000000000086 0000000000015f00 0000000000015f00
    Jul 3 09:14:23 ghost kernel: [ 5160.600199] ffff8801220a9ad0 ffff88010a493fd8 0000000000015f00 ffff8801220a9700
    Jul 3 09:14:23 ghost kernel: [ 5160.600208] 0000000000015f00 ffff88010a493fd8 0000000000015f00 ffff8801220a9ad0
    Jul 3 09:14:23 ghost kernel: [ 5160.600216] Call Trace:
    Jul 3 09:14:23 ghost kernel: [ 5160.600243] [<ffffffffa0190d95>] dvb_unregister_frontend+0xc5/0x110 [dvb_core]
    Jul 3 09:14:23 ghost kernel: [ 5160.600257] [<ffffffff81086090>] ? autoremove_wake_function+0x0/0x40
    Jul 3 09:14:23 ghost kernel: [ 5160.600269] [<ffffffffa02aa0e2>] dvb_usb_adapter_frontend_exit+0x22/0x40 [dvb_usb]
    Jul 3 09:14:23 ghost kernel: [ 5160.600279] [<ffffffffa02a94b3>] dvb_usb_exit+0x53/0xd0 [dvb_usb]
    Jul 3 09:14:23 ghost kernel: [ 5160.600288] [<ffffffffa02a9579>] dvb_usb_device_exit+0x49/0x60 [dvb_usb]
    Jul 3 09:14:23 ghost kernel: [ 5160.600300] [<ffffffff813f24d4>] usb_unbind_interface+0x124/0x170
    Jul 3 09:14:23 ghost kernel: [ 5160.600310] [<ffffffff8136f3af>] __device_release_driver+0x6f/0xe0
    Jul 3 09:14:23 ghost kernel: [ 5160.600317] [<ffffffff8136f51d>] device_release_driver+0x2d/0x40
    Jul 3 09:14:23 ghost kernel: [ 5160.600324] [<ffffffff8136e53a>] bus_remove_device+0x9a/0xc0
    Jul 3 09:14:23 ghost kernel: [ 5160.600331] [<ffffffff8136c697>] device_del+0x127/0x1d0
    Jul 3 09:14:23 ghost kernel: [ 5160.600339] [<ffffffff813eec50>] usb_disable_device+0x70/0x130
    Jul 3 09:14:23 ghost kernel: [ 5160.600346] [<ffffffff813e8a62>] usb_disconnect+0xd2/0x170
    Jul 3 09:14:23 ghost kernel: [ 5160.600352] [<ffffffff813e8a4c>] usb_disconnect+0xbc/0x170
    Jul 3 09:14:23 ghost kernel: [ 5160.600360] [<ffffffff813ebb72>] usb_remove_hcd+0xb2/0x120
    Jul 3 09:14:23 ghost kernel: [ 5160.600367] [<ffffffff813fbb2b>] usb_hcd_pci_remove+0x2b/0xa0
    Jul 3 09:14:23 ghost kernel: [ 5160.600376] [<ffffffff812d3be4>] pci_device_remove+0x34/0x60
    Jul 3 09:14:23 ghost kernel: [ 5160.600383] [<ffffffff8136f3af>] __device_release_driver+0x6f/0xe0
    Jul 3 09:14:23 ghost kernel: [ 5160.600391] [<ffffffff8136f51d>] device_release_driver+0x2d/0x40
    Jul 3 09:14:23 ghost kernel: [ 5160.600398] [<ffffffff8136e9a1>] driver_unbind+0xa1/0xc0
    Jul 3 09:14:23 ghost kernel: [ 5160.600405] [<ffffffff8136de6c>] drv_attr_store+0x2c/0x30
    Jul 3 09:14:23 ghost kernel: [ 5160.600414] [<ffffffff811b02d5>] sysfs_write_file+0xe5/0x170
    Jul 3 09:14:23 ghost kernel: [ 5160.600423] [<ffffffff81146a98>] vfs_write+0xb8/0x1a0
    Jul 3 09:14:23 ghost kernel: [ 5160.600431] [<ffffffff811472d1>] sys_write+0x51/0x80
    Jul 3 09:14:23 ghost kernel: [ 5160.600440] [<ffffffff810131b2>] system_call_fastpath+0x16/0x1b


    After a fresh reboot everything works again. VDR and plugins in use are:
    root@ghost:/var/log# vdr -V
    vdr (1.7.16/1.7.16) - The Video Disk Recorder
    pvrinput (2011-02-12) - use Hauppauge PVR as input device
    iptv (0.4.2) - Experience the IPTV
    conflictcheckonly (0.0.1) - Direct access to epgsearch's conflict check menu
    osdteletext (0.9.0) - Displays teletext on the OSD
    live (0.2.0) - Live Interactive VDR Environment
    epgsearch (0.9.25.beta21) - search the EPG for repeats and more
    streamdev-server (0.5.1-git) - VDR Streaming Server
    epgsearchonly (0.0.1) - Direct access to epgsearch's search menu
    tvm2vdr (0.0.2) - Tvm2vdr EPG-Data from tvmovie
    xineliboutput (1.0.90-cvs) - X11/xine-lib output plugin
    wirbelscan (0.0.7-pre01) - DVB and pvrinput channel scan for VDR
    imdbsearch (0.3.6) - Searches the IMDb
    quickepgsearch (0.0.1) - Quick search for broadcasts


    For the suspend thing I've followed Tobis advice: http://www.e-tobi.net/blog/201…vdr-teil-9-suspend-to-ram (German page). I assume (just a beginners wild guess) there is something wrong with this module loading/unloading stuff on suspend and wake-up. Do you have any hints? Something special for the pvr150?


    Mathias


    PS: did I forgot any important information?