SetInodeAttributes error when creating a file inside bucket

Viewed 44

I've made a C++ program that lives in gke and takes some videos as input using ffmpeg, then does something with that input using opengl,finally it encodes those edited videos as a single output. Normally the program works perfectly fine on my local machine, it encodes just as I want it to with no warnings whatsoever. But I want it to encode that video directly to the cloud using a gcsfuse bucket. I've succesfully mounted the bucket and it seems to create the file at the start of my programs run. But when the run is over it's suppose to finish the encoding and finilize the video file. However when it reaches the end it gives off this error on the terminal where I run the gcsfuse command:

2022/08/19 21:38:15.477586 SetInodeAttributes: input/output error, SetMtime: UpdateObject: not retrying UpdateObject("c36c2633-d4ee-4d37-825f-88ae54b86100.mp4"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100.mp4, notFound
fuse: 2022/08/19 21:38:15.477660 *fuseops.SetInodeAttributesOp error: input/output error
2022/08/19 21:38:15.637346 SetInodeAttributes: input/output error, SetMtime: UpdateObject: not retrying UpdateObject("c36c2633-d4ee-4d37-825f-88ae54b86100"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100, notFound
fuse: 2022/08/19 21:38:15.637452 *fuseops.SetInodeAttributesOp error: input/output error
2022/08/19 21:38:15.769569 GetInodeAttributes: input/output error, clobbered: StatObject: not retrying StatObject("c36c2633-d4ee-4d37-825f-88ae54b86100.mp4"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100.mp4, notFound
fuse: 2022/08/19 21:38:15.769659 *fuseops.GetInodeAttributesOp error: input/output error

At the end I end up with a file with the same size as my desired output but with an invalid video with no frames in it.

I'm using a service account to activate my bucket, I can read files just fine and my service account has every permission it needs, here is how I mount my bucket:

GOOGLE_APPLICATION_CREDENTIALS=./service-account.json gcsfuse -o nonempty --foreground cloud-storage-name /media

I'm using ubuntu 22.04

1 Answers

You need to first create, process and close the file in you local pod filesystem then upload the content to GCS following that at one time.

Related