google / google/gvisor

Mounting "modern" FUSE filesystems (with filenames > 255 chars) into gVisor containers

Open
#12,441 1 comment 0 reactions 0 assignees View on GitHub
type: enhancement
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

### Description

We at Modal Labs run gVisor containers for our users. Our users can mount various storage options into their containers, including cloud object buckets (https://modal.com/docs/guide/cloud-bucket-mounts).

Under the hood, we use AWS's `mountpoint-s3` tool (https://github.com/awslabs/mountpoint-s3) which mounts remote a cloud bucket as a FUSE filesystem on the host.

The problem: this FUSE filesystem allows filenames longer than 255 chars. Such long object names are also legal in cloud object storage. gVisor however [doesn't allow such long names](https://github.com/abhagwat/gvisor/blob/56927bc7020086094d56729845d56c23a76031e7/pkg/fsutil/fsutil_unsafe.go#L101-L111). So, when we mount such a cloud bucket (with long object names) inside the container, gVisor panics.

We'd like some advice here: is there any path to handling such situations better within gVisor?

### Is this feature related to a specific bug?

_No response_

### Do you have a specific solution in mind?

No.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.