Chocobozzz / PeerTube

ActivityPub-federated video streaming platform using P2P directly in your web browser
https://joinpeertube.org/
GNU Affero General Public License v3.0
13.04k stars 1.5k forks source link

Runner for lives: fails resuming live stream after a connection loss #5976

Closed JohnXLivingston closed 7 months ago

JohnXLivingston commented 1 year ago

Describe the current behavior

Hi,

It seems that runners can fail resuming a live just after a connection loss. You have to wait a few seconds before being able to resume the live.

I'm not sure what are the relevant error logs. I made several tests, and had different logs (but it fails each time).

Here are some logs on the Peertube server:

error[18/09/2023 09:50:31] Error in controller.

{
  "err": "Error: Unexpected end of form\n    at Multipart._final (/var/www/peertube/versions/peertube-v5.2.1/node_modules/busboy/lib/types/multipart.js:588:17)\n    at callFinal (node:internal/streams/writable:696:27)\n    at prefinish (node:internal/streams/writable:725:7)\n    at finishMaybe (node:internal/streams/writable:735:5)\n    at Multipart.Writable.end (node:internal/streams/writable:633:5)\n    at IncomingMessage.onend (node:internal/streams/readable:693:10)\n    at Object.onceWrapper (node:events:627:28)\n    at IncomingMessage.emit (node:events:525:35)\n    at endReadableNT (node:internal/streams/readable:1358:12)\n    at processTicksAndRejections (node:internal/process/task_queues:83:21)"
}

...

error[18/09/2023 09:52:23] Cannot execute job 9 in queue video-live-ending.

{
  "payload": {
    "videoId": 34528,
    "replayDirectory": "/var/www/peertube/storage/streaming-playlists/hls/c09e9d24-00bf-4679-aaf7-1eaac120cecb/replay/2023-09-18T07:47:13.963Z",
    "liveSessionId": 52,
    "streamingPlaylistId": 361053,
    "publishedAt": "2023-09-18T07:46:14.655Z"
  },
  "err": {
    "stack": "TypeError: Cannot read properties of undefined (reading 'withVideoOrPlaylist')\n    at generateVideoMiniature (/var/www/peertube/versions/peertube-v5.2.1/dist/server/lib/thumbnail.js:82:92)\n    at /var/www/peertube/versions/peertube-v5.2.1/dist/server/lib/job-queue/handlers/video-live-ending.js:111:72\n    at Generator.next (<anonymous>)\n    at fulfilled (/var/www/peertube/versions/peertube-v5.2.1/node_modules/tslib/tslib.js:164:62)",
    "message": "Cannot read properties of undefined (reading 'withVideoOrPlaylist')"
  }
}

error[18/09/2023 09:52:55] Cannot execute job 10 in queue video-live-ending.

{
  "payload": {
    "videoId": 34528,
    "replayDirectory": "/var/www/peertube/storage/streaming-playlists/hls/c09e9d24-00bf-4679-aaf7-1eaac120cecb/replay/2023-09-18T07:47:49.370Z",
    "liveSessionId": 53,
    "streamingPlaylistId": 361054,
    "publishedAt": "2023-09-18T07:46:14.655Z"
  },
  "err": {
    "stack": "TypeError: Cannot read properties of undefined (reading 'withVideoOrPlaylist')\n    at generateVideoMiniature (/var/www/peertube/versions/peertube-v5.2.1/dist/server/lib/thumbnail.js:82:92)\n    at /var/www/peertube/versions/peertube-v5.2.1/dist/server/lib/job-queue/handlers/video-live-ending.js:111:72\n    at Generator.next (<anonymous>)\n    at fulfilled (/var/www/peertube/versions/peertube-v5.2.1/node_modules/tslib/tslib.js:164:62)",
    "message": "Cannot read properties of undefined (reading 'withVideoOrPlaylist')"
  }
}

error[18/09/2023 09:53:56] Remote runner prunner-fossninja-org had an error with job 74a77cc4-4dbd-400b-b22d-a3e5a99dd21e (live-rtmp-hls-transcoding)

{
  "errorMessage": "ffprobe exited with code 1\nffprobe version 5.1.3-1 Copyright (c) 2007-2022 the FFmpeg developers\n  built with gcc 12 (Debian 12.2.0-14)\n  configuration: --prefix=/usr --extra-version=1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\n  libavutil      57. 28.100 / 57. 28.100\n  libavcodec     59. 37.100 / 59. 37.100\n  libavformat    59. 27.100 / 59. 27.100\n  libavdevice    59.  7.100 / 59.  7.100\n  libavfilter     8. 44.100 /  8. 44.100\n  libswscale      6.  7.100 /  6.  7.100\n  libswresample   4.  7.100 /  4.  7.100\n  libpostproc    56.  6.100 / 56.  6.100\nrtmp://www.yiny.org:1935/live/17d9a9f0-3e07-47d9-b3af-aa356171dc8c: Input/output error\n",
  "totalFailures": 1,
  "tags": [
    "api",
    "runner",
    "prunner-fossninja-org",
    "74a77cc4-4dbd-400b-b22d-a3e5a99dd21e",
    "live-rtmp-hls-transcoding"
  ]
}

error[18/09/2023 09:56:28] Cannot update last runner contact for yiny

{
  "err": {
    "stack": "Error\n    at Query.run (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)\n    at /var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/sequelize.js:315:28\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)\n    at async PostgresQueryInterface.update (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/abstract/query-interface.js:355:12)\n    at async RunnerModel.save (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:2490:35)\n    at async /var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/sequelize.js:507:18",
    "message": "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\nparmi les transactions",
    "name": "SequelizeDatabaseError",
    "parent": {
      "stack": "error: n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\nparmi les transactions\n    at Parser.parseErrorMessage (/var/www/peertube/versions/peertube-v5.2.1/node_modules/pg-protocol/dist/parser.js:287:98)\n    at Parser.handlePacket (/var/www/peertube/versions/peertube-v5.2.1/node_modules/pg-protocol/dist/parser.js:126:29)\n    at Parser.parse (/var/www/peertube/versions/peertube-v5.2.1/node_modules/pg-protocol/dist/parser.js:39:38)\n    at Socket.<anonymous> (/var/www/peertube/versions/peertube-v5.2.1/node_modules/pg-protocol/dist/index.js:11:42)\n    at Socket.emit (node:events:513:28)\n    at addChunk (node:internal/streams/readable:315:12)\n    at readableAddChunk (node:internal/streams/readable:289:9)\n    at Socket.Readable.push (node:internal/streams/readable:228:10)\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)",
      "message": "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\nparmi les transactions",
      "length": 323,
      "name": "error",
      "severity": "ERREUR",
      "code": "40001",
      "detail": "Reason code: Canceled on identification as a pivot, during write.",
      "hint": "La transaction pourrait réussir après une nouvelle tentative.",
      "file": "predicate.c",
      "line": "4819",
      "routine": "OnConflict_CheckForSerializationFailure",
      "sql": "UPDATE \"runner\" SET \"lastContact\"=$1,\"updatedAt\"=$2 WHERE \"id\" = $3",
      "parameters": [
        "2023-09-18 07:56:28.785 +00:00",
        "2023-09-18 07:56:28.847 +00:00",
        1
      ]
    },
    "sql": "UPDATE \"runner\" SET \"lastContact\"=$1,\"updatedAt\"=$2 WHERE \"id\" = $3"
  },
  "tags": [
    "runner",
    "yiny"
  ]
}

error[18/09/2023 09:56:28] Error in controller.

{
  "err": "Error\n    at Query.run (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)\n    at /var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/sequelize.js:315:28\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)\n    at async PostgresQueryInterface.select (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async Function.findAll (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:1140:21)\n    at async Function.findOne (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:1240:12)\n    at async self.reload (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:2562:22)",
  "sql": "SELECT \"RunnerJobModel\".\"id\", \"RunnerJobModel\".\"uuid\", \"RunnerJobModel\".\"type\", \"RunnerJobModel\".\"payload\", \"RunnerJobModel\".\"privatePayload\", \"RunnerJobModel\".\"state\", \"RunnerJobModel\".\"failures\", \"RunnerJobModel\".\"error\", \"RunnerJobModel\".\"priority\", \"RunnerJobModel\".\"processingJobToken\", \"RunnerJobModel\".\"progress\", \"RunnerJobModel\".\"startedAt\", \"RunnerJobModel\".\"finishedAt\", \"RunnerJobModel\".\"dependsOnRunnerJobId\", \"RunnerJobModel\".\"runnerId\", \"RunnerJobModel\".\"createdAt\", \"RunnerJobModel\".\"updatedAt\", \"Runner\".\"id\" AS \"Runner.id\", \"Runner\".\"runnerToken\" AS \"Runner.runnerToken\", \"Runner\".\"name\" AS \"Runner.name\", \"Runner\".\"description\" AS \"Runner.description\", \"Runner\".\"lastContact\" AS \"Runner.lastContact\", \"Runner\".\"ip\" AS \"Runner.ip\", \"Runner\".\"runnerRegistrationTokenId\" AS \"Runner.runnerRegistrationTokenId\", \"Runner\".\"createdAt\" AS \"Runner.createdAt\", \"Runner\".\"updatedAt\" AS \"Runner.updatedAt\" FROM \"runnerJob\" AS \"RunnerJobModel\" LEFT OUTER JOIN \"runner\" AS \"Runner\" ON \"RunnerJobModel\".\"runnerId\" = \"Runner\".\"id\" WHERE \"RunnerJobModel\".\"id\" = 57;"
}

error[18/09/2023 09:56:28] Error in controller.

{
  "err": "Error\n    at Query.run (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)\n    at /var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/sequelize.js:315:28\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)\n    at async PostgresQueryInterface.select (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async Function.findAll (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:1140:21)\n    at async Function.findOne (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:1240:12)\n    at async self.reload (/var/www/peertube/versions/peertube-v5.2.1/node_modules/sequelize/lib/model.js:2562:22)",
  "sql": "SELECT \"RunnerJobModel\".\"id\", \"RunnerJobModel\".\"uuid\", \"RunnerJobModel\".\"type\", \"RunnerJobModel\".\"payload\", \"RunnerJobModel\".\"privatePayload\", \"RunnerJobModel\".\"state\", \"RunnerJobModel\".\"failures\", \"RunnerJobModel\".\"error\", \"RunnerJobModel\".\"priority\", \"RunnerJobModel\".\"processingJobToken\", \"RunnerJobModel\".\"progress\", \"RunnerJobModel\".\"startedAt\", \"RunnerJobModel\".\"finishedAt\", \"RunnerJobModel\".\"dependsOnRunnerJobId\", \"RunnerJobModel\".\"runnerId\", \"RunnerJobModel\".\"createdAt\", \"RunnerJobModel\".\"updatedAt\", \"Runner\".\"id\" AS \"Runner.id\", \"Runner\".\"runnerToken\" AS \"Runner.runnerToken\", \"Runner\".\"name\" AS \"Runner.name\", \"Runner\".\"description\" AS \"Runner.description\", \"Runner\".\"lastContact\" AS \"Runner.lastContact\", \"Runner\".\"ip\" AS \"Runner.ip\", \"Runner\".\"runnerRegistrationTokenId\" AS \"Runner.runnerRegistrationTokenId\", \"Runner\".\"createdAt\" AS \"Runner.createdAt\", \"Runner\".\"updatedAt\" AS \"Runner.updatedAt\" FROM \"runnerJob\" AS \"RunnerJobModel\" LEFT OUTER JOIN \"runner\" AS \"Runner\" ON \"RunnerJobModel\".\"runnerId\" = \"Runner\".\"id\" WHERE \"RunnerJobModel\".\"id\" = 57;"
}

Here are some logs on the runners:

sept. 18 07:56:28 yiny prunner[1914701]: [07:56:28.889] ERROR (1914701): Cannot request/accept job on https://www.yiny.org for runner yiny
sept. 18 07:56:28 yiny prunner[1914701]:     err: {
sept. 18 07:56:28 yiny prunner[1914701]:       "type": "Error",
sept. 18 07:56:28 yiny prunner[1914701]:       "message": "Expected status 200, got 500. \nThe server responded: \"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\nparmi les transactions\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
sept. 18 07:56:28 yiny prunner[1914701]:       "stack":
sept. 18 07:56:28 yiny prunner[1914701]:           Error: Expected status 200, got 500.
sept. 18 07:56:28 yiny prunner[1914701]:           The server responded: "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture
sept. 18 07:56:28 yiny prunner[1914701]:           parmi les transactions".
sept. 18 07:56:28 yiny prunner[1914701]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
sept. 18 07:56:28 yiny prunner[1914701]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77227:14)
sept. 18 07:56:28 yiny prunner[1914701]:               at makePostBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77169:10)
sept. 18 07:56:28 yiny prunner[1914701]:               at RunnerJobsCommand.postBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77298:12)
sept. 18 07:56:28 yiny prunner[1914701]:               at RunnerJobsCommand.accept (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77684:28)
sept. 18 07:56:28 yiny prunner[1914701]:               at RunnerServer.tryToExecuteJobAsync (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88081:45)
sept. 18 07:56:28 yiny prunner[1914701]:               at RunnerServer.checkAvailableJobs (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88047:20)
sept. 18 07:56:28 yiny prunner[1914701]:               at processTicksAndRejections (node:internal/process/task_queues:96:5)
sept. 18 07:56:28 yiny prunner[1914701]:           ----
sept. 18 07:56:28 yiny prunner[1914701]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77230:19
sept. 18 07:56:28 yiny prunner[1914701]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48825:17
sept. 18 07:56:28 yiny prunner[1914701]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48811:17)
sept. 18 07:56:28 yiny prunner[1914701]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48701:27)
sept. 18 07:56:28 yiny prunner[1914701]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48669:18)
sept. 18 07:56:28 yiny prunner[1914701]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48673:11
sept. 18 07:56:28 yiny prunner[1914701]:               at Test.Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48242:7)
sept. 18 07:56:28 yiny prunner[1914701]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48394:22
sept. 18 07:56:28 yiny prunner[1914701]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47644:11)
sept. 18 07:56:28 yiny prunner[1914701]:               at IncomingMessage.emit (node:events:525:35)
sept. 18 07:56:28 yiny prunner[1914701]:       "res": {
sept. 18 07:56:28 yiny prunner[1914701]:         "req": {
sept. 18 07:56:28 yiny prunner[1914701]:           "method": "POST",
sept. 18 07:56:28 yiny prunner[1914701]:           "url": "https://www.yiny.org/api/v1/runners/jobs/80754f40-5ca8-4b06-b721-418de6254059/accept",
sept. 18 07:56:28 yiny prunner[1914701]:           "data": {
sept. 18 07:56:28 yiny prunner[1914701]:             "runnerToken": "***************"
sept. 18 07:56:28 yiny prunner[1914701]:           },
sept. 18 07:56:28 yiny prunner[1914701]:           "headers": {
sept. 18 07:56:28 yiny prunner[1914701]:             "content-type": "application/json"
sept. 18 07:56:28 yiny prunner[1914701]:           }
sept. 18 07:56:28 yiny prunner[1914701]:         },
sept. 18 07:56:28 yiny prunner[1914701]:         "header": {
sept. 18 07:56:28 yiny prunner[1914701]:           "server": "nginx/1.18.0",
sept. 18 07:56:28 yiny prunner[1914701]:           "date": "Mon, 18 Sep 2023 07:56:28 GMT",
sept. 18 07:56:28 yiny prunner[1914701]:           "content-type": "application/problem+json; charset=utf-8",
sept. 18 07:56:28 yiny prunner[1914701]:           "content-length": "376",
sept. 18 07:56:28 yiny prunner[1914701]:           "connection": "close",
sept. 18 07:56:28 yiny prunner[1914701]:           "x-powered-by": "PeerTube",
sept. 18 07:56:28 yiny prunner[1914701]:           "x-frame-options": "DENY",
sept. 18 07:56:28 yiny prunner[1914701]:           "tk": "N",
sept. 18 07:56:28 yiny prunner[1914701]:           "access-control-allow-origin": "*",
sept. 18 07:56:28 yiny prunner[1914701]:           "access-control-allow-credentials": "true",
sept. 18 07:56:28 yiny prunner[1914701]:           "access-control-expose-headers": "Retry-After",
sept. 18 07:56:28 yiny prunner[1914701]:           "x-ratelimit-limit": "50",
sept. 18 07:56:28 yiny prunner[1914701]:           "x-ratelimit-remaining": "48",
sept. 18 07:56:28 yiny prunner[1914701]:           "x-ratelimit-reset": "1695023790",
sept. 18 07:56:28 yiny prunner[1914701]:           "etag": "W/\"178-pDOhowUBGxqpLBTdWGlvZH2d+Po\""
sept. 18 07:56:28 yiny prunner[1914701]:         },
sept. 18 07:56:28 yiny prunner[1914701]:         "status": 500,
sept. 18 07:56:28 yiny prunner[1914701]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/SequelizeDatabaseError\",\"detail\":\"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\\nparmi les transactions\",\"status\":500,\"code\":\"SequelizeDatabaseError\",\"error\":\"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\\nparmi les transactions\"}"
sept. 18 07:56:28 yiny prunner[1914701]:       }
sept. 18 07:56:28 yiny prunner[1914701]:     }

I generate the live using ffmpeg (see the "steps to reproduce" section). Here are the console content when the live fails:

ffmpeg version 5.1.3-1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[Parsed_drawtext_2 @ 0x5637b8988380] Using "/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf"
Input #0, lavfi, from 'aevalsrc=0 [out1]; testsrc=s=1280x720,drawtext=borderw=5:fontcolor=white:fontsize=30:text='%{localtime}/%{pts\:hms}':x=\(w-text_w\)/2:y=\(h-text_h-line_h\)/2 [out0]':
  Duration: N/A, start: 0.000000, bitrate: 2822 kb/s
  Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn
  Stream #0:1: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (pcm_f64le (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x5637b89b02c0] using SAR=1/1
[libx264 @ 0x5637b89b02c0] frame MB size (80x45) > level limit (1620)
[libx264 @ 0x5637b89b02c0] MB rate (90000) > level limit (40500)
[libx264 @ 0x5637b89b02c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5637b89b02c0] profile Constrained Baseline, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x5637b89b02c0] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=0 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://www.yiny.org:1935/live/17d9a9f0-3e07-47d9-b3af-aa356171dc8c':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 1k tbn
    Metadata:
      encoder         : Lavc59.37.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, mono, fltp, 69 kb/s
    Metadata:
      encoder         : Lavc59.37.100 aac
av_interleaved_write_frame(): Connection reset by peer30.25 bitrate= 220.5kbits/s speed=0.997x    
    Last message repeated 55 times
[flv @ 0x5637b89abf80] Failed to update header with correct duration.
[flv @ 0x5637b89abf80] Failed to update header with correct filesize.
Error writing trailer of rtmp://www.yiny.org:1935/live/17d9a9f0-*************: Connection reset by peer
frame=  764 fps= 25 q=-1.0 Lsize=     820kB time=00:00:30.53 bitrate= 219.9kbits/s speed=0.994x    
video:853kB audio:5kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Error closing file rtmp://www.yiny.org:1935/live/17d9a9f0-****************: Broken pipe
[libx264 @ 0x5637b89b02c0] frame I:4     Avg QP:11.79  size: 21172
[libx264 @ 0x5637b89b02c0] frame P:760   Avg QP:16.04  size:  1037
[libx264 @ 0x5637b89b02c0] mb I  I16..4: 92.5%  0.0%  7.5%
[libx264 @ 0x5637b89b02c0] mb P  I16..4:  2.8%  0.0%  0.1%  P16..4:  6.2%  0.4%  0.1%  0.0%  0.0%    skip:9

Steps to reproduce

  1. Create a permanent live (with automatic replay)
  2. Start streaming (see below for the streaming script)
  3. ctrl+c to stop the stream
  4. wait 1 second, try to launch ffmpeg again
  5. wait a few seconds for the error

If you wait 15 or 20 seconds on step 4, everything works fine.

Here is the ffmpeg commande line:


ffmpeg -re -f lavfi -i "aevalsrc=0 [out1]; testsrc=s=1280x720,drawtext=borderw=5:fontcolor=white:fontsize=30:text='%{localtime}/%{pts\:hms}':x=\(w-text_w\)/2:y=\(h-text_h-line_h\)/2 [out0]" \
  -acodec aac -vcodec h264 -strict -2 -pix_fmt yuv420p -profile:v baseline -level 3.0 -f flv rtmp://www.yiny.org:1935/live/************

Note: I have 3 runners connected to the instance (1 on the instance itself, 2 remotes, same result for boths)

Describe the expected behavior

Should not fail.

Additional information

agates commented 1 year ago

I am noticing similar behavior

Chocobozzz commented 1 year ago

Hi,

Can you paste info logs just around error[18/09/2023 09:52:23] Cannot execute job 9 in queue video-live-ending. so I can also debug this error? I'm looking for this log in particular.

After [07:56:28.889] ERROR (1914701): Cannot request/accept job on https://www.yiny.org for runner yiny error, your runner doesn't retry to request new jobs after a few seconds?

JohnXLivingston commented 1 year ago

Can you paste info logs just around error[18/09/2023 09:52:23] Cannot execute job 9 in queue video-live-ending. so I can also debug this error? I'm looking for this log in particular.

Oops... logs have rotated, last available log is the same day, but 5 hours after. i'll try to get the log file from my backup.

JohnXLivingston commented 1 year ago

Can't find the log @Chocobozzz. Git blame says it was added september the 1st, but last release was august 30. This log does not exist in v5.2.1 :/

After [07:56:28.889] ERROR (1914701): Cannot request/accept job on https://www.yiny.org for runner yiny error, your runner doesn't retry to request new jobs after a few seconds?

I don't remember. There are 3 runners for this server, and i don't notice any other issue. The live can be resumed after a few seconds.

Chocobozzz commented 1 year ago

Git blame says it was added september the 1st, but last release was august 30. This log does not exist in v5.2.1 :/

Oup's sorry about that. We'll see in the next release then :)

The live can be resumed after a few seconds.

When you cut your live, it's a normal behaviour that you have to wait a few seconds before retrying (1 to 3 seconds I guess). But 20 seconds is too much.

JohnXLivingston commented 1 year ago

When you cut your live, it's a normal behaviour that you have to wait a few seconds before retrying (1 to 3 seconds I guess). But 20 seconds is too much.

Oh, i didn't know. I just retried (same conditions). I was able to resume the live after 10 seconds, but it failed after a few seconds. In the runner job list, there were 2 "live-rtmp-hls-transcoding" jobs, both in "Processing" states. Then one was "Completed", the other "Errored" (on 2 different runners).

I don't really undertand what's happening, i don't know enough about how lives are handled by Peertube. If you want, we can meet on a visio so we can test together. Send me a mail if interested.

Chocobozzz commented 8 months ago

Hi @JohnXLivingston

Do you still have the issue with peertube 6.0.3 and latest peertube-runner (0.0.10)?

JohnXLivingston commented 8 months ago

Still have the bug.

The link for the log you wanted is dead. Do you remember what i have to look for?

JohnXLivingston commented 8 months ago

Was it this one?

logger.info(`Assigning replays ${replayDirectory} to video ${video.uuid}.`, { concatenatedTsFiles, ...lTags(video.uuid) })
JohnXLivingston commented 8 months ago

Here is what i got (debug level=info):

info[15/02/2024 10:04:32] rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 probing took 3111 ms (bitrate: NaN, fps: 25, resolution: 720)

{
  "tags": [
    "live",
    "UH2R40AZ",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:04:32] Handling live video of original resolution 720.

{
  "allResolutions": [
    480,
    720,
    240,
    144
  ],
  "tags": [
    "live",
    "UH2R40AZ",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:04:43] Master playlist file for a63f229f-0166-4928-9d5f-081c8fdabcc4 has been created

{
  "tags": [
    "live",
    "UH2R40AZ",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:04:43] Will publish and federate live https://videos.john-livingston.fr/videos/watch/a63f229f-0166-4928-9d5f-081c8fdabcc4.

{
  "tags": [
    "live",
    "UH2R40AZ",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:05:08] Live session ended.

{
  "sessionId": "UH2R40AZ",
  "tags": [
    "live",
    "UH2R40AZ"
  ]
}

info[15/02/2024 10:05:11] RTMP transmuxing for video rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 ended. Scheduling cleanup

{
  "tags": [
    "live",
    "UH2R40AZ",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

warn[15/02/2024 10:05:11] Unknown live video with stream key 070a2f2d-2520-49a5-b0f0-714cdf7d8873.

{
  "tags": [
    "live",
    "WEYZGGOQ"
  ]
}

info[15/02/2024 10:05:11] Live session ended.

{
  "sessionId": "WEYZGGOQ",
  "tags": [
    "live",
    "WEYZGGOQ"
  ]
}

info[15/02/2024 10:05:39] rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 probing took 3793 ms (bitrate: NaN, fps: 25, resolution: 720)

{
  "tags": [
    "live",
    "QO8BADDE",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:05:39] Handling live video of original resolution 720.

{
  "allResolutions": [
    480,
    720,
    240,
    144
  ],
  "tags": [
    "live",
    "QO8BADDE",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:05:41] Stopping live session of video a63f229f-0166-4928-9d5f-081c8fdabcc4

{
  "error": 6,
  "tags": [
    "live",
    "QO8BADDE",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:05:41] Live session ended.

{
  "sessionId": "QO8BADDE",
  "tags": [
    "live",
    "QO8BADDE"
  ]
}

info[15/02/2024 10:05:41] RTMP transmuxing for video rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 ended. Scheduling cleanup

{
  "tags": [
    "live",
    "QO8BADDE",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:00] rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 probing took 3802 ms (bitrate: NaN, fps: 25, resolution: 720)

{
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:00] Handling live video of original resolution 720.

{
  "allResolutions": [
    480,
    720,
    240,
    144
  ],
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:10] Master playlist file for a63f229f-0166-4928-9d5f-081c8fdabcc4 has been created

{
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:10] Will publish and federate live https://videos.john-livingston.fr/videos/watch/a63f229f-0166-4928-9d5f-081c8fdabcc4.

{
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:11] Stopping live session of video a63f229f-0166-4928-9d5f-081c8fdabcc4

{
  "error": 6,
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:06:11] Live session ended.

{
  "sessionId": "M8EEOF3P",
  "tags": [
    "live",
    "M8EEOF3P"
  ]
}

info[15/02/2024 10:06:11] RTMP transmuxing for video rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 ended. Scheduling cleanup

{
  "tags": [
    "live",
    "M8EEOF3P",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:08:24] rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 probing took 3793 ms (bitrate: NaN, fps: 25, resolution: 720)

{
  "tags": [
    "live",
    "TKKYYHKF",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:08:24] Handling live video of original resolution 720.

{
  "allResolutions": [
    480,
    720,
    240,
    144
  ],
  "tags": [
    "live",
    "TKKYYHKF",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:08:34] Master playlist file for a63f229f-0166-4928-9d5f-081c8fdabcc4 has been created

{
  "tags": [
    "live",
    "TKKYYHKF",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:08:34] Will publish and federate live https://videos.john-livingston.fr/videos/watch/a63f229f-0166-4928-9d5f-081c8fdabcc4.

{
  "tags": [
    "live",
    "TKKYYHKF",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:10:12] Processing video live ending for 98899.

{
  "payload": {
    "videoId": 98899,
    "replayDirectory": "/srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:04:32.882Z",
    "liveSessionId": 7,
    "streamingPlaylistId": 626818,
    "publishedAt": "2024-02-15T09:04:43.676Z"
  },
  "tags": [
    "live",
    "job"
  ]
}

info[15/02/2024 10:10:12] Assigning replays /srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:04:32.882Z to video 78b1f7cd-b3cf-4100-92a9-e772026ef07c.

{
  "concatenatedTsFiles": [
    "concat-0.ts",
    "concat-1.ts",
    "concat-2.ts",
    "concat-3.ts"
  ],
  "tags": [
    "live",
    "job",
    "78b1f7cd-b3cf-4100-92a9-e772026ef07c"
  ]
}

info[15/02/2024 10:10:42] Processing video live ending for 98899.

{
  "payload": {
    "videoId": 98899,
    "replayDirectory": "/srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:05:39.241Z",
    "liveSessionId": 8,
    "streamingPlaylistId": 626819,
    "publishedAt": "2024-02-15T09:04:43.676Z"
  },
  "tags": [
    "live",
    "job"
  ]
}

info[15/02/2024 10:10:42] No replay files found for live a63f229f-0166-4928-9d5f-081c8fdabcc4, skipping video replay creation.

{
  "tags": [
    "live",
    "job",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:11:12] Processing video live ending for 98899.

{
  "payload": {
    "videoId": 98899,
    "replayDirectory": "/srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:06:00.913Z",
    "liveSessionId": 9,
    "streamingPlaylistId": 626820,
    "publishedAt": "2024-02-15T09:06:10.592Z"
  },
  "tags": [
    "live",
    "job"
  ]
}

info[15/02/2024 10:11:12] Assigning replays /srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:06:00.913Z to video c02d0b7c-f11e-4027-b280-85222cabb21a.

{
  "concatenatedTsFiles": [
    "concat-0.ts",
    "concat-1.ts",
    "concat-2.ts",
    "concat-3.ts"
  ],
  "tags": [
    "live",
    "job",
    "c02d0b7c-f11e-4027-b280-85222cabb21a"
  ]
}

info[15/02/2024 10:12:54] Live session ended.

{
  "sessionId": "TKKYYHKF",
  "tags": [
    "live",
    "TKKYYHKF"
  ]
}

info[15/02/2024 10:12:56] RTMP transmuxing for video rtmp://127.0.0.1:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873 ended. Scheduling cleanup

{
  "tags": [
    "live",
    "TKKYYHKF",
    "a63f229f-0166-4928-9d5f-081c8fdabcc4"
  ]
}

info[15/02/2024 10:17:58] Processing video live ending for 98899.

{
  "payload": {
    "videoId": 98899,
    "replayDirectory": "/srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:08:24.739Z",
    "liveSessionId": 10,
    "streamingPlaylistId": 626823,
    "publishedAt": "2024-02-15T09:08:34.167Z"
  },
  "tags": [
    "live",
    "job"
  ]
}

info[15/02/2024 10:17:58] Assigning replays /srv/peertube/storage/streaming-playlists/hls/a63f229f-0166-4928-9d5f-081c8fdabcc4/replay/2024-02-15T09:08:24.739Z to video 46f29c11-74e9-43ad-a418-b903eb487113.

{
  "concatenatedTsFiles": [
    "concat-0.ts",
    "concat-1.ts",
    "concat-2.ts",
    "concat-3.ts"
  ],
  "tags": [
    "live",
    "job",
    "46f29c11-74e9-43ad-a418-b903eb487113"
  ]
}

I used the same script as in the first issue post. I tried to resume several times.

PS: i know there is a live secret key in the log, but i deleted it before posting.

JohnXLivingston commented 8 months ago

And here is what i got in the runner job, when i stop the script using ctrl+c:

image

(the error message at the end seems to be a bug, no?)

Chocobozzz commented 8 months ago

Can you also paste runner logs?

JohnXLivingston commented 8 months ago

Sure. Here are the log of the runner called "prunner":

févr. 15 10:04:34 prunner prunner[1476]: [10:04:34.033] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:04:34 prunner prunner[1476]: [10:04:34.217] ERROR (1476): Cannot request/accept job on https://videos.john-livingston.fr for runner prunner-fossninja-org
févr. 15 10:04:34 prunner prunner[1476]:     err: {
févr. 15 10:04:34 prunner prunner[1476]:       "type": "Error",
févr. 15 10:04:34 prunner prunner[1476]:       "message": "Expected status 200, got 500. \nThe server responded: \"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\nparmi les transactions\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:04:34 prunner prunner[1476]:       "stack":
févr. 15 10:04:34 prunner prunner[1476]:           Error: Expected status 200, got 500.
févr. 15 10:04:34 prunner prunner[1476]:           The server responded: "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture
févr. 15 10:04:34 prunner prunner[1476]:           parmi les transactions".
févr. 15 10:04:34 prunner prunner[1476]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:04:34 prunner prunner[1476]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:04:34 prunner prunner[1476]:               at makePostBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77808:10)
févr. 15 10:04:34 prunner prunner[1476]:               at RunnerJobsCommand.postBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77937:12)
févr. 15 10:04:34 prunner prunner[1476]:               at RunnerJobsCommand.accept (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78323:28)
févr. 15 10:04:34 prunner prunner[1476]:               at RunnerServer.tryToExecuteJobAsync (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88716:45)
févr. 15 10:04:34 prunner prunner[1476]:               at RunnerServer.checkAvailableJobs (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88682:20)
févr. 15 10:04:34 prunner prunner[1476]:               at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
févr. 15 10:04:34 prunner prunner[1476]:           ----
févr. 15 10:04:34 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:04:34 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:04:34 prunner prunner[1476]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:04:34 prunner prunner[1476]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:04:34 prunner prunner[1476]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:04:34 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:04:34 prunner prunner[1476]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:04:34 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:04:34 prunner prunner[1476]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:04:34 prunner prunner[1476]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:04:34 prunner prunner[1476]:       "res": {
févr. 15 10:04:34 prunner prunner[1476]:         "req": {
févr. 15 10:04:34 prunner prunner[1476]:           "method": "POST",
févr. 15 10:04:34 prunner prunner[1476]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/0a689213-d6ce-4f67-9d48-6786df3666e6/accept",
févr. 15 10:04:34 prunner prunner[1476]:           "data": {
févr. 15 10:04:34 prunner prunner[1476]:             "runnerToken": "ptrt-3986d4e8-85f1-4acf-a79e-f119c9cec0ee"
févr. 15 10:04:34 prunner prunner[1476]:           },
févr. 15 10:04:34 prunner prunner[1476]:           "headers": {
févr. 15 10:04:34 prunner prunner[1476]:             "content-type": "application/json"
févr. 15 10:04:34 prunner prunner[1476]:           }
févr. 15 10:04:34 prunner prunner[1476]:         },
févr. 15 10:04:34 prunner prunner[1476]:         "header": {
févr. 15 10:04:34 prunner prunner[1476]:           "server": "nginx/1.22.1",
févr. 15 10:04:34 prunner prunner[1476]:           "date": "Thu, 15 Feb 2024 09:04:34 GMT",
févr. 15 10:04:34 prunner prunner[1476]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:04:34 prunner prunner[1476]:           "content-length": "376",
févr. 15 10:04:34 prunner prunner[1476]:           "connection": "close",
févr. 15 10:04:34 prunner prunner[1476]:           "x-powered-by": "PeerTube",
févr. 15 10:04:34 prunner prunner[1476]:           "x-frame-options": "DENY",
févr. 15 10:04:34 prunner prunner[1476]:           "tk": "N",
févr. 15 10:04:34 prunner prunner[1476]:           "access-control-allow-origin": "*",
févr. 15 10:04:34 prunner prunner[1476]:           "access-control-allow-credentials": "true",
févr. 15 10:04:34 prunner prunner[1476]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:04:34 prunner prunner[1476]:           "x-ratelimit-limit": "50",
févr. 15 10:04:34 prunner prunner[1476]:           "x-ratelimit-remaining": "48",
févr. 15 10:04:34 prunner prunner[1476]:           "x-ratelimit-reset": "1707987885",
févr. 15 10:04:34 prunner prunner[1476]:           "etag": "W/\"178-pDOhowUBGxqpLBTdWGlvZH2d+Po\""
févr. 15 10:04:34 prunner prunner[1476]:         },
févr. 15 10:04:34 prunner prunner[1476]:         "status": 500,
févr. 15 10:04:34 prunner prunner[1476]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/SequelizeDatabaseError\",\"detail\":\"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\\nparmi les transactions\",\"status\":500,\"code\":\"SequelizeDatabaseError\",\"error\":\"n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\\nparmi les transactions\"}"
févr. 15 10:04:34 prunner prunner[1476]:       }
févr. 15 10:04:34 prunner prunner[1476]:     }
févr. 15 10:04:36 prunner prunner[1476]: [10:04:36.846] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.351] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.558] INFO (1476): [https://videos.john-livingston.fr] Processing job of type live-rtmp-hls-transcoding: b13414d8-69e7-4d8e-95cf-e31f18ab6f2e
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.562] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.603] INFO (1476): Probing rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.685] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.229] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.266] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.308] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:06:01 prunner prunner[1476]: [10:06:01.316] INFO (1476): Probed rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:06:01 prunner prunner[1476]:     probe: {
févr. 15 10:06:01 prunner prunner[1476]:       "streams": [
févr. 15 10:06:01 prunner prunner[1476]:         {
févr. 15 10:06:01 prunner prunner[1476]:           "index": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "codec_name": "h264",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
févr. 15 10:06:01 prunner prunner[1476]:           "profile": "Constrained Baseline",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_type": "video",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:06:01 prunner prunner[1476]:           "width": 1280,
févr. 15 10:06:01 prunner prunner[1476]:           "height": 720,
févr. 15 10:06:01 prunner prunner[1476]:           "coded_width": 1280,
févr. 15 10:06:01 prunner prunner[1476]:           "coded_height": 720,
févr. 15 10:06:01 prunner prunner[1476]:           "closed_captions": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "film_grain": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "has_b_frames": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "sample_aspect_ratio": "1:1",
févr. 15 10:06:01 prunner prunner[1476]:           "display_aspect_ratio": "16:9",
févr. 15 10:06:01 prunner prunner[1476]:           "pix_fmt": "yuv420p",
févr. 15 10:06:01 prunner prunner[1476]:           "level": 30,
févr. 15 10:06:01 prunner prunner[1476]:           "color_range": "unknown",
févr. 15 10:06:01 prunner prunner[1476]:           "color_space": "unknown",
févr. 15 10:06:01 prunner prunner[1476]:           "color_transfer": "unknown",
févr. 15 10:06:01 prunner prunner[1476]:           "color_primaries": "unknown",
févr. 15 10:06:01 prunner prunner[1476]:           "chroma_location": "left",
févr. 15 10:06:01 prunner prunner[1476]:           "field_order": "progressive",
févr. 15 10:06:01 prunner prunner[1476]:           "refs": 1,
févr. 15 10:06:01 prunner prunner[1476]:           "is_avc": "true",
févr. 15 10:06:01 prunner prunner[1476]:           "nal_length_size": 4,
févr. 15 10:06:01 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "r_frame_rate": "25/1",
févr. 15 10:06:01 prunner prunner[1476]:           "avg_frame_rate": "25/1",
févr. 15 10:06:01 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:06:01 prunner prunner[1476]:           "start_pts": 23,
févr. 15 10:06:01 prunner prunner[1476]:           "start_time": 0.023,
févr. 15 10:06:01 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "bit_rate": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "bits_per_raw_sample": 8,
févr. 15 10:06:01 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "extradata_size": 39,
févr. 15 10:06:01 prunner prunner[1476]:           "disposition": {
févr. 15 10:06:01 prunner prunner[1476]:             "default": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "dub": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "original": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "comment": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "forced": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "captions": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "still_image": 0
févr. 15 10:06:01 prunner prunner[1476]:           }
févr. 15 10:06:01 prunner prunner[1476]:         },
févr. 15 10:06:01 prunner prunner[1476]:         {
févr. 15 10:06:01 prunner prunner[1476]:           "index": 1,
févr. 15 10:06:01 prunner prunner[1476]:           "codec_name": "aac",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_long_name": "AAC (Advanced Audio Coding)",
févr. 15 10:06:01 prunner prunner[1476]:           "profile": "LC",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_type": "audio",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:06:01 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:06:01 prunner prunner[1476]:           "sample_fmt": "fltp",
févr. 15 10:06:01 prunner prunner[1476]:           "sample_rate": 44100,
févr. 15 10:06:01 prunner prunner[1476]:           "channels": 1,
févr. 15 10:06:01 prunner prunner[1476]:           "channel_layout": "mono",
févr. 15 10:06:01 prunner prunner[1476]:           "bits_per_sample": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "r_frame_rate": "0/0",
févr. 15 10:06:01 prunner prunner[1476]:           "avg_frame_rate": "0/0",
févr. 15 10:06:01 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:06:01 prunner prunner[1476]:           "start_pts": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "start_time": 0,
févr. 15 10:06:01 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "bit_rate": 69000,
févr. 15 10:06:01 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "bits_per_raw_sample": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:           "extradata_size": 5,
févr. 15 10:06:01 prunner prunner[1476]:           "disposition": {
févr. 15 10:06:01 prunner prunner[1476]:             "default": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "dub": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "original": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "comment": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "forced": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "captions": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:06:01 prunner prunner[1476]:             "still_image": 0
févr. 15 10:06:01 prunner prunner[1476]:           }
févr. 15 10:06:01 prunner prunner[1476]:         }
févr. 15 10:06:01 prunner prunner[1476]:       ],
févr. 15 10:06:01 prunner prunner[1476]:       "format": {
févr. 15 10:06:01 prunner prunner[1476]:         "filename": "rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873",
févr. 15 10:06:01 prunner prunner[1476]:         "nb_streams": 2,
févr. 15 10:06:01 prunner prunner[1476]:         "nb_programs": 0,
févr. 15 10:06:01 prunner prunner[1476]:         "format_name": "flv",
févr. 15 10:06:01 prunner prunner[1476]:         "format_long_name": "FLV (Flash Video)",
févr. 15 10:06:01 prunner prunner[1476]:         "start_time": 0,
févr. 15 10:06:01 prunner prunner[1476]:         "duration": 0,
févr. 15 10:06:01 prunner prunner[1476]:         "size": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:         "bit_rate": "N/A",
févr. 15 10:06:01 prunner prunner[1476]:         "probe_score": 100,
févr. 15 10:06:01 prunner prunner[1476]:         "tags": {
févr. 15 10:06:01 prunner prunner[1476]:           "|RtmpSampleAccess": "false",
févr. 15 10:06:01 prunner prunner[1476]:           "encoder": "Lavf59.27.100"
févr. 15 10:06:01 prunner prunner[1476]:         }
févr. 15 10:06:01 prunner prunner[1476]:       },
févr. 15 10:06:01 prunner prunner[1476]:       "chapters": []
févr. 15 10:06:01 prunner prunner[1476]:     }
févr. 15 10:06:01 prunner prunner[1476]: [10:06:01.703] INFO (1476): Built supported ffmpeg encoders.
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.042] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.229] INFO (1476): [https://videos.john-livingston.fr] Processing job of type live-rtmp-hls-transcoding: c2732764-4ac4-4095-a77a-7023cd1e4478
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.231] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.239] INFO (1476): Probing rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.286] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:06:02 prunner prunner[1476]: [10:06:02.734] INFO (1476): Probed rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:06:02 prunner prunner[1476]:     probe: {
févr. 15 10:06:02 prunner prunner[1476]:       "streams": [
févr. 15 10:06:02 prunner prunner[1476]:         {
févr. 15 10:06:02 prunner prunner[1476]:           "index": 0,
févr. 15 10:06:02 prunner prunner[1476]:           "codec_name": "aac",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_long_name": "AAC (Advanced Audio Coding)",
févr. 15 10:06:02 prunner prunner[1476]:           "profile": "LC",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_type": "audio",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:06:02 prunner prunner[1476]:           "sample_fmt": "fltp",
févr. 15 10:06:02 prunner prunner[1476]:           "sample_rate": 44100,
févr. 15 10:06:02 prunner prunner[1476]:           "channels": 1,
févr. 15 10:06:02 prunner prunner[1476]:           "channel_layout": "mono",
févr. 15 10:06:02 prunner prunner[1476]:           "bits_per_sample": 0,
févr. 15 10:06:02 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "r_frame_rate": "0/0",
févr. 15 10:06:02 prunner prunner[1476]:           "avg_frame_rate": "0/0",
févr. 15 10:06:02 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:06:02 prunner prunner[1476]:           "start_pts": 23,
févr. 15 10:06:02 prunner prunner[1476]:           "start_time": 0.023,
févr. 15 10:06:02 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "bit_rate": 69000,
févr. 15 10:06:02 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "bits_per_raw_sample": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "extradata_size": 5,
févr. 15 10:06:02 prunner prunner[1476]:           "disposition": {
févr. 15 10:06:02 prunner prunner[1476]:             "default": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "dub": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "original": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "comment": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "forced": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "captions": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "still_image": 0
févr. 15 10:06:02 prunner prunner[1476]:           }
févr. 15 10:06:02 prunner prunner[1476]:         },
févr. 15 10:06:02 prunner prunner[1476]:         {
févr. 15 10:06:02 prunner prunner[1476]:           "index": 1,
févr. 15 10:06:02 prunner prunner[1476]:           "codec_name": "h264",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
févr. 15 10:06:02 prunner prunner[1476]:           "profile": "Constrained Baseline",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_type": "video",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:06:02 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:06:02 prunner prunner[1476]:           "width": 1280,
févr. 15 10:06:02 prunner prunner[1476]:           "height": 720,
févr. 15 10:06:02 prunner prunner[1476]:           "coded_width": 1280,
févr. 15 10:06:02 prunner prunner[1476]:           "coded_height": 720,
févr. 15 10:06:02 prunner prunner[1476]:           "closed_captions": 0,
févr. 15 10:06:02 prunner prunner[1476]:           "film_grain": 0,
févr. 15 10:06:02 prunner prunner[1476]:           "has_b_frames": 0,
févr. 15 10:06:02 prunner prunner[1476]:           "sample_aspect_ratio": "1:1",
févr. 15 10:06:02 prunner prunner[1476]:           "display_aspect_ratio": "16:9",
févr. 15 10:06:02 prunner prunner[1476]:           "pix_fmt": "yuv420p",
févr. 15 10:06:02 prunner prunner[1476]:           "level": 30,
févr. 15 10:06:02 prunner prunner[1476]:           "color_range": "unknown",
févr. 15 10:06:02 prunner prunner[1476]:           "color_space": "unknown",
févr. 15 10:06:02 prunner prunner[1476]:           "color_transfer": "unknown",
févr. 15 10:06:02 prunner prunner[1476]:           "color_primaries": "unknown",
févr. 15 10:06:02 prunner prunner[1476]:           "chroma_location": "left",
févr. 15 10:06:02 prunner prunner[1476]:           "field_order": "progressive",
févr. 15 10:06:02 prunner prunner[1476]:           "refs": 1,
févr. 15 10:06:02 prunner prunner[1476]:           "is_avc": "true",
févr. 15 10:06:02 prunner prunner[1476]:           "nal_length_size": 4,
févr. 15 10:06:02 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "r_frame_rate": "25/1",
févr. 15 10:06:02 prunner prunner[1476]:           "avg_frame_rate": "25/1",
févr. 15 10:06:02 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:06:02 prunner prunner[1476]:           "start_pts": 23,
févr. 15 10:06:02 prunner prunner[1476]:           "start_time": 0.023,
févr. 15 10:06:02 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "bit_rate": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "bits_per_raw_sample": 8,
févr. 15 10:06:02 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:           "extradata_size": 39,
févr. 15 10:06:02 prunner prunner[1476]:           "disposition": {
févr. 15 10:06:02 prunner prunner[1476]:             "default": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "dub": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "original": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "comment": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "forced": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "captions": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:06:02 prunner prunner[1476]:             "still_image": 0
févr. 15 10:06:02 prunner prunner[1476]:           }
févr. 15 10:06:02 prunner prunner[1476]:         }
févr. 15 10:06:02 prunner prunner[1476]:       ],
févr. 15 10:06:02 prunner prunner[1476]:       "format": {
févr. 15 10:06:02 prunner prunner[1476]:         "filename": "rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873",
févr. 15 10:06:02 prunner prunner[1476]:         "nb_streams": 2,
févr. 15 10:06:02 prunner prunner[1476]:         "nb_programs": 0,
févr. 15 10:06:02 prunner prunner[1476]:         "format_name": "flv",
févr. 15 10:06:02 prunner prunner[1476]:         "format_long_name": "FLV (Flash Video)",
févr. 15 10:06:02 prunner prunner[1476]:         "start_time": 0.023,
févr. 15 10:06:02 prunner prunner[1476]:         "duration": 0,
févr. 15 10:06:02 prunner prunner[1476]:         "size": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:         "bit_rate": "N/A",
févr. 15 10:06:02 prunner prunner[1476]:         "probe_score": 100,
févr. 15 10:06:02 prunner prunner[1476]:         "tags": {
févr. 15 10:06:02 prunner prunner[1476]:           "|RtmpSampleAccess": "false",
févr. 15 10:06:02 prunner prunner[1476]:           "encoder": "Lavf59.27.100"
févr. 15 10:06:02 prunner prunner[1476]:         }
févr. 15 10:06:02 prunner prunner[1476]:       },
févr. 15 10:06:02 prunner prunner[1476]:       "chapters": []
févr. 15 10:06:02 prunner prunner[1476]:     }
févr. 15 10:06:03 prunner prunner[1476]: [10:06:03.660] INFO (1476): Running live transcoding for rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:06:04 prunner prunner[1476]: [10:06:04.625] INFO (1476): Running live transcoding for rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:06:04 prunner prunner[1476]: [10:06:04.818] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.543] INFO (1476): All m3u8 playlists are created.
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.666] INFO (1476): Stopping transcoding as the job is not in processing state anymore
févr. 15 10:06:07 prunner prunner[1476]:     err: {
févr. 15 10:06:07 prunner prunner[1476]:       "type": "Error",
févr. 15 10:06:07 prunner prunner[1476]:       "message": "Expected status 204, got 400. \nThe server responded: \"Session of this live ended\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:06:07 prunner prunner[1476]:       "stack":
févr. 15 10:06:07 prunner prunner[1476]:           Error: Expected status 204, got 400.
févr. 15 10:06:07 prunner prunner[1476]:           The server responded: "Session of this live ended".
févr. 15 10:06:07 prunner prunner[1476]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:06:07 prunner prunner[1476]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:06:07 prunner prunner[1476]:               at makeUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77792:9)
févr. 15 10:06:07 prunner prunner[1476]:               at RunnerJobsCommand.postUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77944:12)
févr. 15 10:06:07 prunner prunner[1476]:               at RunnerJobsCommand.update (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78342:17)
févr. 15 10:06:07 prunner prunner[1476]:               at ProcessLiveRTMPHLSTranscoding.updateWithRetry (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88376:44)
févr. 15 10:06:07 prunner prunner[1476]:               at ProcessLiveRTMPHLSTranscoding.sendPendingChunks (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88365:28)
févr. 15 10:06:07 prunner prunner[1476]:               at FSWatcher2.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88221:24)
févr. 15 10:06:07 prunner prunner[1476]:               at FSWatcher2.emit (node:events:517:28)
févr. 15 10:06:07 prunner prunner[1476]:           ----
févr. 15 10:06:07 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:06:07 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:06:07 prunner prunner[1476]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:06:07 prunner prunner[1476]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:06:07 prunner prunner[1476]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:06:07 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:06:07 prunner prunner[1476]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:06:07 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:06:07 prunner prunner[1476]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:06:07 prunner prunner[1476]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:06:07 prunner prunner[1476]:       "res": {
févr. 15 10:06:07 prunner prunner[1476]:         "req": {
févr. 15 10:06:07 prunner prunner[1476]:           "method": "POST",
févr. 15 10:06:07 prunner prunner[1476]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/b13414d8-69e7-4d8e-95cf-e31f18ab6f2e/update",
févr. 15 10:06:07 prunner prunner[1476]:           "headers": {}
févr. 15 10:06:07 prunner prunner[1476]:         },
févr. 15 10:06:07 prunner prunner[1476]:         "header": {
févr. 15 10:06:07 prunner prunner[1476]:           "server": "nginx/1.22.1",
févr. 15 10:06:07 prunner prunner[1476]:           "date": "Thu, 15 Feb 2024 09:06:07 GMT",
févr. 15 10:06:07 prunner prunner[1476]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:06:07 prunner prunner[1476]:           "content-length": "246",
févr. 15 10:06:07 prunner prunner[1476]:           "connection": "close",
févr. 15 10:06:07 prunner prunner[1476]:           "x-powered-by": "PeerTube",
févr. 15 10:06:07 prunner prunner[1476]:           "x-frame-options": "DENY",
févr. 15 10:06:07 prunner prunner[1476]:           "tk": "N",
févr. 15 10:06:07 prunner prunner[1476]:           "access-control-allow-origin": "*",
févr. 15 10:06:07 prunner prunner[1476]:           "access-control-allow-credentials": "true",
févr. 15 10:06:07 prunner prunner[1476]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:06:07 prunner prunner[1476]:           "x-ratelimit-limit": "50",
févr. 15 10:06:07 prunner prunner[1476]:           "x-ratelimit-remaining": "46",
févr. 15 10:06:07 prunner prunner[1476]:           "x-ratelimit-reset": "1707987973",
févr. 15 10:06:07 prunner prunner[1476]:           "etag": "W/\"f6-PGaf2bDwCsdLDSclmjP/AEwbnxA\""
févr. 15 10:06:07 prunner prunner[1476]:         },
févr. 15 10:06:07 prunner prunner[1476]:         "status": 400,
févr. 15 10:06:07 prunner prunner[1476]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_processing_state\",\"detail\":\"Session of this live ended\",\"status\":400,\"code\":\"runner_job_not_in_processing_state\",\"error\":\"Session of this live ended\"}"
févr. 15 10:06:07 prunner prunner[1476]:       }
févr. 15 10:06:07 prunner prunner[1476]:     }
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.673] INFO (1476): [https://videos.john-livingston.fr] Finished processing job of type live-rtmp-hls-transcoding: b13414d8-69e7-4d8e-95cf-e31f18ab6f2e
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.674] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.717] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:07 prunner prunner[1476]: [10:06:07.752] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:06:08 prunner prunner[1476]: [10:06:08.057] INFO (1476): All m3u8 playlists are created.
févr. 15 10:06:12 prunner prunner[1476]: [10:06:12.278] INFO (1476): FFmpeg ended, sending success to server
févr. 15 10:06:12 prunner prunner[1476]: [10:06:12.280] INFO (1476): [https://videos.john-livingston.fr] Finished processing job of type live-rtmp-hls-transcoding: c2732764-4ac4-4095-a77a-7023cd1e4478
févr. 15 10:06:12 prunner prunner[1476]: [10:06:12.281] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:06:12 prunner prunner[1476]: [10:06:12.382] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:06:12 prunner prunner[1476]: [10:06:12.413] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:08:25 prunner prunner[1476]: [10:08:25.835] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:08:25 prunner prunner[1476]: [10:08:25.891] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:08:26 prunner prunner[1476]: [10:08:26.024] INFO (1476): [https://videos.john-livingston.fr] Processing job of type live-rtmp-hls-transcoding: b57431cf-8eca-4ab4-bce5-5c22f9b55781
févr. 15 10:08:26 prunner prunner[1476]: [10:08:26.026] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:08:26 prunner prunner[1476]: [10:08:26.030] INFO (1476): Probing rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:08:26 prunner prunner[1476]: [10:08:26.566] INFO (1476): Probed rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:08:26 prunner prunner[1476]:     probe: {
févr. 15 10:08:26 prunner prunner[1476]:       "streams": [
févr. 15 10:08:26 prunner prunner[1476]:         {
févr. 15 10:08:26 prunner prunner[1476]:           "index": 0,
févr. 15 10:08:26 prunner prunner[1476]:           "codec_name": "aac",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_long_name": "AAC (Advanced Audio Coding)",
févr. 15 10:08:26 prunner prunner[1476]:           "profile": "LC",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_type": "audio",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:08:26 prunner prunner[1476]:           "sample_fmt": "fltp",
févr. 15 10:08:26 prunner prunner[1476]:           "sample_rate": 44100,
févr. 15 10:08:26 prunner prunner[1476]:           "channels": 1,
févr. 15 10:08:26 prunner prunner[1476]:           "channel_layout": "mono",
févr. 15 10:08:26 prunner prunner[1476]:           "bits_per_sample": 0,
févr. 15 10:08:26 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "r_frame_rate": "0/0",
févr. 15 10:08:26 prunner prunner[1476]:           "avg_frame_rate": "0/0",
févr. 15 10:08:26 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:08:26 prunner prunner[1476]:           "start_pts": 23,
févr. 15 10:08:26 prunner prunner[1476]:           "start_time": 0.023,
févr. 15 10:08:26 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "bit_rate": 69000,
févr. 15 10:08:26 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "bits_per_raw_sample": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "extradata_size": 5,
févr. 15 10:08:26 prunner prunner[1476]:           "disposition": {
févr. 15 10:08:26 prunner prunner[1476]:             "default": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "dub": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "original": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "comment": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "forced": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "captions": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "still_image": 0
févr. 15 10:08:26 prunner prunner[1476]:           }
févr. 15 10:08:26 prunner prunner[1476]:         },
févr. 15 10:08:26 prunner prunner[1476]:         {
févr. 15 10:08:26 prunner prunner[1476]:           "index": 1,
févr. 15 10:08:26 prunner prunner[1476]:           "codec_name": "h264",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
févr. 15 10:08:26 prunner prunner[1476]:           "profile": "Constrained Baseline",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_type": "video",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:08:26 prunner prunner[1476]:           "codec_tag": "0x0000",
févr. 15 10:08:26 prunner prunner[1476]:           "width": 1280,
févr. 15 10:08:26 prunner prunner[1476]:           "height": 720,
févr. 15 10:08:26 prunner prunner[1476]:           "coded_width": 1280,
févr. 15 10:08:26 prunner prunner[1476]:           "coded_height": 720,
févr. 15 10:08:26 prunner prunner[1476]:           "closed_captions": 0,
févr. 15 10:08:26 prunner prunner[1476]:           "film_grain": 0,
févr. 15 10:08:26 prunner prunner[1476]:           "has_b_frames": 0,
févr. 15 10:08:26 prunner prunner[1476]:           "sample_aspect_ratio": "1:1",
févr. 15 10:08:26 prunner prunner[1476]:           "display_aspect_ratio": "16:9",
févr. 15 10:08:26 prunner prunner[1476]:           "pix_fmt": "yuv420p",
févr. 15 10:08:26 prunner prunner[1476]:           "level": 30,
févr. 15 10:08:26 prunner prunner[1476]:           "color_range": "unknown",
févr. 15 10:08:26 prunner prunner[1476]:           "color_space": "unknown",
févr. 15 10:08:26 prunner prunner[1476]:           "color_transfer": "unknown",
févr. 15 10:08:26 prunner prunner[1476]:           "color_primaries": "unknown",
févr. 15 10:08:26 prunner prunner[1476]:           "chroma_location": "left",
févr. 15 10:08:26 prunner prunner[1476]:           "field_order": "progressive",
févr. 15 10:08:26 prunner prunner[1476]:           "refs": 1,
févr. 15 10:08:26 prunner prunner[1476]:           "is_avc": "true",
févr. 15 10:08:26 prunner prunner[1476]:           "nal_length_size": 4,
févr. 15 10:08:26 prunner prunner[1476]:           "id": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "r_frame_rate": "25/1",
févr. 15 10:08:26 prunner prunner[1476]:           "avg_frame_rate": "25/1",
févr. 15 10:08:26 prunner prunner[1476]:           "time_base": "1/1000",
févr. 15 10:08:26 prunner prunner[1476]:           "start_pts": 23,
févr. 15 10:08:26 prunner prunner[1476]:           "start_time": 0.023,
févr. 15 10:08:26 prunner prunner[1476]:           "duration_ts": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "duration": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "bit_rate": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "max_bit_rate": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "bits_per_raw_sample": 8,
févr. 15 10:08:26 prunner prunner[1476]:           "nb_frames": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "nb_read_frames": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "nb_read_packets": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:           "extradata_size": 39,
févr. 15 10:08:26 prunner prunner[1476]:           "disposition": {
févr. 15 10:08:26 prunner prunner[1476]:             "default": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "dub": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "original": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "comment": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "lyrics": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "karaoke": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "forced": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "hearing_impaired": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "visual_impaired": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "clean_effects": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "attached_pic": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "timed_thumbnails": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "captions": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "descriptions": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "metadata": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "dependent": 0,
févr. 15 10:08:26 prunner prunner[1476]:             "still_image": 0
févr. 15 10:08:26 prunner prunner[1476]:           }
févr. 15 10:08:26 prunner prunner[1476]:         }
févr. 15 10:08:26 prunner prunner[1476]:       ],
févr. 15 10:08:26 prunner prunner[1476]:       "format": {
févr. 15 10:08:26 prunner prunner[1476]:         "filename": "rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873",
févr. 15 10:08:26 prunner prunner[1476]:         "nb_streams": 2,
févr. 15 10:08:26 prunner prunner[1476]:         "nb_programs": 0,
févr. 15 10:08:26 prunner prunner[1476]:         "format_name": "flv",
févr. 15 10:08:26 prunner prunner[1476]:         "format_long_name": "FLV (Flash Video)",
févr. 15 10:08:26 prunner prunner[1476]:         "start_time": 0.023,
févr. 15 10:08:26 prunner prunner[1476]:         "duration": 0,
févr. 15 10:08:26 prunner prunner[1476]:         "size": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:         "bit_rate": "N/A",
févr. 15 10:08:26 prunner prunner[1476]:         "probe_score": 100,
févr. 15 10:08:26 prunner prunner[1476]:         "tags": {
févr. 15 10:08:26 prunner prunner[1476]:           "|RtmpSampleAccess": "false",
févr. 15 10:08:26 prunner prunner[1476]:           "encoder": "Lavf59.27.100"
févr. 15 10:08:26 prunner prunner[1476]:         }
févr. 15 10:08:26 prunner prunner[1476]:       },
févr. 15 10:08:26 prunner prunner[1476]:       "chapters": []
févr. 15 10:08:26 prunner prunner[1476]:     }
févr. 15 10:08:28 prunner prunner[1476]: [10:08:28.494] INFO (1476): Running live transcoding for rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:08:28 prunner prunner[1476]: [10:08:28.625] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:08:31 prunner prunner[1476]: [10:08:31.861] INFO (1476): All m3u8 playlists are created.
févr. 15 10:12:56 prunner prunner[1476]: [10:12:56.486] INFO (1476): Stopping transcoding as the job is not in processing state anymore
févr. 15 10:12:56 prunner prunner[1476]:     err: {
févr. 15 10:12:56 prunner prunner[1476]:       "type": "Error",
févr. 15 10:12:56 prunner prunner[1476]:       "message": "Expected status 204, got 400. \nThe server responded: \"Session of this live ended\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:12:56 prunner prunner[1476]:       "stack":
févr. 15 10:12:56 prunner prunner[1476]:           Error: Expected status 204, got 400.
févr. 15 10:12:56 prunner prunner[1476]:           The server responded: "Session of this live ended".
févr. 15 10:12:56 prunner prunner[1476]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:12:56 prunner prunner[1476]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:12:56 prunner prunner[1476]:               at makeUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77792:9)
févr. 15 10:12:56 prunner prunner[1476]:               at RunnerJobsCommand.postUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77944:12)
févr. 15 10:12:56 prunner prunner[1476]:               at RunnerJobsCommand.update (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78342:17)
févr. 15 10:12:56 prunner prunner[1476]:               at ProcessLiveRTMPHLSTranscoding.updateWithRetry (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88376:44)
févr. 15 10:12:56 prunner prunner[1476]:               at ProcessLiveRTMPHLSTranscoding.sendDeletedChunkUpdate (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88341:17)
févr. 15 10:12:56 prunner prunner[1476]:               at FSWatcher2.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88231:16)
févr. 15 10:12:56 prunner prunner[1476]:               at FSWatcher2.emit (node:events:517:28)
févr. 15 10:12:56 prunner prunner[1476]:           ----
févr. 15 10:12:56 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:12:56 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:12:56 prunner prunner[1476]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:12:56 prunner prunner[1476]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:12:56 prunner prunner[1476]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:12:56 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:12:56 prunner prunner[1476]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:12:56 prunner prunner[1476]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:12:56 prunner prunner[1476]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:12:56 prunner prunner[1476]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:12:56 prunner prunner[1476]:       "res": {
févr. 15 10:12:56 prunner prunner[1476]:         "req": {
févr. 15 10:12:56 prunner prunner[1476]:           "method": "POST",
févr. 15 10:12:56 prunner prunner[1476]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/b57431cf-8eca-4ab4-bce5-5c22f9b55781/update",
févr. 15 10:12:56 prunner prunner[1476]:           "headers": {}
févr. 15 10:12:56 prunner prunner[1476]:         },
févr. 15 10:12:56 prunner prunner[1476]:         "header": {
févr. 15 10:12:56 prunner prunner[1476]:           "server": "nginx/1.22.1",
févr. 15 10:12:56 prunner prunner[1476]:           "date": "Thu, 15 Feb 2024 09:12:56 GMT",
févr. 15 10:12:56 prunner prunner[1476]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:12:56 prunner prunner[1476]:           "content-length": "246",
févr. 15 10:12:56 prunner prunner[1476]:           "connection": "close",
févr. 15 10:12:56 prunner prunner[1476]:           "x-powered-by": "PeerTube",
févr. 15 10:12:56 prunner prunner[1476]:           "x-frame-options": "DENY",
févr. 15 10:12:56 prunner prunner[1476]:           "tk": "N",
févr. 15 10:12:56 prunner prunner[1476]:           "access-control-allow-origin": "*",
févr. 15 10:12:56 prunner prunner[1476]:           "access-control-allow-credentials": "true",
févr. 15 10:12:56 prunner prunner[1476]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:12:56 prunner prunner[1476]:           "x-ratelimit-limit": "50",
févr. 15 10:12:56 prunner prunner[1476]:           "x-ratelimit-remaining": "34",
févr. 15 10:12:56 prunner prunner[1476]:           "x-ratelimit-reset": "1707988380",
févr. 15 10:12:56 prunner prunner[1476]:           "etag": "W/\"f6-PGaf2bDwCsdLDSclmjP/AEwbnxA\""
févr. 15 10:12:56 prunner prunner[1476]:         },
févr. 15 10:12:56 prunner prunner[1476]:         "status": 400,
févr. 15 10:12:56 prunner prunner[1476]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_processing_state\",\"detail\":\"Session of this live ended\",\"status\":400,\"code\":\"runner_job_not_in_processing_state\",\"error\":\"Session of this live ended\"}"
févr. 15 10:12:56 prunner prunner[1476]:       }
févr. 15 10:12:56 prunner prunner[1476]:     }
févr. 15 10:12:56 prunner prunner[1476]: [10:12:56.496] INFO (1476): [https://videos.john-livingston.fr] Finished processing job of type live-rtmp-hls-transcoding: b57431cf-8eca-4ab4-bce5-5c22f9b55781
févr. 15 10:12:56 prunner prunner[1476]: [10:12:56.657] INFO (1476): Checking available jobs on https://videos.john-livingston.fr

There are one other runner pluged on the instance (and this runner is plugged to 3 instances, i remove log concerning the 2 others).

Here are the logs for the other runner:

févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.031] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.245] INFO (2738): [https://videos.john-livingston.fr] Processing job of type live-rtmp-hls-transcoding: 0a689213-d6ce-4f67-9d48-6786df3666e6
févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.249] INFO (2738): Checking available jobs on https://videos.ritimo.org
févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.255] INFO (2738): Probing rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.353] INFO (2738): Checking available jobs on https://www.yiny.org
févr. 15 10:04:34 server1 prunner[2738]: [10:04:34.816] INFO (2738): Probed rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:04:34 server1 prunner[2738]:     probe: {
févr. 15 10:04:34 server1 prunner[2738]:       "streams": [
févr. 15 10:04:34 server1 prunner[2738]:         {
févr. 15 10:04:34 server1 prunner[2738]:           "index": 0,
févr. 15 10:04:34 server1 prunner[2738]:           "codec_name": "aac",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_long_name": "AAC (Advanced Audio Coding)",
févr. 15 10:04:34 server1 prunner[2738]:           "profile": "LC",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_type": "audio",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_tag": "0x0000",
févr. 15 10:04:34 server1 prunner[2738]:           "sample_fmt": "fltp",
févr. 15 10:04:34 server1 prunner[2738]:           "sample_rate": 44100,
févr. 15 10:04:34 server1 prunner[2738]:           "channels": 1,
févr. 15 10:04:34 server1 prunner[2738]:           "channel_layout": "mono",
févr. 15 10:04:34 server1 prunner[2738]:           "bits_per_sample": 0,
févr. 15 10:04:34 server1 prunner[2738]:           "id": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "r_frame_rate": "0/0",
févr. 15 10:04:34 server1 prunner[2738]:           "avg_frame_rate": "0/0",
févr. 15 10:04:34 server1 prunner[2738]:           "time_base": "1/1000",
févr. 15 10:04:34 server1 prunner[2738]:           "start_pts": 23,
févr. 15 10:04:34 server1 prunner[2738]:           "start_time": 0.023,
févr. 15 10:04:34 server1 prunner[2738]:           "duration_ts": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "duration": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "bit_rate": 69000,
févr. 15 10:04:34 server1 prunner[2738]:           "max_bit_rate": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "bits_per_raw_sample": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "nb_frames": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "nb_read_frames": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "nb_read_packets": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "extradata_size": 5,
févr. 15 10:04:34 server1 prunner[2738]:           "disposition": {
févr. 15 10:04:34 server1 prunner[2738]:             "default": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "dub": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "original": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "comment": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "lyrics": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "karaoke": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "forced": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "hearing_impaired": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "visual_impaired": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "clean_effects": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "attached_pic": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "timed_thumbnails": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "captions": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "descriptions": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "metadata": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "dependent": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "still_image": 0
févr. 15 10:04:34 server1 prunner[2738]:           }
févr. 15 10:04:34 server1 prunner[2738]:         },
févr. 15 10:04:34 server1 prunner[2738]:         {
févr. 15 10:04:34 server1 prunner[2738]:           "index": 1,
févr. 15 10:04:34 server1 prunner[2738]:           "codec_name": "h264",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
févr. 15 10:04:34 server1 prunner[2738]:           "profile": "Constrained Baseline",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_type": "video",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_tag_string": "[0][0][0][0]",
févr. 15 10:04:34 server1 prunner[2738]:           "codec_tag": "0x0000",
févr. 15 10:04:34 server1 prunner[2738]:           "width": 1280,
févr. 15 10:04:34 server1 prunner[2738]:           "height": 720,
févr. 15 10:04:34 server1 prunner[2738]:           "coded_width": 1280,
févr. 15 10:04:34 server1 prunner[2738]:           "coded_height": 720,
févr. 15 10:04:34 server1 prunner[2738]:           "closed_captions": 0,
févr. 15 10:04:34 server1 prunner[2738]:           "film_grain": 0,
févr. 15 10:04:34 server1 prunner[2738]:           "has_b_frames": 0,
févr. 15 10:04:34 server1 prunner[2738]:           "sample_aspect_ratio": "1:1",
févr. 15 10:04:34 server1 prunner[2738]:           "display_aspect_ratio": "16:9",
févr. 15 10:04:34 server1 prunner[2738]:           "pix_fmt": "yuv420p",
févr. 15 10:04:34 server1 prunner[2738]:           "level": 30,
févr. 15 10:04:34 server1 prunner[2738]:           "color_range": "unknown",
févr. 15 10:04:34 server1 prunner[2738]:           "color_space": "unknown",
févr. 15 10:04:34 server1 prunner[2738]:           "color_transfer": "unknown",
févr. 15 10:04:34 server1 prunner[2738]:           "color_primaries": "unknown",
févr. 15 10:04:34 server1 prunner[2738]:           "chroma_location": "left",
févr. 15 10:04:34 server1 prunner[2738]:           "field_order": "progressive",
févr. 15 10:04:34 server1 prunner[2738]:           "refs": 1,
févr. 15 10:04:34 server1 prunner[2738]:           "is_avc": "true",
févr. 15 10:04:34 server1 prunner[2738]:           "nal_length_size": 4,
févr. 15 10:04:34 server1 prunner[2738]:           "id": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "r_frame_rate": "25/1",
févr. 15 10:04:34 server1 prunner[2738]:           "avg_frame_rate": "25/1",
févr. 15 10:04:34 server1 prunner[2738]:           "time_base": "1/1000",
févr. 15 10:04:34 server1 prunner[2738]:           "start_pts": 23,
févr. 15 10:04:34 server1 prunner[2738]:           "start_time": 0.023,
févr. 15 10:04:34 server1 prunner[2738]:           "duration_ts": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "duration": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "bit_rate": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "max_bit_rate": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "bits_per_raw_sample": 8,
févr. 15 10:04:34 server1 prunner[2738]:           "nb_frames": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "nb_read_frames": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "nb_read_packets": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:           "extradata_size": 39,
févr. 15 10:04:34 server1 prunner[2738]:           "disposition": {
févr. 15 10:04:34 server1 prunner[2738]:             "default": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "dub": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "original": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "comment": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "lyrics": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "karaoke": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "forced": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "hearing_impaired": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "visual_impaired": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "clean_effects": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "attached_pic": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "timed_thumbnails": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "captions": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "descriptions": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "metadata": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "dependent": 0,
févr. 15 10:04:34 server1 prunner[2738]:             "still_image": 0
févr. 15 10:04:34 server1 prunner[2738]:           }
févr. 15 10:04:34 server1 prunner[2738]:         }
févr. 15 10:04:34 server1 prunner[2738]:       ],
févr. 15 10:04:34 server1 prunner[2738]:       "format": {
févr. 15 10:04:34 server1 prunner[2738]:         "filename": "rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873",
févr. 15 10:04:34 server1 prunner[2738]:         "nb_streams": 2,
févr. 15 10:04:34 server1 prunner[2738]:         "nb_programs": 0,
févr. 15 10:04:34 server1 prunner[2738]:         "format_name": "flv",
févr. 15 10:04:34 server1 prunner[2738]:         "format_long_name": "FLV (Flash Video)",
févr. 15 10:04:34 server1 prunner[2738]:         "start_time": 0.023,
févr. 15 10:04:34 server1 prunner[2738]:         "duration": 0,
févr. 15 10:04:34 server1 prunner[2738]:         "size": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:         "bit_rate": "N/A",
févr. 15 10:04:34 server1 prunner[2738]:         "probe_score": 100,
févr. 15 10:04:34 server1 prunner[2738]:         "tags": {
févr. 15 10:04:34 server1 prunner[2738]:           "|RtmpSampleAccess": "false",
févr. 15 10:04:34 server1 prunner[2738]:           "encoder": "Lavf59.27.100"
févr. 15 10:04:34 server1 prunner[2738]:         }
févr. 15 10:04:34 server1 prunner[2738]:       },
févr. 15 10:04:34 server1 prunner[2738]:       "chapters": []
févr. 15 10:04:34 server1 prunner[2738]:     }
févr. 15 10:04:35 server1 prunner[2738]: [10:04:35.167] INFO (2738): Built supported ffmpeg encoders.
févr. 15 10:04:37 server1 prunner[2738]: [10:04:37.322] INFO (2738): Running live transcoding for rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:04:41 server1 prunner[2738]: [10:04:41.057] INFO (2738): All m3u8 playlists are created.
févr. 15 10:04:45 server1 prunner[2738]: [10:04:45.477] WARN (2738): Will retry update after error
févr. 15 10:04:45 server1 prunner[2738]:     err: {
févr. 15 10:04:45 server1 prunner[2738]:       "type": "Error",
févr. 15 10:04:45 server1 prunner[2738]:       "message": "Expected status 204, got 500. \nThe server responded: \"Unexpected end of form\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:04:45 server1 prunner[2738]:       "stack":
févr. 15 10:04:45 server1 prunner[2738]:           Error: Expected status 204, got 500.
févr. 15 10:04:45 server1 prunner[2738]:           The server responded: "Unexpected end of form".
févr. 15 10:04:45 server1 prunner[2738]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:04:45 server1 prunner[2738]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:04:45 server1 prunner[2738]:               at makeUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77792:9)
févr. 15 10:04:45 server1 prunner[2738]:               at RunnerJobsCommand.postUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77944:12)
févr. 15 10:04:45 server1 prunner[2738]:               at RunnerJobsCommand.update (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78342:17)
févr. 15 10:04:45 server1 prunner[2738]:               at ProcessLiveRTMPHLSTranscoding.updateWithRetry (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88376:44)
févr. 15 10:04:45 server1 prunner[2738]:               at ProcessLiveRTMPHLSTranscoding.sendPendingChunks (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88365:28)
févr. 15 10:04:45 server1 prunner[2738]:               at FSWatcher2.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88221:24)
févr. 15 10:04:45 server1 prunner[2738]:               at FSWatcher2.emit (node:events:517:28)
févr. 15 10:04:45 server1 prunner[2738]:           ----
févr. 15 10:04:45 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:04:45 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:04:45 server1 prunner[2738]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:04:45 server1 prunner[2738]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:04:45 server1 prunner[2738]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:04:45 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:04:45 server1 prunner[2738]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:04:45 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:04:45 server1 prunner[2738]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:04:45 server1 prunner[2738]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:04:45 server1 prunner[2738]:       "res": {
févr. 15 10:04:45 server1 prunner[2738]:         "req": {
févr. 15 10:04:45 server1 prunner[2738]:           "method": "POST",
févr. 15 10:04:45 server1 prunner[2738]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/0a689213-d6ce-4f67-9d48-6786df3666e6/update",
févr. 15 10:04:45 server1 prunner[2738]:           "headers": {}
févr. 15 10:04:45 server1 prunner[2738]:         },
févr. 15 10:04:45 server1 prunner[2738]:         "header": {
févr. 15 10:04:45 server1 prunner[2738]:           "server": "nginx/1.22.1",
févr. 15 10:04:45 server1 prunner[2738]:           "date": "Thu, 15 Feb 2024 09:04:45 GMT",
févr. 15 10:04:45 server1 prunner[2738]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:04:45 server1 prunner[2738]:           "content-length": "180",
févr. 15 10:04:45 server1 prunner[2738]:           "connection": "close",
févr. 15 10:04:45 server1 prunner[2738]:           "x-powered-by": "PeerTube",
févr. 15 10:04:45 server1 prunner[2738]:           "x-frame-options": "DENY",
févr. 15 10:04:45 server1 prunner[2738]:           "tk": "N",
févr. 15 10:04:45 server1 prunner[2738]:           "access-control-allow-origin": "*",
févr. 15 10:04:45 server1 prunner[2738]:           "access-control-allow-credentials": "true",
févr. 15 10:04:45 server1 prunner[2738]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:04:45 server1 prunner[2738]:           "etag": "W/\"b4-FVcVtmVGy+bJkT9YW5ZbtT58vog\""
févr. 15 10:04:45 server1 prunner[2738]:         },
févr. 15 10:04:45 server1 prunner[2738]:         "status": 500,
févr. 15 10:04:45 server1 prunner[2738]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/Error\",\"detail\":\"Unexpected end of form\",\"status\":500,\"code\":\"Error\",\"error\":\"Unexpected end of form\"}"
févr. 15 10:04:45 server1 prunner[2738]:       }
févr. 15 10:04:45 server1 prunner[2738]:     }
févr. 15 10:05:09 server1 prunner[2738]: [10:05:09.533] INFO (2738): Stopping transcoding as the job is not in processing state anymore
févr. 15 10:05:09 server1 prunner[2738]:     err: {
févr. 15 10:05:09 server1 prunner[2738]:       "type": "Error",
févr. 15 10:05:09 server1 prunner[2738]:       "message": "Expected status 204, got 400. \nThe server responded: \"Session of this live ended\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:05:09 server1 prunner[2738]:       "stack":
févr. 15 10:05:09 server1 prunner[2738]:           Error: Expected status 204, got 400.
févr. 15 10:05:09 server1 prunner[2738]:           The server responded: "Session of this live ended".
févr. 15 10:05:09 server1 prunner[2738]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:05:09 server1 prunner[2738]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:05:09 server1 prunner[2738]:               at makeUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77792:9)
févr. 15 10:05:09 server1 prunner[2738]:               at RunnerJobsCommand.postUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77944:12)
févr. 15 10:05:09 server1 prunner[2738]:               at RunnerJobsCommand.update (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78342:17)
févr. 15 10:05:09 server1 prunner[2738]:               at ProcessLiveRTMPHLSTranscoding.updateWithRetry (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88376:44)
févr. 15 10:05:09 server1 prunner[2738]:               at ProcessLiveRTMPHLSTranscoding.sendPendingChunks (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88365:28)
févr. 15 10:05:09 server1 prunner[2738]:               at FSWatcher2.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88221:24)
févr. 15 10:05:09 server1 prunner[2738]:               at FSWatcher2.emit (node:events:517:28)
févr. 15 10:05:09 server1 prunner[2738]:           ----
févr. 15 10:05:09 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:05:09 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:05:09 server1 prunner[2738]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:05:09 server1 prunner[2738]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:05:09 server1 prunner[2738]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:05:09 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:05:09 server1 prunner[2738]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:05:09 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:05:09 server1 prunner[2738]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:05:09 server1 prunner[2738]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:05:09 server1 prunner[2738]:       "res": {
févr. 15 10:05:09 server1 prunner[2738]:         "req": {
févr. 15 10:05:09 server1 prunner[2738]:           "method": "POST",
févr. 15 10:05:09 server1 prunner[2738]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/0a689213-d6ce-4f67-9d48-6786df3666e6/update",
févr. 15 10:05:09 server1 prunner[2738]:           "headers": {}
févr. 15 10:05:09 server1 prunner[2738]:         },
févr. 15 10:05:09 server1 prunner[2738]:         "header": {
févr. 15 10:05:09 server1 prunner[2738]:           "server": "nginx/1.22.1",
févr. 15 10:05:09 server1 prunner[2738]:           "date": "Thu, 15 Feb 2024 09:05:09 GMT",
févr. 15 10:05:09 server1 prunner[2738]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:05:09 server1 prunner[2738]:           "content-length": "246",
févr. 15 10:05:09 server1 prunner[2738]:           "connection": "close",
févr. 15 10:05:09 server1 prunner[2738]:           "x-powered-by": "PeerTube",
févr. 15 10:05:09 server1 prunner[2738]:           "x-frame-options": "DENY",
févr. 15 10:05:09 server1 prunner[2738]:           "tk": "N",
févr. 15 10:05:09 server1 prunner[2738]:           "access-control-allow-origin": "*",
févr. 15 10:05:09 server1 prunner[2738]:           "access-control-allow-credentials": "true",
févr. 15 10:05:09 server1 prunner[2738]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:05:09 server1 prunner[2738]:           "x-ratelimit-limit": "50",
févr. 15 10:05:09 server1 prunner[2738]:           "x-ratelimit-remaining": "49",
févr. 15 10:05:09 server1 prunner[2738]:           "x-ratelimit-reset": "1707987920",
févr. 15 10:05:09 server1 prunner[2738]:           "etag": "W/\"f6-PGaf2bDwCsdLDSclmjP/AEwbnxA\""
févr. 15 10:05:09 server1 prunner[2738]:         },
févr. 15 10:05:09 server1 prunner[2738]:         "status": 400,
févr. 15 10:05:09 server1 prunner[2738]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_processing_state\",\"detail\":\"Session of this live ended\",\"status\":400,\"code\":\"runner_job_not_in_processing_state\",\"error\":\"Session of this live ended\"}"
févr. 15 10:05:09 server1 prunner[2738]:       }
févr. 15 10:05:09 server1 prunner[2738]:     }
févr. 15 10:05:09 server1 prunner[2738]: [10:05:09.538] INFO (2738): [https://videos.john-livingston.fr] Finished processing job of type live-rtmp-hls-transcoding: 0a689213-d6ce-4f67-9d48-6786df3666e6
févr. 15 10:05:09 server1 prunner[2738]: [10:05:09.539] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:09 server1 prunner[2738]: [10:05:09.575] INFO (2738): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:09 server1 prunner[2738]: [10:05:09.628] INFO (2738): Checking available jobs on https://www.yiny.org
févr. 15 10:05:40 server1 prunner[2738]: [10:05:40.351] INFO (2738): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:40 server1 prunner[2738]: [10:05:40.407] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:40 server1 prunner[2738]: [10:05:40.581] ERROR (2738): Cannot request/accept job on https://videos.john-livingston.fr for runner prunner-server1
févr. 15 10:05:40 server1 prunner[2738]:     err: {
févr. 15 10:05:40 server1 prunner[2738]:       "type": "Error",
févr. 15 10:05:40 server1 prunner[2738]:       "message": "Expected status 200, got 409. \nThe server responded: \"This job is not in pending state anymore\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:05:40 server1 prunner[2738]:       "stack":
févr. 15 10:05:40 server1 prunner[2738]:           Error: Expected status 200, got 409.
févr. 15 10:05:40 server1 prunner[2738]:           The server responded: "This job is not in pending state anymore".
févr. 15 10:05:40 server1 prunner[2738]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:05:40 server1 prunner[2738]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:05:40 server1 prunner[2738]:               at makePostBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77808:10)
févr. 15 10:05:40 server1 prunner[2738]:               at RunnerJobsCommand.postBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77937:12)
févr. 15 10:05:40 server1 prunner[2738]:               at RunnerJobsCommand.accept (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78323:28)
févr. 15 10:05:40 server1 prunner[2738]:               at RunnerServer.tryToExecuteJobAsync (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88716:45)
févr. 15 10:05:40 server1 prunner[2738]:               at RunnerServer.checkAvailableJobs (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88682:20)
févr. 15 10:05:40 server1 prunner[2738]:               at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
févr. 15 10:05:40 server1 prunner[2738]:           ----
févr. 15 10:05:40 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:05:40 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:05:40 server1 prunner[2738]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:05:40 server1 prunner[2738]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:05:40 server1 prunner[2738]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:05:40 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:05:40 server1 prunner[2738]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:05:40 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:05:40 server1 prunner[2738]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:05:40 server1 prunner[2738]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:05:40 server1 prunner[2738]:       "res": {
févr. 15 10:05:40 server1 prunner[2738]:         "req": {
févr. 15 10:05:40 server1 prunner[2738]:           "method": "POST",
févr. 15 10:05:40 server1 prunner[2738]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/b13414d8-69e7-4d8e-95cf-e31f18ab6f2e/accept",
févr. 15 10:05:40 server1 prunner[2738]:           "data": {
févr. 15 10:05:40 server1 prunner[2738]:             "runnerToken": "ptrt-e16d70a0-ec77-4931-a61e-62bb274790f1"
févr. 15 10:05:40 server1 prunner[2738]:           },
févr. 15 10:05:40 server1 prunner[2738]:           "headers": {
févr. 15 10:05:40 server1 prunner[2738]:             "content-type": "application/json"
févr. 15 10:05:40 server1 prunner[2738]:           }
févr. 15 10:05:40 server1 prunner[2738]:         },
févr. 15 10:05:40 server1 prunner[2738]:         "header": {
févr. 15 10:05:40 server1 prunner[2738]:           "server": "nginx/1.22.1",
févr. 15 10:05:40 server1 prunner[2738]:           "date": "Thu, 15 Feb 2024 09:05:40 GMT",
févr. 15 10:05:40 server1 prunner[2738]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:05:40 server1 prunner[2738]:           "content-length": "268",
févr. 15 10:05:40 server1 prunner[2738]:           "connection": "close",
févr. 15 10:05:40 server1 prunner[2738]:           "x-powered-by": "PeerTube",
févr. 15 10:05:40 server1 prunner[2738]:           "x-frame-options": "DENY",
févr. 15 10:05:40 server1 prunner[2738]:           "tk": "N",
févr. 15 10:05:40 server1 prunner[2738]:           "access-control-allow-origin": "*",
févr. 15 10:05:40 server1 prunner[2738]:           "access-control-allow-credentials": "true",
févr. 15 10:05:40 server1 prunner[2738]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:05:40 server1 prunner[2738]:           "x-ratelimit-limit": "50",
févr. 15 10:05:40 server1 prunner[2738]:           "x-ratelimit-remaining": "48",
févr. 15 10:05:40 server1 prunner[2738]:           "x-ratelimit-reset": "1707987951",
févr. 15 10:05:40 server1 prunner[2738]:           "etag": "W/\"10c-8I6N5tjFkypqIhHib8PbSPJEEXc\""
févr. 15 10:05:40 server1 prunner[2738]:         },
févr. 15 10:05:40 server1 prunner[2738]:         "status": 409,
févr. 15 10:05:40 server1 prunner[2738]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_pending_state\",\"detail\":\"This job is not in pending state anymore\",\"status\":409,\"code\":\"runner_job_not_in_pending_state\",\"error\":\"This job is not in pending state anymore\"}"
févr. 15 10:05:40 server1 prunner[2738]:       }
févr. 15 10:05:40 server1 prunner[2738]:     }
févr. 15 10:05:43 server1 prunner[2738]: [10:05:43.214] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:02 server1 prunner[2738]: [10:06:02.089] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:02 server1 prunner[2738]: [10:06:02.244] ERROR (2738): Cannot request/accept job on https://videos.john-livingston.fr for runner prunner-server1
févr. 15 10:06:02 server1 prunner[2738]:     err: {
févr. 15 10:06:02 server1 prunner[2738]:       "type": "Error",
févr. 15 10:06:02 server1 prunner[2738]:       "message": "Expected status 200, got 409. \nThe server responded: \"This job is not in pending state anymore\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:06:02 server1 prunner[2738]:       "stack":
févr. 15 10:06:02 server1 prunner[2738]:           Error: Expected status 200, got 409.
févr. 15 10:06:02 server1 prunner[2738]:           The server responded: "This job is not in pending state anymore".
févr. 15 10:06:02 server1 prunner[2738]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:06:02 server1 prunner[2738]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:06:02 server1 prunner[2738]:               at makePostBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77808:10)
févr. 15 10:06:02 server1 prunner[2738]:               at RunnerJobsCommand.postBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77937:12)
févr. 15 10:06:02 server1 prunner[2738]:               at RunnerJobsCommand.accept (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78323:28)
févr. 15 10:06:02 server1 prunner[2738]:               at RunnerServer.tryToExecuteJobAsync (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88716:45)
févr. 15 10:06:02 server1 prunner[2738]:               at RunnerServer.checkAvailableJobs (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88682:20)
févr. 15 10:06:02 server1 prunner[2738]:               at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
févr. 15 10:06:02 server1 prunner[2738]:           ----
févr. 15 10:06:02 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:06:02 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:06:02 server1 prunner[2738]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:06:02 server1 prunner[2738]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:06:02 server1 prunner[2738]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:06:02 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:06:02 server1 prunner[2738]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:06:02 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:06:02 server1 prunner[2738]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:06:02 server1 prunner[2738]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:06:02 server1 prunner[2738]:       "res": {
févr. 15 10:06:02 server1 prunner[2738]:         "req": {
févr. 15 10:06:02 server1 prunner[2738]:           "method": "POST",
févr. 15 10:06:02 server1 prunner[2738]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/c2732764-4ac4-4095-a77a-7023cd1e4478/accept",
févr. 15 10:06:02 server1 prunner[2738]:           "data": {
févr. 15 10:06:02 server1 prunner[2738]:             "runnerToken": "ptrt-e16d70a0-ec77-4931-a61e-62bb274790f1"
févr. 15 10:06:02 server1 prunner[2738]:           },
févr. 15 10:06:02 server1 prunner[2738]:           "headers": {
févr. 15 10:06:02 server1 prunner[2738]:             "content-type": "application/json"
févr. 15 10:06:02 server1 prunner[2738]:           }
févr. 15 10:06:02 server1 prunner[2738]:         },
févr. 15 10:06:02 server1 prunner[2738]:         "header": {
févr. 15 10:06:02 server1 prunner[2738]:           "server": "nginx/1.22.1",
févr. 15 10:06:02 server1 prunner[2738]:           "date": "Thu, 15 Feb 2024 09:06:02 GMT",
févr. 15 10:06:02 server1 prunner[2738]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:06:02 server1 prunner[2738]:           "content-length": "268",
févr. 15 10:06:02 server1 prunner[2738]:           "connection": "close",
févr. 15 10:06:02 server1 prunner[2738]:           "x-powered-by": "PeerTube",
févr. 15 10:06:02 server1 prunner[2738]:           "x-frame-options": "DENY",
févr. 15 10:06:02 server1 prunner[2738]:           "tk": "N",
févr. 15 10:06:02 server1 prunner[2738]:           "access-control-allow-origin": "*",
févr. 15 10:06:02 server1 prunner[2738]:           "access-control-allow-credentials": "true",
févr. 15 10:06:02 server1 prunner[2738]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:06:02 server1 prunner[2738]:           "x-ratelimit-limit": "50",
févr. 15 10:06:02 server1 prunner[2738]:           "x-ratelimit-remaining": "48",
févr. 15 10:06:02 server1 prunner[2738]:           "x-ratelimit-reset": "1707987973",
févr. 15 10:06:02 server1 prunner[2738]:           "etag": "W/\"10c-8I6N5tjFkypqIhHib8PbSPJEEXc\""
févr. 15 10:06:02 server1 prunner[2738]:         },
févr. 15 10:06:02 server1 prunner[2738]:         "status": 409,
févr. 15 10:06:02 server1 prunner[2738]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_pending_state\",\"detail\":\"This job is not in pending state anymore\",\"status\":409,\"code\":\"runner_job_not_in_pending_state\",\"error\":\"This job is not in pending state anymore\"}"
févr. 15 10:06:02 server1 prunner[2738]:       }
févr. 15 10:06:02 server1 prunner[2738]:     }
févr. 15 10:06:02 server1 prunner[2738]: [10:06:02.246] INFO (2738): Checking available jobs on https://www.yiny.org
févr. 15 10:06:04 server1 prunner[2738]: [10:06:04.784] INFO (2738): Checking available jobs on https://www.yiny.org
févr. 15 10:06:04 server1 prunner[2738]: [10:06:04.819] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:06:04 server1 prunner[2738]: [10:06:04.850] INFO (2738): Checking available jobs on https://videos.ritimo.org
févr. 15 10:08:25 server1 prunner[2738]: [10:08:25.834] INFO (2738): Checking available jobs on https://videos.ritimo.org
févr. 15 10:08:25 server1 prunner[2738]: [10:08:25.931] INFO (2738): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:08:26 server1 prunner[2738]: [10:08:26.028] ERROR (2738): Cannot request/accept job on https://videos.john-livingston.fr for runner prunner-server1
févr. 15 10:08:26 server1 prunner[2738]:     err: {
févr. 15 10:08:26 server1 prunner[2738]:       "type": "Error",
févr. 15 10:08:26 server1 prunner[2738]:       "message": "Expected status 200, got 409. \nThe server responded: \"This job is not in pending state anymore\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
févr. 15 10:08:26 server1 prunner[2738]:       "stack":
févr. 15 10:08:26 server1 prunner[2738]:           Error: Expected status 200, got 409.
févr. 15 10:08:26 server1 prunner[2738]:           The server responded: "This job is not in pending state anymore".
févr. 15 10:08:26 server1 prunner[2738]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
févr. 15 10:08:26 server1 prunner[2738]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77866:14)
févr. 15 10:08:26 server1 prunner[2738]:               at makePostBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77808:10)
févr. 15 10:08:26 server1 prunner[2738]:               at RunnerJobsCommand.postBodyRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77937:12)
févr. 15 10:08:26 server1 prunner[2738]:               at RunnerJobsCommand.accept (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:78323:28)
févr. 15 10:08:26 server1 prunner[2738]:               at RunnerServer.tryToExecuteJobAsync (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88716:45)
févr. 15 10:08:26 server1 prunner[2738]:               at RunnerServer.checkAvailableJobs (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:88682:20)
févr. 15 10:08:26 server1 prunner[2738]:               at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
févr. 15 10:08:26 server1 prunner[2738]:           ----
févr. 15 10:08:26 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:77869:19
févr. 15 10:08:26 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48866:17
févr. 15 10:08:26 server1 prunner[2738]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48852:17)
févr. 15 10:08:26 server1 prunner[2738]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48742:27)
févr. 15 10:08:26 server1 prunner[2738]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48710:18)
févr. 15 10:08:26 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48714:11
févr. 15 10:08:26 server1 prunner[2738]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48283:7)
févr. 15 10:08:26 server1 prunner[2738]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:48435:22
févr. 15 10:08:26 server1 prunner[2738]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:47686:11)
févr. 15 10:08:26 server1 prunner[2738]:               at IncomingMessage.emit (node:events:529:35)
févr. 15 10:08:26 server1 prunner[2738]:       "res": {
févr. 15 10:08:26 server1 prunner[2738]:         "req": {
févr. 15 10:08:26 server1 prunner[2738]:           "method": "POST",
févr. 15 10:08:26 server1 prunner[2738]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/b57431cf-8eca-4ab4-bce5-5c22f9b55781/accept",
févr. 15 10:08:26 server1 prunner[2738]:           "data": {
févr. 15 10:08:26 server1 prunner[2738]:             "runnerToken": "ptrt-e16d70a0-ec77-4931-a61e-62bb274790f1"
févr. 15 10:08:26 server1 prunner[2738]:           },
févr. 15 10:08:26 server1 prunner[2738]:           "headers": {
févr. 15 10:08:26 server1 prunner[2738]:             "content-type": "application/json"
févr. 15 10:08:26 server1 prunner[2738]:           }
févr. 15 10:08:26 server1 prunner[2738]:         },
févr. 15 10:08:26 server1 prunner[2738]:         "header": {
févr. 15 10:08:26 server1 prunner[2738]:           "server": "nginx/1.22.1",
févr. 15 10:08:26 server1 prunner[2738]:           "date": "Thu, 15 Feb 2024 09:08:26 GMT",
févr. 15 10:08:26 server1 prunner[2738]:           "content-type": "application/problem+json; charset=utf-8",
févr. 15 10:08:26 server1 prunner[2738]:           "content-length": "268",
févr. 15 10:08:26 server1 prunner[2738]:           "connection": "close",
févr. 15 10:08:26 server1 prunner[2738]:           "x-powered-by": "PeerTube",
févr. 15 10:08:26 server1 prunner[2738]:           "x-frame-options": "DENY",
févr. 15 10:08:26 server1 prunner[2738]:           "tk": "N",
févr. 15 10:08:26 server1 prunner[2738]:           "access-control-allow-origin": "*",
févr. 15 10:08:26 server1 prunner[2738]:           "access-control-allow-credentials": "true",
févr. 15 10:08:26 server1 prunner[2738]:           "access-control-expose-headers": "Retry-After",
févr. 15 10:08:26 server1 prunner[2738]:           "x-ratelimit-limit": "50",
févr. 15 10:08:26 server1 prunner[2738]:           "x-ratelimit-remaining": "48",
févr. 15 10:08:26 server1 prunner[2738]:           "x-ratelimit-reset": "1707988116",
févr. 15 10:08:26 server1 prunner[2738]:           "etag": "W/\"10c-8I6N5tjFkypqIhHib8PbSPJEEXc\""
févr. 15 10:08:26 server1 prunner[2738]:         },
févr. 15 10:08:26 server1 prunner[2738]:         "status": 409,
févr. 15 10:08:26 server1 prunner[2738]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_pending_state\",\"detail\":\"This job is not in pending state anymore\",\"status\":409,\"code\":\"runner_job_not_in_pending_state\",\"error\":\"This job is not in pending state anymore\"}"
févr. 15 10:08:26 server1 prunner[2738]:       }
févr. 15 10:08:26 server1 prunner[2738]:     }
févr. 15 10:08:28 server1 prunner[2738]: [10:08:28.610] INFO (2738): Checking available jobs on https://videos.john-livingston.fr

Can't you reproduce the bug? Maybe it is because i have multiple runners?

Chocobozzz commented 7 months ago

From what I see, probing the RTMP stream seems to take a lot of time on runner side (20 seconds):

févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.603] INFO (1476): Probing rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873
févr. 15 10:05:40 prunner prunner[1476]: [10:05:40.685] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.229] INFO (1476): Checking available jobs on https://videos.ritimo.org
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.266] INFO (1476): Checking available jobs on https://videos.john-livingston.fr
févr. 15 10:05:43 prunner prunner[1476]: [10:05:43.308] INFO (1476): Checking available jobs on https://www.yiny.org
févr. 15 10:06:01 prunner prunner[1476]: [10:06:01.316] INFO (1476): Probed rtmp://videos.john-livingston.fr:1935/live/070a2f2d-2520-49a5-b0f0-714cdf7d8873

It may be the source cause of your issue. Can you check the ffmpeg version on your runner compared to your peertube instance?

JohnXLivingston commented 7 months ago

Both are Debian bookworm.

On the prunner runner:

ffmpeg -version
ffmpeg version 5.1.4-0+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
libavutil      57. 28.100 / 57. 28.100
libavcodec     59. 37.100 / 59. 37.100
libavformat    59. 27.100 / 59. 27.100
libavdevice    59.  7.100 / 59.  7.100
libavfilter     8. 44.100 /  8. 44.100
libswscale      6.  7.100 /  6.  7.100
libswresample   4.  7.100 /  4.  7.100
libpostproc    56.  6.100 / 56.  6.100

On server1:

ffmpeg -version
ffmpeg version 5.1.4-0+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
libavutil      57. 28.100 / 57. 28.100
libavcodec     59. 37.100 / 59. 37.100
libavformat    59. 27.100 / 59. 27.100
libavdevice    59.  7.100 / 59.  7.100
libavfilter     8. 44.100 /  8. 44.100
libswscale      6.  7.100 /  6.  7.100
libswresample   4.  7.100 /  4.  7.100
libpostproc    56.  6.100 / 56.  6.100
Chocobozzz commented 7 months ago

Do you have the same delay (~20 seconds) every time the runner probes the RTMP stream?

JohnXLivingston commented 7 months ago

Oh, today it worked a first time, but failed again when resuming the live for the 3rd time.

Probing had no delay:

mars 12 11:41:50 prunner prunner[730]: [11:41:50.438] INFO (730): Probing rtmp://videos.john-livingston.fr:1935/live/97**********
mars 12 11:41:50 prunner prunner[730]: [11:41:50.784] INFO (730): Probed rtmp://videos.john-livingston.fr:1935/live/97**********
mars 12 11:43:46 prunner prunner[730]: [11:43:46.325] INFO (730): Probing rtmp://videos.john-livingston.fr:1935/live/97**********
mars 12 11:43:46 prunner prunner[730]: [11:43:46.388] INFO (730): Checking available jobs on https://www.yiny.org
mars 12 11:43:46 prunner prunner[730]: [11:43:46.676] INFO (730): Probed rtmp://videos.john-livingston.fr:1935/live/97**********
mars 12 11:45:17 prunner prunner[730]: [11:45:17.685] INFO (730): Checking available jobs on https://www.yiny.org
mars 12 11:45:17 prunner prunner[730]: [11:45:17.687] INFO (730): Probing rtmp://videos.john-livingston.fr:1935/live/97**********
mars 12 11:45:17 prunner prunner[730]: [11:45:17.724] INFO (730): Checking available jobs on https://videos.ritimo.org
mars 12 11:45:18 prunner prunner[730]: [11:45:18.046] INFO (730): Probed rtmp://videos.john-livingston.fr:1935/live/97**********

And it failed with this log:

mars 12 11:46:00 prunner prunner[730]: [11:46:00.910] INFO (730): Stopping transcoding as the job is not in processing state anymore
mars 12 11:46:00 prunner prunner[730]:     err: {
mars 12 11:46:00 prunner prunner[730]:       "type": "Error",
mars 12 11:46:00 prunner prunner[730]:       "message": "Expected status 204, got 400. \nThe server responded: \"Session of this live ended\".\nYou may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs",
mars 12 11:46:00 prunner prunner[730]:       "stack":
mars 12 11:46:00 prunner prunner[730]:           Error: Expected status 204, got 400.
mars 12 11:46:00 prunner prunner[730]:           The server responded: "Session of this live ended".
mars 12 11:46:00 prunner prunner[730]:           You may take a closer look at the logs. To see how to do so, check out this page: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/development/tests.md#debug-server-logs
mars 12 11:46:00 prunner prunner[730]:               at buildRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:79617:14)
mars 12 11:46:00 prunner prunner[730]:               at makeUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:79543:9)
mars 12 11:46:00 prunner prunner[730]:               at RunnerJobsCommand.postUploadRequest (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:79695:12)
mars 12 11:46:00 prunner prunner[730]:               at RunnerJobsCommand.update (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:80093:17)
mars 12 11:46:00 prunner prunner[730]:               at ProcessLiveRTMPHLSTranscoding.updateWithRetry (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:90133:44)
mars 12 11:46:00 prunner prunner[730]:               at ProcessLiveRTMPHLSTranscoding.sendPendingChunks (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:90122:28)
mars 12 11:46:00 prunner prunner[730]:               at FSWatcher2.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:89978:24)
mars 12 11:46:00 prunner prunner[730]:               at FSWatcher2.emit (node:events:517:28)
mars 12 11:46:00 prunner prunner[730]:           ----
mars 12 11:46:00 prunner prunner[730]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:79620:19
mars 12 11:46:00 prunner prunner[730]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50618:17
mars 12 11:46:00 prunner prunner[730]:               at Test._assertFunction (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50604:17)
mars 12 11:46:00 prunner prunner[730]:               at Test.assert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50494:27)
mars 12 11:46:00 prunner prunner[730]:               at localAssert (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50462:18)
mars 12 11:46:00 prunner prunner[730]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50466:11
mars 12 11:46:00 prunner prunner[730]:               at Request3.callback (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50035:7)
mars 12 11:46:00 prunner prunner[730]:               at file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:50187:22
mars 12 11:46:00 prunner prunner[730]:               at IncomingMessage.<anonymous> (file:///usr/lib/node_modules/@peertube/peertube-runner/dist/peertube-runner.js:49438:11)
mars 12 11:46:00 prunner prunner[730]:               at IncomingMessage.emit (node:events:529:35)
mars 12 11:46:00 prunner prunner[730]:       "res": {
mars 12 11:46:00 prunner prunner[730]:         "req": {
mars 12 11:46:00 prunner prunner[730]:           "method": "POST",
mars 12 11:46:00 prunner prunner[730]:           "url": "https://videos.john-livingston.fr/api/v1/runners/jobs/efe8842b-0bdb-47c1-944a-c07c22542bb6/update",
mars 12 11:46:00 prunner prunner[730]:           "headers": {}
mars 12 11:46:00 prunner prunner[730]:         },
mars 12 11:46:00 prunner prunner[730]:         "header": {
mars 12 11:46:00 prunner prunner[730]:           "server": "nginx/1.22.1",
mars 12 11:46:00 prunner prunner[730]:           "date": "Tue, 12 Mar 2024 10:46:00 GMT",
mars 12 11:46:00 prunner prunner[730]:           "content-type": "application/problem+json; charset=utf-8",
mars 12 11:46:00 prunner prunner[730]:           "content-length": "246",
mars 12 11:46:00 prunner prunner[730]:           "connection": "close",
mars 12 11:46:00 prunner prunner[730]:           "x-powered-by": "PeerTube",
mars 12 11:46:00 prunner prunner[730]:           "x-frame-options": "DENY",
mars 12 11:46:00 prunner prunner[730]:           "tk": "N",
mars 12 11:46:00 prunner prunner[730]:           "access-control-allow-origin": "*",
mars 12 11:46:00 prunner prunner[730]:           "access-control-allow-credentials": "true",
mars 12 11:46:00 prunner prunner[730]:           "access-control-expose-headers": "Retry-After",
mars 12 11:46:00 prunner prunner[730]:           "x-ratelimit-limit": "50",
mars 12 11:46:00 prunner prunner[730]:           "x-ratelimit-remaining": "45",
mars 12 11:46:00 prunner prunner[730]:           "x-ratelimit-reset": "1710240368",
mars 12 11:46:00 prunner prunner[730]:           "etag": "W/\"f6-PGaf2bDwCsdLDSclmjP/AEwbnxA\""
mars 12 11:46:00 prunner prunner[730]:         },
mars 12 11:46:00 prunner prunner[730]:         "status": 400,
mars 12 11:46:00 prunner prunner[730]:         "text": "{\"type\":\"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/runner_job_not_in_processing_state\",\"detail\":\"Session of this live ended\",\"status\":400,\"code\":\"runner_job_not_in_processing_state\",\"error\":\"Session of this live ended\"}"
mars 12 11:46:00 prunner prunner[730]:       }
mars 12 11:46:00 prunner prunner[730]:     }
mars 12 11:46:00 prunner prunner[730]: [11:46:00.913] INFO (730): [https://videos.john-livingston.fr] Finished processing job of type live-rtmp-hls-transcoding: efe8842b-0bdb-47c1-944a-c07c22542bb6

Could it be the "video-live-ending" jobs from the previous chunk that changes something on the video state, and the runner thinks that the live stream status changed?

Here are these jobs:

image

(seems that they were processed after the live stream fails (11:46:00), so may not be the cause)

JohnXLivingston commented 7 months ago

Can't find any related log on the peertube server... Probably because of this bug: https://github.com/Chocobozzz/PeerTube/issues/6041 (logs are written in a deleted file, that i can't access)

Chocobozzz commented 7 months ago

(seems that they were processed after the live stream fails (11:46:00), so may not be the cause)

The column is the job creation date, you can see the processing date in the expanded row and so they don't seem related.

Can't find any related log on the peertube server...

You don't have systemd logs?

JohnXLivingston commented 7 months ago

You don't have systemd logs?

Oh right!

Seems there are some interesting logs. Server was in debug mode, so there are a too much lines to copy here. Moreover, there might be some confidential data that i don't want to leak publicly. I will send you the log file by mail.

Chocobozzz commented 7 months ago

Thanks again, I think the bug should be fixed by https://github.com/Chocobozzz/PeerTube/commit/4e98d843da15e635aca14e9a146ffb2cd156e93c