bmrlab / gendam

A privacy-first generative DAM
6 stars 1 forks source link

太大的视频处理会在一定时间后卡住,并且取消任务的时候会遇到错误 cannot start a transaction within a transaction #47

Closed web3nomad closed 1 month ago

web3nomad commented 1 month ago
image

但是 cancel 接口现在只是一个简单的 sql update,这个错误可能是 prisma 内部的,具体这个 transaction 是指什么,还没搞清楚。

web3nomad commented 1 month ago
2024-04-05T17:34:13.079990Z  INFO api_server::task_queue: Task created: Data { id: 210, asset_object_id: 45, asset_object: None, task_type: "FrameCaptionEmbedding", exit_code: None, exit_message: None, starts_at: None, ends_at: None, created_at: 2024-04-05T17:07:47.859+00:00, updated_at: 2024-04-05T17:34:13.080+00:00 }
2024-04-05T17:34:13.080019Z  INFO api_server::task_queue: Task queued 45 Frame, priority: 5-1712338453080-None
2024-04-05T17:34:13.080041Z  INFO api_server::task_queue: Task queued 45 FrameContentEmbedding, priority: 5-1712338453080-None
2024-04-05T17:34:13.080049Z  INFO api_server::task_queue: Task queued 45 FrameCaption, priority: 0-1712338453080-None
2024-04-05T17:34:13.080063Z  INFO api_server::task_queue: Task queued 45 FrameCaptionEmbedding, priority: 0-1712338453080-None
2024-04-05T17:34:13.080042Z  INFO api_server::task_queue::pool: Task received: 45 Frame
2024-04-05T17:34:13.080287Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080323Z  INFO api_server::task_queue::pool: Task received: 45 FrameContentEmbedding
2024-04-05T17:34:13.080332Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080339Z  INFO api_server::task_queue::pool: Task received: 45 FrameCaption
2024-04-05T17:34:13.080347Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080353Z  INFO api_server::task_queue::pool: Task received: 45 FrameCaptionEmbedding
2024-04-05T17:34:13.080361Z ERROR api_server::task_queue::pool: failed to send task: channel closed

另外一个问题是,重试图里的第三个视频任务(victoria-crowned-pigeon.mp4)的时候,遇到上面的报错, 这个视频我先操作了取消,成功以后再操作重试,然后没有发生变化,看日志似乎无法再重新把任务放进队列重新开始了。

zhuojg commented 1 month ago
2024-04-05T17:34:13.079990Z  INFO api_server::task_queue: Task created: Data { id: 210, asset_object_id: 45, asset_object: None, task_type: "FrameCaptionEmbedding", exit_code: None, exit_message: None, starts_at: None, ends_at: None, created_at: 2024-04-05T17:07:47.859+00:00, updated_at: 2024-04-05T17:34:13.080+00:00 }
2024-04-05T17:34:13.080019Z  INFO api_server::task_queue: Task queued 45 Frame, priority: 5-1712338453080-None
2024-04-05T17:34:13.080041Z  INFO api_server::task_queue: Task queued 45 FrameContentEmbedding, priority: 5-1712338453080-None
2024-04-05T17:34:13.080049Z  INFO api_server::task_queue: Task queued 45 FrameCaption, priority: 0-1712338453080-None
2024-04-05T17:34:13.080063Z  INFO api_server::task_queue: Task queued 45 FrameCaptionEmbedding, priority: 0-1712338453080-None
2024-04-05T17:34:13.080042Z  INFO api_server::task_queue::pool: Task received: 45 Frame
2024-04-05T17:34:13.080287Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080323Z  INFO api_server::task_queue::pool: Task received: 45 FrameContentEmbedding
2024-04-05T17:34:13.080332Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080339Z  INFO api_server::task_queue::pool: Task received: 45 FrameCaption
2024-04-05T17:34:13.080347Z ERROR api_server::task_queue::pool: failed to send task: channel closed
2024-04-05T17:34:13.080353Z  INFO api_server::task_queue::pool: Task received: 45 FrameCaptionEmbedding
2024-04-05T17:34:13.080361Z ERROR api_server::task_queue::pool: failed to send task: channel closed

另外一个问题是,重试图里的第三个视频任务(victoria-crowned-pigeon.mp4)的时候,遇到上面的报错, 这个视频我先操作了取消,成功以后再操作重试,然后没有发生变化,看日志似乎无法再重新把任务放进队列重新开始了。

出现这个问题,可能是因为在处理任务的时候 panic 了,处理任务的 tokio task 已经终止了 panic 可能和图里的报错有关系