Bug #2814
crash when deleting multiple failed recordings
Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
Crashes
Target version:
-
Start date:
2015-05-02
Due date:
% Done:
100%
Estimated time:
Found in version:
v3.9-2772-g8dbc38d
Affected Versions:
Description
This do not happen every time but I can reproduce this easily by creating multiple recordings which I cancel and then delete them all simultaneously in Failed Recordings.
I guess it is the free in deferred_unlink_cb that triggers the crash.
2015-05-02 09:08:38.470 [ INFO] dvr: delete entry 00c097374965b7b8295c422cab75360c "Nyhetsmorgon" on "TV4 Göteborg" start time 2015-05-02 07:57:30, scheduled for recording by "127.0.0.1", retention 31 days 2015-05-02 09:08:38.470 [ INFO] dvr: delete entry 9eeb0827d0aa4bb76a3016edb39e9f31 "Inför Eurovision Song Contest" on "SVT1 Väst" start time 2015-05-02 08:29:30, scheduled for recording by "127.0.0.1", retention 31 days 2015-05-02 09:08:38.470 [ INFO] dvr: delete entry e1fdded798949a510f34a63eb4b3a951 "Amazing Race" on "TV6" start time 2015-05-02 08:59:30, scheduled for recording by "127.0.0.1", retention 31 days 2015-05-02 09:08:38.470 [ INFO] dvr: delete entry 7a8544fd1f6417fb744a1413d9928c40 "Disneydags" on "Barnkanalen/SVT24" start time 2015-05-02 08:59:30, scheduled for recording by "127.0.0.1", retention 31 days 2015-05-02 09:08:38.471 [ INFO] dvr: delete entry f1aaa8482aec0df53aae6474ce4f6683 "Vintagelyx i LA" on "Kunskapskanalen" start time 2015-05-02 08:59:30, scheduled for recording by "127.0.0.1", retention 31 days *** Error in `/home/johanr/projects_other/tvheadend/build.linux/tvheadend': free(): invalid next size (fast): 0x00007fffa80026d0 *** 2015-05-02 09:08:38.471 [ INFO] dvr: delete entry f6742fe3a6f77ea1b8dc3d98e207ea3d "Agenda" on "SVT2 Väst" start time 2015-05-02 09:04:30, scheduled for recording by "127.0.0.1", retention 31 days [New Thread 0x7fffb27fc700 (LWP 3220)] [New Thread 0x7fffb2ffd700 (LWP 3219)] [New Thread 0x7fffb37fe700 (LWP 3218)] [New Thread 0x7fffb3fff700 (LWP 3217)] [New Thread 0x7fffd4ff9700 (LWP 3216)] [New Thread 0x7fffd57fa700 (LWP 3215)] [New Thread 0x7fffd67fc700 (LWP 3213)] [New Thread 0x7fffd6ffd700 (LWP 3212)] [New Thread 0x7fffd7fff700 (LWP 3198)] [New Thread 0x7fffdcff9700 (LWP 3197)] [New Thread 0x7fffdd7fa700 (LWP 3196)] [New Thread 0x7fffddffb700 (LWP 3195)] [New Thread 0x7fffde7fc700 (LWP 3193)] [New Thread 0x7fffdeffd700 (LWP 3192)] [New Thread 0x7fffdf7fe700 (LWP 3190)] [New Thread 0x7fffdffff700 (LWP 3189)] [New Thread 0x7fffe4ff9700 (LWP 3188)] [New Thread 0x7fffe57fa700 (LWP 3187)] [New Thread 0x7fffe5ffb700 (LWP 3186)] [New Thread 0x7fffe67fc700 (LWP 3185)] [New Thread 0x7fffe6ffd700 (LWP 3184)] [New Thread 0x7fffe77fe700 (LWP 3183)] [New Thread 0x7fffe7fff700 (LWP 3182)] [New Thread 0x7fffec91d700 (LWP 3181)] [New Thread 0x7fffed11e700 (LWP 3180)] tcp_server: tvhpoll_wait: Interrupted system call 2015-05-02 09:08:38.473 [ ERROR] iptv: poll() error Interrupted system call, sleeping 1 second ======= Backtrace: ========= /usr/lib/libc.so.6(+0x7198e)[0x7ffff42f698e] /usr/lib/libc.so.6(+0x76dee)[0x7ffff42fbdee] /usr/lib/libc.so.6(+0x775cb)[0x7ffff42fc5cb] /home/johanr/projects_other/tvheadend/build.linux/tvheadend[0x40b479] /home/johanr/projects_other/tvheadend/build.linux/tvheadend[0x4134c8] /usr/lib/libpthread.so.0(+0x7374)[0x7ffff4b3c374] /usr/lib/libc.so.6(clone+0x6d)[0x7ffff436d27d] (gdb) bt full #0 0x00007ffff42b84b7 in raise () from /usr/lib/libc.so.6 No symbol table info available. #1 0x00007ffff42b988a in abort () from /usr/lib/libc.so.6 No symbol table info available. #2 0x00007ffff42f6993 in __libc_message () from /usr/lib/libc.so.6 No symbol table info available. #3 0x00007ffff42fbdee in malloc_printerr () from /usr/lib/libc.so.6 No symbol table info available. #4 0x00007ffff42fc5cb in _int_free () from /usr/lib/libc.so.6 No symbol table info available. #5 0x000000000040b479 in tasklet_thread (aux=<optimized out>) at src/main.c:414 tsk = 0x7fffa8001b50 #6 0x00000000004134c8 in thread_wrapper (p=0x795390) at src/wrappers.c:145 ts = 0x795390 set = {__val = {16388, 0 <repeats 15 times>}} r = <optimized out> #7 0x00007ffff4b3c374 in start_thread () from /usr/lib/libpthread.so.0 No symbol table info available. #8 0x00007ffff436d27d in clone () from /usr/lib/libc.so.6 No symbol table info available.
History
Updated by Jaroslav Kysela over 9 years ago
- Status changed from New to Fixed
- % Done changed from 0 to 100
Applied in changeset commit:tvheadend|41bb5cdd997bc3011c0ba65ec5a4b93c4c2c5a4c.
Updated by Johan Rehnberg over 9 years ago
I should have said this earlier:
Is it really safe to perform a deferred_unlink of the file but then use rmdir later in dvr_entry_delete ?
I suspect rmdir can fail because the file may not been deleted yet in the worker thread.