Kann es sein dass das Anzeigen der Constable Episodenliste nicht mehr funktioniert in einer Serie?
Jetzt wo du es erwähnst, ja, die fehlt hier auch.
Kann es sein dass das Anzeigen der Constable Episodenliste nicht mehr funktioniert in einer Serie?
Jetzt wo du es erwähnst, ja, die fehlt hier auch.
Du meinst hier auch die "got epgd state" Meldungen?
Siehe Anhang.
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
Nein, hab ich nicht. Trotzdem mal hier das Drumherum um den letzten Deadlock:
Feb 20 10:05:55 server epgd[12053]: Loaded 416 images (7,280 MB), checked 8099; 0 failed to load in 1 seconds
Feb 20 10:05:55 server vdr[22142]: epg2vdr: Got 8 images from database in 1 seconds (0 updates, 8 new) and created 2770
links
Feb 20 10:05:55 server vdr[22142]: epg2vdr: --- EPG update finished ---
Feb 20 10:05:56 server vdr[22142]: epg2vdr: SQL-Error in 'execute(stmt_execute)' - Deadlock found when trying to get loc
k; 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 < ? a
nd (tableid > ? or (tableid = ? and version <> ?));]
Feb 20 10:06:09 server epgd[12053]: State now 'busy (scraping)'
Feb 20 10:06:09 server vdr[22142]: [22178] SVDRP VDR < 192.168.1.4:42476 client connection accepted
Feb 20 10:06:09 server vdr[22142]: [22178] SVDRP VDR > 192.168.1.4:42476 server created
Feb 20 10:06:09 server epgd[12053]: Send 'PLUG epg2vdr STATE busy (scraping)' to '192.168.1.4:6419'
Feb 20 10:06:09 server vdr[22142]: epg2vdr: Got epgd state 'busy (scraping)' (5)
Feb 20 10:06:09 server vdr[22142]: epg2vdr: Change handler state to 'standby'
Display More
Ja, der EPGD läuft auch auf diesem Server. Wieso trägt der sich in vdrs ein?
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:
*************************** 1. row ***************************
uuid: 502DDF04-9B0F-4F2C-835B-6DCE7E4DF336
inssp: 1675698439
updsp: 1676920610
name: client
version: vdr 2.6.3 epg2vdr 1.2.14-GIT189871b (13.02.2023)
dbapi: 8
lastupd: 1676906131
nextupd: NULL
lastmerge: NULL
state: attached
master: n
ip: 192.168.1.22
mac: a8:a1:59:2d:b8:14
pid: NULL
svdrp: 6419
osd2webp: NULL
tunercount: 2
shareinweb: 0
usecommonrecfolder: 1
videodir: /var/spool/video/video0
videototal: 22706918
videofree: 9665121
*************************** 2. row ***************************
uuid: 73CF3D07-46F4-40D1-8AFB-70F2F9D1EF64
inssp: 1675702012
updsp: 1676920610
name: server
version: vdr 2.6.3 epg2vdr 1.2.13-GIT22c750a (12.02.2023)
dbapi: 8
lastupd: 1676883952
nextupd: NULL
lastmerge: NULL
state: attached
master: y
ip: 192.168.1.4
mac: 00:25:90:f5:7b:a0
pid: NULL
svdrp: 6419
osd2webp: NULL
tunercount: 4
shareinweb: 1
usecommonrecfolder: 1
videodir: /var/spool/video/video0
videototal: 22706916
videofree: 9665120
*************************** 3. row ***************************
uuid: epgd
inssp: 1675698402
updsp: 1676920610
name: server
version: epgd 1.3.22-GIT1294581 (14.02.2023)
dbapi: 8
lastupd: 1676884141
nextupd: 1676927341
lastmerge: 1676920610
state: standby
master: -
ip: 192.168.1.4
mac: NULL
pid: 12018
svdrp: NULL
osd2webp: NULL
tunercount: NULL
shareinweb: NULL
usecommonrecfolder: NULL
videodir: NULL
videototal: NULL
videofree: NULL
Display More
svdrpsend habe ich noch nie benutzt - meinst du das Script? Aber das will ja hostname und port als Parameter. Ist da die Tabelle nicht egal?
Ja, wir reden schon vom selben - passt IMHO alles.
Netzwerkgerät? Du meinst das Interface und die IP-Adresse? Das ist ja eines/eine der eigenen. Und die IP des EPGD Servers ist auch korrekt.
zwei aktive VDR welche die Events eintragen sind nicht erlaubt/vorgesehen.
Also nur einer auf ja, oder alle auf auto
Der zweite steht sogar auf "nein".
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.
Ich hab allerdings nur einen VDR mit epg2vdr, der mit EPGD und der DB spricht, und zwar den auf dem EPGD-Server selbst.
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.
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?
QuoteIn 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/
Dann lasse halt zwei sqld laufen:
# my1.cnf
# epgd
# systemctl enable mysql@1
[mysqld]
server-id = 1
bind-address = 192.168.1.4
log-error = /var/log/mysql/mysqld.log
secure_file_priv = /var/lib/mysql-files
innodb_file_format=Barracuda
innodb_file_per_table=ON
character-set-server = latin1
innodb_large_prefix = ON
datadir = /home/mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Display More
# my2.cnf
# NextCloud
# systemctl enable mysql@2
[client]
default-character-set = utf8mb4
[server]
skip-name-resolve = 1
innodb_buffer_pool_size = 128M
innodb_buffer_pool_instances = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 32M
innodb_max_dirty_pages_pct = 90
query_cache_type = 1
query_cache_limit = 2M
query_cache_min_res_unit = 2k
query_cache_size = 64M
tmp_table_size= 64M
max_heap_table_size= 64M
slow-query-log = 1
slow-query-log-file = /var/log/mysql2/slow.log
long_query_time = 1
[mysqld]
server-id = 2
bind-address = 192.168.1.8
port = 3307
socket = /run/mysql2/mysql.sock
datadir = /home/database/mysql2
log-error = /var/log/mysql2/mysqld.log
character_set_server = utf8mb4
collation_server = utf8mb4_general_ci
transaction_isolation = READ-COMMITTED
binlog_format = ROW
innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=1
!includedir /etc/my2.cnf.d
Display More
wo bei es ja auch bei Suse wenn alles aus einem Guss aus der Distribution kommt zueinander passen sollte.
Indeed.