Closed mura890 closed 2 weeks ago
Hi @mura890, this is definitely an issue and we are looking into it:
00:42:20 tes-sv mount-s3[1370]: [ERROR] read{req=102661 ino=32 fh=42 offset=15757312 size=4096 name=6.mp4}: mountpoint_s3::logging: panic on Thread { id: ThreadId(8), name: Some("fuse-worker-3"), .. } at /workplace/mountpoint-s3/mountpoint-s3/src/prefetch/part_queue.rs:57:9: cannot use a PartQueue after failure
Regarding your test:
The verification flow is to investigate when the stored video A is replaced with video B while playing video A, and when the video A being played changes, the video being played changes
Even once we address the issue, the behavior to expect in this scenario depends on how your application handles the video file. As explained in the docs, when an open file is mutated remotely, Mountpoint will never mix data from different version. Instead, it will either return the original content (when it had already been downloaded/cached) or error out. In order to read the content of the mutated object, the application needs to re-open the file.
We have just merged a fix for the issue you reported (#933). If you are able to build from the latest main
and run your workflow, you should not see this error any longer:
ls: cannot open directory /mnt/applications/classtream/archives: Transport endpoint is not connected
However, as mentioned above, we do expect that reads on a file mutated remotely will still fail and be reported in the logs with entries like this:
00:42:20 tes-sv mount-s3[1370]: [WARN] read{req=102660 ino=32 fh=42 offset=15757312 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
thank you very much! I am testing again with the merged module, and so far the following error has not occurred.
ls: cannot open directory /mnt/applications/classtream/archives: Transport endpoint is not connected
As expected the following WARN occurs as well.
Jul 10 01:24:29 tes-sv mount-s3[4007]: [WARN] get_object{id=52 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..195651171) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=41.218344ms request_id=MC9Q5TGX8E4QMNN6 error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:24:29 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44145 ino=3 fh=25 offset=68108288 size=131072 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] get_object{id=62 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..69206016) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=40.720996ms request_id=6V52SEWSB35Z7PCQ error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44146 ino=3 fh=25 offset=68239360 size=131072 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] get_object{id=63 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..69206016) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=35.803874ms request_id=6V53835NJRKHAZQ9 error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44159 ino=3 fh=25 offset=68157440 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] get_object{id=64 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..70254592) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=35.173325ms request_id=6V530CV478TARASE error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44160 ino=3 fh=25 offset=68157440 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] get_object{id=65 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..69206016) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=47.220248ms request_id=6V597FZVPYC8ZQFD error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44161 ino=3 fh=25 offset=68210688 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] get_object{id=66 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(68157440..69206016) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=46.624235ms request_id=6V55Q9SANSXH5CCB error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:26:13 tes-sv mount-s3[4007]: [WARN] read{req=44162 ino=3 fh=25 offset=68206592 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
・・・
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2487 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=39.546061ms request_id=QX448X6MZ81P9DSY error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46623 ino=3 fh=25 offset=72663040 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2488 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=36.902871ms request_id=QX4CDWKDB1WN6R6G error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46624 ino=3 fh=25 offset=72646656 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2489 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=33.574514ms request_id=QX4840MRZ1HK61AS error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46625 ino=3 fh=25 offset=72663040 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2490 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=27.698542ms request_id=QX4CC12T4T3XBMF5 error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46626 ino=3 fh=25 offset=72663040 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2491 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=37.290862ms request_id=QX47YW9F3SET97NN error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46627 ino=3 fh=25 offset=72663040 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] get_object{id=2492 bucket=test-S3-bucket7 key=archives/30301013/6.mp4 range=Some(72351744..73400320) if_match=Some(ETag("\"707c907d18ed96346626511d92d9b8ef-24\""))}: mountpoint_s3_client::s3_crt_client: duration=31.200832ms request_id=QX44PDHSQXANVKK8 error=ServiceError(PreconditionFailed)meta request failed
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] mountpoint_s3::prefetch::caching_stream: GetObject body part failed key=archives/30301013/6.mp4 error=ServiceError(PreconditionFailed)
Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46628 ino=3 fh=25 offset=72806400 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Is it possible to resolve this?
[...] Jul 10 01:27:51 tes-sv mount-s3[4007]: [WARN] read{req=46628 ino=3 fh=25 offset=72806400 size=4096 name=6.mp4}: mountpoint_s3::fuse: read failed: object was mutated remotely
Is it possible to resolve this?
What would be your desired behavior in this scenario?
From what I can tell from your logs, the current behavior is expected and intended to ensure consistency. See the first paragraph in the Consistency and concurrency section for more details and potential suggestions.
Checked consistency and concurrency. Since a large amount of logs were output, I thought that the problem was occurring continuously, but I understood that it was as expected. Thank you for your response.
Mountpoint for Amazon S3 version
mount-s3 version:1.7.2
AWS Region
ap-northeast-1
Describe the running environment
I am running an S3 bucket in the same account mounted on EC2 (OS: CentOS7.9)
Mountpoint options
What happened?
Video files are stored in the "archives" folder, and the behavior and verification of the mount-s3 cache function is being carried out. The verification flow is to investigate when the stored video A is replaced with video B while playing video A, and when the video A being played changes, the video being played changes. During the verification, the video could not be viewed at all, and when I checked the mount destination folder with the following ls command,
ls /mnt/applications/classtream/archives
The S3 data could not be displayed.
ls: cannot open directory /mnt/applications/classtream/archives: Transport endpoint is not connected
When I checked the OS messages log, I found a large number of warnings and errors like the following. (Excerpt)
Relevant log output