Posts by nobanzai

    wenn du in deinem log keine Got epgd state Meldungen des epg2vdr Plugins findest ist das die Ursache für die Deadlocks.
    Diese Meldungen kommen mit log level 1, also wenn du den auf 1 oder größer hast und die Meldungen ausbleiben müssen wir nur noch herausfinden warum des Plugin den Status des epgd nicht mitbekommt.

    Sry, man sollte nicht so spät nachts noch Protokolle wälzen 8-<

    Doch ja, ich habe die von dir genannten Meldungen gefunden.

    Also alles gut.

    Wie oft hast du die Deadlocks?

    Wie geschrieben 5x seit 5.02.


    Quote

    Hast du diese Meldungen?

    Code
    Feb 21 09:28:44 gate vdr: epg2vdr: Got epgd state 'busy (match)' (4)
    Feb 21 09:29:09 gate vdr: epg2vdr: Got epgd state 'standby' (1)

    Wenn ja schick mal die Letzte vor und die Erste nach so einer Deadlock Meldung, am besten den Bereich zw. den beiden.

    Nein, hab ich nicht. Trotzdem mal hier das Drumherum um den letzten Deadlock:

    Code
    svdrpsend -d server CHAN
    220 VDR SVDRP VideoDiskRecorder 2.6.3; Mon Feb 20 20:13:48 2023; UTF-8
    250 30 RTL Television
    221 VDR closing connection
    
    svdrpsend -d client CHAN
    220 origen SVDRP VideoDiskRecorder 2.6.3; Mon Feb 20 20:13:55 2023; UTF-8
    250 16 MDR Thüringen HD
    221 origen closing connection

    Das sieht gut aus.


    Hier aber habe ich Einträge mit derselben IP drin, von denen einer einen leeren Port hat:


    Ich hab allerdings nur einen VDR mit epg2vdr, der mit EPGD und der DB spricht, und zwar den auf dem EPGD-Server selbst.

    Das war mal wieder Quatsch - ich hab natürlich auch am 2. VDR den epg2vdr gegen die DB auf den EPGD-Server laufen 8-(

    Sry für die Verwirrung.

    Ist das normal im Sinne von erwartbar?

    Kommt nicht oft vor - die fünf Events sind seit dem 05.02. aufgetreten, der letzte heute Vormittag.


    Code
    vdr[31568]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get lock; try restarting transaction (1213) 'Deadlock found when trying to get lock; try restarting transaction' [update events set actor = ?, audio = ?, camera = ?, category = ?, commentator = ?, complongdescription = ?, compshorttext = ?, comptitle = ?, contents = ?, country = ?, delflg = ?, director = ?, duration = ?, episodecompname = ?, episodecomppartname = ?, episodecompshortname = ?, episodelang = ?, extepnum = ?, fileref = ?, flags = ?, genre = ?, guest = ?, imagecount = ?, longdescription = ?, moderator = ?, movieid = ?, music = ?, numrating = ?, other = ?, parentalrating = ?, producer = ?, rating = ?, screenplay = ?, scrmovieid = ?, scrseriesepisode = ?, scrseriesid = ?, scrsp = ?, shortdescription = ?, shortreview = ?, shorttext = ?, source = ?, starttime = ?, tableid = ?, tipp = ?, title = ?, topic = ?, txtrating = ?, updflg = ?, updsp = ?, useid = ?, version = ?, vps = ?, year = ? where channelid = ? and eventid = ?;]
    vdr[22142]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get lock; try restarting transaction (1213) 'Deadlock found when trying to get lock; try restarting transaction' [update events set delflg = ?, updflg = ?, updsp = ? where channelid = ? and source = ? and starttime+duration > ? and starttime < ? and (tableid > ? or (tableid = ? and version <> ?));]
    vdr[22142]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get lock; try restarting transaction (1213) 'Deadlock found when trying to get lock; try restarting transaction' [update events set delflg = ?, updflg = ?, updsp = ? where channelid = ? and source = ? and starttime+duration > ? and starttime < ? and (tableid > ? or (tableid = ? and version <> ?));]
    vdr[22142]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get lock; try restarting transaction (1213) 'Deadlock found when trying to get lock; try restarting transaction' [update events set actor = ?, audio = ?, camera = ?, category = ?, commentator = ?, complongdescription = ?, compshorttext = ?, comptitle = ?, contents = ?, country = ?, delflg = ?, director = ?, duration = ?, episodecompname = ?, episodecomppartname = ?, episodecompshortname = ?, episodelang = ?, extepnum = ?, fileref = ?, flags = ?, genre = ?, guest = ?, imagecount = ?, longdescription = ?, moderator = ?, movieid = ?, music = ?, numrating = ?, other = ?, parentalrating = ?, producer = ?, rating = ?, screenplay = ?, scrmovieid = ?, scrseriesepisode = ?, scrseriesid = ?, scrsp = ?, shortdescription = ?, shortreview = ?, shorttext = ?, source = ?, starttime = ?, tableid = ?, tipp = ?, title = ?, topic = ?, txtrating = ?, updflg = ?, updsp = ?, useid = ?, version = ?, vps = ?, year = ? where channelid = ? and eventid = ?;]
    vdr[22142]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get lock; try restarting transaction (1213) 'Deadlock found when trying to get lock; try restarting transaction' [update events set delflg = ?, updflg = ?, updsp = ? where channelid = ? and source = ? and starttime+duration > ? and starttime < ? and (tableid > ? or (tableid = ? and version <> ?));]
    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."

    Dem stimme ich uneingeschränkt zu, wenn man das so ändert:

    "Es gibt keinen Grund, warum irgendjemand *einen* Computer in seinem Haus wollen würde."

    - Warum 2 verschiedene IP's?

    -> Muss nicht sein, ist hier halt so ausgekommen (aus historischen Gründen).


    - Warum nicht die epgd-Datenbank als 2.? Auf der ersten laufen noch andere Sachen wie "WebTrees"

    -> Das kannst du machen, wie dir spassig ist - auch das ist hier halt so.


    - Datadir in /home/mysql; Warum nicht /var/lib/mysql2

    -> Selber Grund - alles historisch. Allerdings würde ich keine Datenbank nach /var/lib packen. Irgendwie gehört sowas da nicht hin, weil man im Normalfall /var/lib in / hat und / eigentlich keine Daten halten sollte. Auch sonst ist ein lib-Verzeichnis nach meinem Verständnis für libs und sonst nix.


    - Muss der mysql-Service deaktiviert werden?

    -> Macht Sinn, ja.


    - Was ist mit der Performance/Speicherverbrauch wenn 2 Instanzen laufen?

    -> Das ist ziemlich egal. Das hängt mehr von der Nutzung von Nextcloud ab und da ist es wurscht, ob eine oder zwei Instanzen. EPGD hat eh kaum Ansprüche an die Datenbank.

    Das sieht aus, als wäre die SSD wirklich im Eimer im Sinne von "keine Reserveblöcke" mehr.

    Alternativ ist der SSD-Controller am Ende.

    Ist auf einer SSD Prinzip bedingt überhaupt ein badblocks Check möglich/sinnvoll?


    Quote

    In general, you shouldn't need to, beyond paying attention to what SMART is already telling you. The reason is that SSDs use wear leveling, so they have an advanced controller that already takes care of detecting and re-mapping bad blocks in the background, so from the OS's perspective, and the perspective of standard utilities like badblocks, any blocks that went bad are invisible because they've already been remapped. If badblocks somehow did find a block that was bad, it would be immediately remapped and thus would be "good" again the next time you read it.

    To really get an indication of the health of your drive, what you need to know is how many bad blocks the controller has already remapped, and how much spare capacity remains to allow it to remap further. SMART data should give you this for SATA, or NVMe has equivalent log pages that contain the same information. In particular, the 'Available Spare' attribute will give you a percentage of how much of the drive's total remapping capability has been used up.

    This page has some specific command line tools you can use for SATA or NVMe: https://www.percona.com/blog/2…-check-nvme-flash-health/

    Ich glaube die DB auf den Server zu lege wird nichts:

    Code
    [mysqld]
    character_set_server = utf8mb4
    collation_server = utf8mb4_general_ci

    Wird von Nextcloud benötigt

    Dann lasse halt zwei sqld laufen: