8000 Node.js 22系で録画が始まらないことがある · Issue #713 · l3tnun/EPGStation · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Node.js 22系で録画が始まらないことがある #713

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
hollimaple opened this issue Apr 12, 2025 · 13 comments
Open

Node.js 22系で録画が始まらないことがある #713

hollimaple opened this issue Apr 12, 2025 · 13 comments

Comments

@hollimaple
Copy link
hollimaple commented Apr 12, 2025

いつも便利に使用させていただいており、このようなシステムを作成いただいた作者様には感謝しております。

ルールで録画予約してある番組が録画開始出来てないことがあり困っています。
(ルールはWindows時代に設定したものを引き継いでいます。録画予約追加のコマンドは都度走っているので、これも関係ないかも知れません。)
手動で予約をかけても始まらないこともあります。
全部が録画出来ないわけではないので原因と対策が分かりません。
手動で録画予約をかけたり、ルールで予約しているものを除外して除外解除すると録画できることが多いのでタイマーセットがこけることがあるのかなと思っています。
予約の時間帯の問題で起きていることもなさそうです。

logs/Operator/system.logを確認すると録画開始のステータスに移行できてない感じがあります(debugでログ出力しても開始時間に何もログが出力されていませんでした。)

OSの時間同期はちゃんとかかるように設定しています。

不足情報を出してほしい、これを試してみてほしい等がございましたら、ご教示いただければと思います。

ちなみに半月ほど前にWindowsからUbuntuにシステムをのせかえています。データベースはバックアップから復元しました。
Windowsではmirakurun 3.9.0 rc4とEPGStation 2.10.0(ビルド時にエラーが出ないように少し改変)で運用していましたが、このようにすっぽ抜けることはなかったです。

環境
Ubuntu 24.04
mirakurun 4.0.0 beta 18 on Docker
EPGStation 2.10.0
チューナー PT3

@hollimaple
Copy link
Author

どこかでmirakurun 3.9.0 rc4にダウングレードして試してみようかとは考えていますが、EPGStation側で録画開始の指令が出ていない感じがあるのでダウングレードしても状況が変わらないような気もします。
なお、指令が出ていないので、録画失敗コマンドも走っていません。

@miutaku
Copy link
miutaku commented Apr 12, 2025

動作環境ってどうなってます?
EPGStation/mirakurunをDockerで動かしてるのかとか、どのバージョンで動かしてるのかとか、、、

→すみません、1番下に書いてましたね。見逃してました。

@hollimaple
Copy link
Author

コメントありがとうございます。
以下は環境の追記になります。(関係ないものあるかもしれませんが...)
EPGStationはnpmでインストールしてpm2で自動起動しています。
MariaDB(Server) 10.11
npm 11.2
node.js 22.14.0

@miutaku
Copy link
miutaku commented Apr 12, 2025

古いnode.js使わせるのもあれですが、18系に落として試してみたらいけたりしませんかね、、、?
22系で試したことがないので、切り分け的な意味で試してみてもいいかなと。
(というか22系対応してましたっけ…)

@hollimaple
Copy link
Author
hollimaple commented Apr 12, 2025

...!
それは盲点でした。
そういえばWindowsの時は18系だった気がします。
18系に落としてみます。
(確かに22系は正式に対応ではなかったと思います...)
また、18系で確認したら報告します。

以下のissueをみると22系でも使えているようだったので問題ないと思っておりました。
#708 (comment)

@stu2005
Copy link
stu2005 commented Apr 12, 2025

Mirakurunはnode22、EPGStationはnode18ですよ

@hollimaple
Copy link
Author
hollimaple commented Apr 13, 2025

18系に変えて確認したところ、早速録画開始の抜けが発生してました。
試したこととしては、APIのリセットタイマーはかけています。
ちゃんと検証まではしてないですが、1週間前のセットタイマーがうまくいってない感じがしますが、調べるすべがわからず。
予約ルールを更新するとタイマーが動くっぽい?

@hollimaple
Copy link
Author
hollimaple commented Apr 19, 2025

あれから様子を見たところ、node18に変えて以降に録画予約されたものはセットタイマーが動いていて録画がうまくいってそうです。
mirakurunはバージョンを変えていないのでEPGStation側の処理の問題だと考えられます。

@hollimaple hollimaple changed the title 録画が始まらないことがある Node.js 22系で録画が始まらないことがある Apr 19, 2025
@hollimaple
Copy link
Author

なお、外部公開するサーバーではないとはいえ昨今の情勢から今月末でEOLとなる18系までが推奨なのはリスクが高いと考えています。

@hollimaple
Copy link
Author

18系でもOS再起動するとタイマーが消える?のかたまに録画が始まらないことがあるので再起動は基本的にしない方が良いとは思います。
(OSまで再起動かけるようなそんなケースは頻繁にはないと思いますが。)
再起動したとしても録画ルールの編集画面に入って更新をかければタイマーが再セットされている感じはします。

@sandhill2000
Copy link
sandhill2000 commented May 3, 2025

外しているかもしれませんが今日体験した類似案件について。
録画PC省電力化の一環で、普段運用している流用PCをi7-2670QM(4コア/8スレッド)から
試しにi3-2350に変更してみたところ、予約時間に録画開始されず数秒~10数秒遅れて
始まりました。
さらに上位のi5-2450Mやi7-2640Mなど2コア4スレッドCPUでも同様な状況が発生。

最近のMirakurunバージョン更新による仕様追加で、デフォで1時間に2回使用可能な
CPU論理コアの半分を使ってgetEPGが並列に各チャンネル走査jobを順番に実行する
ようになってますが、今のところこんな状態に見えてるかな。

・getEPGが並列で走ってるところに予約時間が重なると開始処理が間に合わないケース
→getEPGの同時実行数はデフォで論理コア数/2だが、HTで論理コアが物理コアの
 倍に見えていると録画予約をあてられても録画開始が追い付かない?

・しかしながら予約対象にしてない放送中番組を予約かけてみるとすぐ録画開始される

つまり2コア4スレ機ではgetEPGが2本走ってる最中に予約開始が重なるともう遅れる
可能性があると。

なおnodeはdocker-mirakurun-epgstationに入っていた18.20のまま。
MirakurunのgetEPG同時実行数をより少なく設定してみるとか色々やってみます。
上の仮説では2コア4スレッドのCPUだとgetEPGを同時1個にする確認しかできないけど。

@sandhill2000
Copy link
sandhill2000 commented May 3, 2025

ひとつ前に書いた件、調べていたら別問題でした。前回もこんなだったな・・申し訳ない。
Mirakurunのjob実行で使われるCPUコア数のほかに、EPGStationの録画準備/実行のため確実に1物理コア以上を与えられるようにMirakurunの設定画面で同時実行job数を設定すれば、2コア4スレッドCPUでも概ね遅れなくなるのを8番組の予約同時開始で確認。
ただしMirakurun側のgetEPGを含む多数のJob実行効率がその分下がります。
影響は多分TV局側のEPG修正のDB反映が遅れるくらいなものかなと。なので低性能低燃費の録画機器を使われている人はMirakurun設定の常時実行Job数を少なくした方がいいかも。
2コア4スレッドCPUならやっぱり設定値は「1」。

で、1つ上で書いてたことを確認してたら録画が開始しない現象普通に起こりました。
「あれ?今録画済んだCHのすぐ次の番組が録画走ってない」と思って色々見てたら、予約時間の8分後に遅れて開始。何で遅れて始まったのかOperatorのsystemログ見たら、MirakurunにEPGを更新しに行ったらもう録画時間に入ってる番組があることに気が付いて始めた、みたいな見え方。
これがnode.jsのタイマーが云々のやつかな?
でも前週一緒に予約した直前までの番組は録れてる。
現状見えてるのはここまでです。

@hollimaple
Copy link
Author
hollimaple commented May 25, 2025

2コア2スレッドのPentiumを使用しています。
コメントを参考にバックグラウンドで走るジョブ数をMax1に設定したおかげか分かりませんが、いまのところ録画の抜けは発生していません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
0