-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
interrupted system call error while cloning repository in gcsfuse mounted directory #1016
Comments
This is a known issue with FUSE filesystem. There is no official support provided for gcsfuse when used with other tools like git clone. The interrupts are coming from the kernel and has nothing to do with GCSFuse. It would be good if you can run gcsfuse with strace and see why the kernel is throwing interrupts intermittently. |
I tried running with
|
We have encountered this error today too. @Pardeep009 have you found any solution? |
@Mistic92 I have found no solution as of now, btw just curious which use case are you trying to implement ? |
Hello, thanks for this awesome tool.
A bunch of |
@yelinaung Thanks for reaching out. Could you please share more information here ? particularly
|
Hello @sethiay, I noticed there is a new gcsfuse version and I downloaded it
Strangely, for one file, I am getting gzipped version of the file instead of the original file. After extracting the gzip, I can see the original file (uncorrupted). For the rest of the files, seems working fine! I checked the file in the cloud storage and it is Have attached the log
I am running the following OS with Kernel version
|
@yelinaung Does this GCS object have If no, then we need to take a look at it. |
Hey @gargnitingoogle you are right about the |
@yelinaung I am glad that it is as the intended behaviour. |
(Common update to issues #1016 #288, #539 and #562) We have tracked the interrupt issue down to Golang sending SIGURG, which are then sent as interrupt signals to Fuse operations. I sent jacobsa/fuse#153 to add an option to ignore interrupts. Once that's approved, we can change gcsfuse to ignore interrupts by default. |
I can confirm that I'm seeing this error running a heavy io Go application against gcsfuse. The logs are something like the following:
Edit: After adding the ENV var GODEBUG="asyncpreemptoff=1" to my container (the main one, not the gcsfuse sidecar) I no longer see the logs. I'm not sure if this "fixes" anything but it's a big win for me because the logs were generating significant chatter (and cost!). |
I am encountering the same problem when running dockerized java application inside Google Cloud Run, is there any update for this? |
@dennissetiawan We are able to reproduce the issue, but have no timeline yet on a fix. We will update this issue entry once we have more details. |
Are there any updates on this? :) |
Hi @IchordeDionysos, we are still working on this and update here as soon as we have a fix available. |
Are there any updates on this? :) |
Hi @Chhinna, We're rolling out the changes behind a flag initially. You should be able to access them around May 27th, 2024 when our next release (v2.1.0) goes live. I'll share the specific flags/configurations needed to enable the feature soon. Thanks, |
@ashmeenkaur am I correct that Cloud Storage FUSE for Cloud Run is using gcsfuse? Which version is being used by Cloud Run? Just trying to figure out whether we need to configure and start our Docker image on our own again to utilize the changes :) |
@IchordeDionysos Yes, Cloud Storage FUSE for Cloud Run uses GCSFuse. Right now they are on GCSFuse version 2.0.0.
Based on my understanding, you won't be able to use it on Cloud Run until the Cloud Run team upgrades and whitelists the new flag. Looping in @jeremiele from Cloud Run team to provide more information. |
Cloud Run will be updating to 2.1.0 once it is available. Please let us know the flag so we can prioritize having it allowlisted as well. Thanks. |
Hi everyone, We've made some updates to how GCSFuse handles interrupts, and we're hoping you can help us test the changes. You can test these changes by installing GCSFuse from source using this guide: https://cloud.google.com/storage/docs/gcsfuse-install#install-source-code Your early feedback is invaluable as we work towards the official release (to be released on may 27). Thank you in advance! |
I'm a different person coming here for the same reason, namely, I want to support using git clone with a gcsfuse mount, and it doesn't work by default. I just built the client from source, tried it with the ignore-interrupts option, and it works very well. As an aside, I've been using gcsfuse for 5+ years, and hadn't looked at it for a while, and I'm super impressed with the progress you have made recently, especially the improved support for caching to support ML workloads! |
Hey @ashmeenkaur, I've just tested it and it works amazingly 😍 I will wait until the new version and flag are available natively in Cloud Run (as it's just easier to set up and configure). |
Update: As of version 2.1 on 23-May-2024, we now offers enhanced control over how GCSfuse responds to interruptions during file system operations. This addresses running Git clone operations on a GCSFuse mounted directory. You can configure GCSFuse to ignore interruptions during file system operations via CLI using --ignore-interrupts flag (disabled by default) or via config-file using the following config:
Once we get enough feedback, we will enable this by default (targeting next month). |
@jeremiele how can we stay up-to-date when this new version and the flag will be available in Cloud Run? :) |
We are looking into the upgrade. Unclear on the timeline yet. |
@marcoa6 @ashmeenkaur We have had it running for almost a month now, and it works like a charm. |
@jeremiele, I'm looking to use the --ignore-interrupts=true flag on cloud run, I'm running v2. when can we expect it to be available? |
With GCSfuse v2.3 this is now enabled by default. Thank you all for testing and providing feedback! |
Hey @jeremiele just checking in when you plan to upgrade to |
We are rolling out 2.1 right now with the flag --ignore-interrupts=true. I'll be looking at moving to 2.3 soon. |
Ahh @jeremiele thanks that should also work, then 2.3 is not strictly necessary for our use-case👌 When is the rollout of 2.1 with the flag roughly completed? And thanks for the update |
It should be complete now. |
@jeremiele thanks, have tested it a bit and What |
Hi Team.
I have mounted a gcs bucket on a directory in my ubuntu gce using gcsfuse.
gcsfuse -o allow_other --gid=XXX --uid=XXX <gcs-name> <directory>
where
gid
anduid
are values of a user, which will also have access to this shared directory. The clone command used to clone the repository isgit clone --branch <branch-name> --depth=1 --single-branch <repo-path> <destination-path>
, but it fails with errorthough it did downloaded some of the content from repository but keeps on failing every-time at different-different paths.
While running gcsfuse in debugging mode using flags
--debug_fuse --debug_gcs
, the error captured isI am currently running on Ubuntu 20:04 and gcsfuse version 0.42.2 (Go version go1.19.5).
Kindly help.
The text was updated successfully, but these errors were encountered: