gafirst / match-uploader

Upload FRC match videos to YouTube in a fast, consistent manner
GNU General Public License v3.0
1 stars 2 forks source link

Worker Crashing When Renaming File #144

Open mazac44 opened 2 days ago

mazac44 commented 2 days ago

Bug description

The worker is crashing when attempting to check for files to rename.

Match Uploader version

3.6.0

Are you running Match Uploader using the official Docker Compose setup?

Yes

Which part(s) of Match Uploader are affected?

Worker

Relevant error or log output

Crash 1:

worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 51.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 52.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 53.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 54.mp4 because it is a renamed file
web-1     | [2024-10-19T16:30:00.039Z] INFO: Received event: autorename:association:update
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 55.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 56.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Overhead/Qualification 57.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Match_ - 18 October 2024 - 04-20-21 PM.mp4 because it is not unmatched
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Match_ - 18 October 2024 - 10-45-16 AM.mp4 because it is not unmatched
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: File: Unlabeled/Match_ - 19 October 2024 - 11-44-49 AM.mp4 / Parsed date: 2024-10-19T11:44:49.000-04:00
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 51.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 52.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 53.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 54.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 55.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 56.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Skipping Unlabeled/Qualification 57.mp4 because it is a renamed file
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Found 2 files to process
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Processing Overhead/Match_ - 19 October 2024 - 11-44-49 AM - Output 3.mp4
web-1     | [2024-10-19T16:30:04.671Z] INFO: Received event: autorename:association:update
worker-1  | [job(worker-89d4baea17ea9d200f: autoRename{538})] INFO: Processing Unlabeled/Match_ - 19 October 2024 - 11-44-49 AM.mp4
worker-1  |
worker-1  |   #  /usr/local/bin/node[29]: void node::fs::Read(const v8::FunctionCallbackInfo<v8::Value>&) at ../src/node_file.cc:2558
worker-1  |   #  Assertion failed: args[3]->IsInt32()
worker-1  |
worker-1  | ----- Native stack trace -----
worker-1  |
worker-1  |  1: 0xcc7e17 node::Assert(node::AssertionInfo const&) [/usr/local/bin/node]
worker-1  |  2: 0xcd8d4a  [/usr/local/bin/node]
worker-1  |  3: 0xf6e88f v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/usr/local/bin/node]
worker-1  |  4: 0xf6f0fd  [/usr/local/bin/node]
worker-1  |  5: 0xf6f5c5 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
worker-1  |  6: 0x1979df6  [/usr/local/bin/node]
worker-1  |
worker-1  | ----- JavaScript stack trace -----
worker-1  |
worker-1  | 1: read (node:internal/fs/promises:695:13)
worker-1  | 2: fsCall (node:internal/fs/promises:464:18)
worker-1  | 3: read (node:internal/fs/promises:195:12)
worker-1  | 4: videoDuration (/home/node/app/server/node_modules/@numairawan/video-duration/src/main.js:56:35)
worker-1  |
worker-1  |
worker-1  | Aborted (core dumped)
worker-1  | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
worker-1  | error Command failed with exit code 134.
worker-1 exited with code 134

Crash 2:
web-1     | [2024-10-19T18:01:58.818Z] INFO: Received event: autorename:association:update
worker-1  | [job(worker-90e0ed38bbc1807bce: autoRename{561})] INFO: Found 6 files to process
worker-1  | [job(worker-90e0ed38bbc1807bce: autoRename{561})] INFO: Processing Overhead/Match_ - 19 October 2024 - 11-44-49 AM - Output 3.mp4
web-1     | [2024-10-19T18:02:04.400Z] INFO: Received event: autorename:association:update
worker-1  | [job(worker-90e0ed38bbc1807bce: autoRename{561})] INFO: Processing Unlabeled/Match_ - 19 October 2024 - 11-44-49 AM.mp4
worker-1  |
worker-1  |   #  /usr/local/bin/node[29]: void node::fs::Read(const v8::FunctionCallbackInfo<v8::Value>&) at ../src/node_file.cc:2558
worker-1  |   #  Assertion failed: args[3]->IsInt32()
worker-1  |
worker-1  | ----- Native stack trace -----
worker-1  |
worker-1  |  1: 0xcc7e17 node::Assert(node::AssertionInfo const&) [/usr/local/bin/node]
worker-1  |  2: 0xcd8d4a  [/usr/local/bin/node]
worker-1  |  3: 0xf6e88f v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/usr/local/bin/node]
worker-1  |  4: 0xf6f0fd  [/usr/local/bin/node]
worker-1  |  5: 0xf6f5c5 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
worker-1  |  6: 0x1979df6  [/usr/local/bin/node]
worker-1  |
worker-1  | ----- JavaScript stack trace -----
worker-1  |
worker-1  | 1: read (node:internal/fs/promises:695:13)
worker-1  | 2: fsCall (node:internal/fs/promises:464:18)
worker-1  | 3: read (node:internal/fs/promises:195:12)
worker-1  | 4: videoDuration (/home/node/app/server/node_modules/@numairawan/video-duration/src/main.js:56:35)
worker-1  |
worker-1  |
worker-1  | Aborted (core dumped)
worker-1  | error Command failed with exit code 134.
worker-1  | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
worker-1 exited with code 134
web-1     | [2024-10-19T18:03:16.151Z] INFO: getFilesMatchingPattern: dir: ./videos, pattern: **/Playoff 1.*, deep: 2
web-1     | [2024-10-19T18:03:16.153Z] INFO: getFilesMatchingPattern: dir: ./videos, pattern: **/uploaded/Playoff 1.*, deep: 3
evan10s commented 1 day ago

I'm not sure if the videoDuration library is the problem but this might be a good enough justification to just move to ffprobe for better reliability

Although this could be less problematic if we caught the error, which I think was something I skipped adding to get autorename done for GRITS