tvtv-PlugIn verursacht 100% CPU-Last

  • Hi zusammen,


    nach längerem Überlegen habe ich mich heute entschieden, ein tvtv-Abo abzuschließen (das €19,90-Teil).


    Nach der Installation des tvtv-plugins 0.2.10a mußte ich aber feststellen, daß mein vdr nach dem Start nun 100% CPU-Zeit braucht und keine tvtv-Timer hinzufügt.


    Folgende Dinge/Konfigurationen habe ich getestet:
    - mit vdr 1.3.37 (sicherheitshalber auch den tvtv-0.2.3 und 0.2.5, weil der bei einem Freund mit vdr 1.2.6 einwandfrei läuft)
    - mit vdr 1.3.40
    - timers.conf gelöscht
    - epg.data gelöscht


    Folgendes steht im Log nach dem Start:
    initializing plugin: tvtv (0.2.10a): TVTV Timers update
    starting plugin: tvtv
    TVTV: Packed String: VzjN6Mtxu2QLqzYSUA30Iw==
    [...]
    TVTV: Timer Thread started (pid=26751)
    [...]
    TVTV: Timer Update started
    TVTV: Received 175 Bytes
    TVTV: Processing CSV data


    Wenn ich ein manuelles Update per Menü mache:
    ERROR: thread 1092651360 won't end (waited 3 seconds) - canceling it...
    confirm: TVTV update wird ausgeführt
    warning: TVTV update wird ausgeführt
    TVTV: Timer Thread started (pid=27705)
    TVTV: Timer Update started
    TVTV: Received 175 Bytes
    TVTV: Processing CSV data
    not confirmed


    Für alle Ideen bin ich dankbar.


    Falls es von Bedeutung sein sollte:
    Der VDR und damit natürlich auch der DVB-Treiber sind auf einem 64-Bit Suse 10 übersetzt.


    Viele Grüße


    Mathias

    "you have awaken my bunghole and now you must pay :strike2"

  • Hi zusammen,


    hat wirklich keiner eine Idee oder habe ich (obwohl ich seit über zwei Jahren meinen VDR-Server laufen habe), einen Idiotenfehler gemacht?


    Ich lasse mich lieber verspotten und dafür geht's nachher, als dumm zu sterben. ;(


    Danke für alle(:]) Antworten.


    Mathias

    "you have awaken my bunghole and now you must pay :strike2"

    Einmal editiert, zuletzt von bunghole ()

  • Nochmal hi zusammen,


    so, das war mir jetzt zu dumm und ich hab' mir mal die Sourcen angesehen.
    (es lebe OpenSource :))


    Aaaaaaaaaalso:
    Die Methode calc_field_cnt der Klasse cUpdate hat einen Fehler, der offenbar nur auf einem 64Bit-System zum tragen kommt:
    die Variable p hat den Typ unsigned_int, welche mit der Konstanten std::string:npos verglichen wird (die hat den Typ size_t). Letzterer Typ ist abhängig vom Prozessortyp.
    Ändert man den Typ der Variablen p auf size_t gibt es
    1. keinen Busy-Loop
    und
    2. geht das tvtv-PlugIn einwandfrei


    Nochmal langsam zu mitschreiben:
    in der Datei tvtv.c wird aus dem Code-Teil:
    int cUpdate::calc_field_cnt(std::string *s) {
    int n=0;
    insigned int p = 0;
    der folgende Code:
    int cUpdate::calc_field_cnt(std::string *s) {
    int n=0;
    size_t p = 0;


    PlugIn neu übersetzen und freuen 8)


    Mathias

    "you have awaken my bunghole and now you must pay :strike2"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!