l3tnun / EPGStation

Mirakurun を使用した録画管理ソフト
https://twitter.com/l3tnun
MIT License
547 stars 148 forks source link

Mirakurunとのコネクションを大量に張ってしまうため録画に失敗する。 #664

Closed miutaku closed 4 months ago

miutaku commented 9 months ago

環境

Issue

EPGStationにて録画/視聴を開始の際、preprecが何度もMirakurunとコネクションを張っては切れる感じです。 こちらのstdoutのログにてメモリリークしたログが出ているのを確認できたので、共有します。↓ image

実際に出ている Operator/system.log を控えておいたため共有いたします。 v2.7.3-operator-system.log

miutaku commented 9 months ago

vaapiを使っているため、少しDockerfileを追記しているため、一応共有します

FROM l3tnun/epgstation:latest

ENV DEV="make gcc git g++ automake curl wget autoconf build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev"
ENV FFMPEG_VERSION=4.2.4

RUN apt-get update && \
    apt-get -y install $DEV && \
    apt-get -y install yasm libx264-dev libmp3lame-dev libopus-dev libvpx-dev && \
    apt-get -y install libnuma-dev && \
    apt-get -y install libasound2 libass9 libvdpau1 libva-x11-2 libva-drm2 libxcb-shm0 libxcb-xfixes0 libxcb-shape0 libvorbisenc2 libtheora0 libaribb24-dev && \
    echo "deb http://http.us.debian.org/debian stable main contrib non-free" | tee -a /etc/apt/sources.list && \
    apt-get update && \
    apt-get -y install i965-va-driver-shaders intel-media-va-driver-non-free vainfo && \
\
\
#ffmpeg build
    mkdir /tmp/ffmpeg_sources && \
    cd /tmp/ffmpeg_sources && \
    curl -fsSL http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 | tar -xj --strip-components=1 && \
    ./configure \
      --prefix=/usr/local \
      --disable-shared \
      --pkg-config-flags=--static \
      --enable-gpl \
      --enable-libass \
      --enable-libfreetype \
      --enable-libmp3lame \
      --enable-libopus \
      --enable-libtheora \
      --enable-libvorbis \
      --enable-libvpx \
      --enable-libx264 \
#      --enable-libx265 \
      --enable-version3 \
      --enable-libaribb24 \
      --enable-nonfree \
      --disable-debug \
      --disable-doc \
      --enable-vaapi \
    && \
    make -j$(nproc) && \
    make install && \
\
# 不要なパッケージを削除
    apt-get -y remove $DEV && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* && \
    rm -rf /tmp/*
miutaku commented 9 months ago

v2.7.2でも同じ現象が発生しました。 system.log

コンテナイメージはv2.7.2-debianを使っています。 先程確認できなかったnpmのバージョンをみてみました。9.8.1 です。

scimmia9286 commented 8 months ago

[2023-11-26T01:30:52.803] [ERROR] system - [Error: Unknown system error -122: Unknown system error -122, write] { errno: -122, code: 'Unknown system error -122', syscall: 'write' }

となってるので、mirakurunと接続できて映像を受信したが~ディスク(パーティション)に空きがなくて~ディスククオータ制限によって書けないのが原因のように思います。 番組開始時にmirkurunと接続できない時は5行間隔でリトライを試みますが、ディスクに書けなくて失敗した場合は間を置かずリトライを繰り返してしまうんでしょうね。

miutaku commented 4 months ago

[2023-11-26T01:30:52.803] [ERROR] system - [Error: Unknown system error -122: Unknown system error -122, write] { errno: -122, code: 'Unknown system error -122', syscall: 'write' }

となってるので、mirakurunと接続できて映像を受信したが~ディスク(パーティション)に空きがなくて~ディスククオータ制限によって書けないのが原因のように思います。 番組開始時にmirkurunと接続できない時は5行間隔でリトライを試みますが、ディスクに書けなくて失敗した場合は間を置かずリトライを繰り返してしまうんでしょうね。

この通りでしたね。クォータ調整で解決しました。