Bug #1423
tvheadend aborts and core dumps when using tv_grab_file
100%
Description
I am trying to get xmltv to work with my tvheadend version 3.2.18~g40a8920
I created a grabber based on the tv_grab_file found here: http://code.google.com/p/tv-grab-file/downloads/detail?name=tv_grab_file&can=2&q=
I created an xmltv file from my xmltv provider and named it ~/.xmltv/tv_grab_file.xmltv
Executing the tv_grab_file from the command line output the xmltv xml properly.
However whan I afterwards try to start tvheadend, I get the following error:
Nov 17 20:30:01 [INFO]:epggrab: module /usr/bin/tv_grab_file created
tvheadend: /opt/tvheadend/src/epggrab/module.c:94: epggrab_module_create: Assertion `!epggrab_module_find_by_id(id)' failed.
Aborted (core dumped)
Associated revisions
Fix #1423 - ensure that XMLTV grabber search does not crash.
It appears that if paths are duplicated in the PATH env variable the
internal search algorithm failed to detect this and could crash due to
an assert in the internal modlue registration code.
(cherry picked from commit 563b8f8c51a4fa0ee33c0ae8786f3fec84f70b4d)
History
Updated by Adam Sutton about 8 years ago
- Status changed from New to Need feedback
I'm struggling to reproduce this one. I can certainly see that if the code though it had found two XMLTV scripts with exactly the same path this might happen. However I cannot see how that could happen.
Do you have the tv_find_grabbers script installed? If so what is the output?
Adam
Updated by glazed donut about 8 years ago
No - I don't have the tv_find_grabbers script installed.
I actually got everything working on a different NAS box.
I will revisit my setup on the original NAS box - to ensure that it is infact a bug - rather than just an error that I made.
Updated by Adam Sutton about 8 years ago
Ta,
I completely understand why it crashes. I just don't understand how it gets to that point. It appears that it finds 2 grabbers with the same ID, but since the path is the ID that implies 2 grabbers with the same path. How on earth that can happen I've no idea!
Adam
Updated by Mattias Nissler about 8 years ago
Simple answer: A path appears twice on PATH. Example: /bin:/usr/bin:/usr/local/bin:/usr/bin
For a solution, I suggest that the loop in https://github.com/tvheadend/tvheadend/blob/master/src/epggrab/module/xmltv.c#L677 should check whether a grabber for the path in question already exists. Bonus points for de-duping the PATH elements first, but that's harder to add to the current code.
Updated by Adam Sutton about 8 years ago
Matias,
Thanks for that update, somehow I missed the message. I hadn't considered that case, I'll look into this immediately.
Adam
Updated by Adam Sutton about 8 years ago
- Status changed from Need feedback to Resolved
- Affected Versions 3.2 added
Fix now in git master. Need to decide whether to port to 3.2.
Adam
Updated by Adam Sutton about 8 years ago
- Status changed from Resolved to Fixed
- % Done changed from 0 to 100
Applied in changeset c9e438e1485c6356891b1896098353e32eafc60c.
Issue #1423 - ensure that XMLTV grabber search does not crash.
It appears that if paths are duplicated in the PATH env variable the
internal search algorithm failed to detect this and could crash due to
an assert in the internal modlue registration code.