-
Notifications
You must be signed in to change notification settings - Fork 88
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
[BUG] PVC Resize Fails with "juicefs[31] <FATAL>: no such file or directory [main.go:31]" #1254
Comments
You need to use this PVC at least once |
That would be if the storageclass has: not if the storageclass has: https://kubernetes.io/docs/concepts/storage/storage-classes/#volume-binding-mode |
The subpath is only created when it is used, so if the PVC has not been used before, it will occur such an error when resize pvc. |
I understand what you are saying, but this makes the juicefs CSI driver not compliant with the storage class spec, thus I believe this is a bug. The existences of a bound Persistent volume makes this a bug. The creation of the PV should probably create the dir so that subsequent processes like the resizer will work. Would you be open to a PR like this or some solution that wouldn't require an admission controller to not allow consumers of accidentally making a change to a PVC that is actually ready and bound? |
yeah, we have another issue to track this problem, but it may cause some issues, such as needing to mount it before creating the directory, which will make the process of creating pv very slow. |
We are also considering adding an improvement for the client (juicefs), such as automatically creating subpath when setting quotas, of course, it is still under consideration. If you have better suggestions, feel free to reply |
It is expected for the binding process when the PV is created to take some time, when using EBS or other cloud disks, that can take minutes depending on the configurations and such from the cloud provider. I like the idea of tying all the bootstrapping and the mountOptions and such to that PV provisioning step, rather than tying it to the quota step. "juicefs quota" looks to be behaving the correct way, if the --path doesn't exist it is just telling you "no such file or directory". |
I'm going to close this issue. On further testing the errors will keep happening and the PV will not increase size, even if that is for hours and hours. But once a pod actually mounts the volume, the resize occurs successfully as @zxh326 mentioned repeatedly to me. Thanks for your patience and discussing this with me. I do think that the behavior would be better o perform the steps necessary during bootstrapping, but in the end, it does work as intended when a consumer of the volume actually mounts it. |
What happened: Create a PVC, the PV is provisioned and bound to the PVC. Increase the size of the PVC, apply, and the resize fails over and over with errors during the "/usr/local/bin/juicefs quota set" command that "juicefs[31] : no such file or directory [main.go:31]"
What you expected to happen: PVC resized to new quota and associated PV is larger.
How to reproduce it (as minimally and precisely as possible):
Wait until PV is bound to PVC
Update PVC
Describe the PVC and you will see the following errors:
Anything else we need to know?
this is the storageclass:
Environment:
kubectl version
): v1.31.2The text was updated successfully, but these errors were encountered: