google / google/gvisor

sshfs uses /dev/fuse, but got segmentation fault

Open
#11,086 3 comments 1 reaction 0 assignees View on GitHub
stale-issue type: bug
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

### Description

Hi, I found that `/dev/fuse` exists in the gvisor container. I guess tools like sshfs that rely on fuse should be able to run in the gvisor container. I tried it and found that sshfs will report a segmentation error. Is it because the relevant system calls are not fully implemented? Thank you!

### Steps to reproduce

Use gvisor to run an ubuntu 22.04 container, and use the `sshfs -f -v ` command to mount the remote directory in the container, and then use the `ls ` command to view the files in the mounted directory.

### runsc version

runsc version release-20241021.0
spec: 1.1.0-rc.1

### docker version (if using docker)

Directly use OCI to run container.

### uname

Linux lighthouse 5.15.0-72-generic #79-Ubuntu SMP Wed Apr 19 08:22:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

### kubectl (if using Kubernetes)

_No response_

### repo state (if built from source)

_No response_

### runsc debug logs (if available)

I1027 18:21:18.704127 1 strace.go:570] [ 35: 35] ls E rt_sigaction(SIGPROF, 0x7edbb88d0f40 {Handler: 0x55c3d55c1c20, Flags: SA_RESTORER|SA_RESTART, Restorer: 0x7ee889642520, Mask: [SIGHUP SIGINT SIGQUIT SIGPIPE SIGALRM SIGTERM SIGTSTP SIGXCPU SIGXFSZ SIGVTALRM SIGPROF SIGIO]}, 0x0, 0x8)
D1027 18:21:18.704131 1 task_log.go:73] [ 29: 32] FDTable:
fd:2 => name host:[4]
fd:3 => name /dev/fuse
fd:4 => name socket:[27]
fd:5 => name pipe:[19]
fd:6 => name pipe:[19]
fd:0 => name host:[4]
fd:1 => name host:[4]

D1027 18:21:18.704159 1 task_signals.go:466] [ 29: 32] Notified of signal 11
D1027 18:21:18.704172 1 task_signals.go:202] [ 29: 32] Signal 11, PID: 29, TID: 32, fault addr: 0x149: terminating thread group
D1027 18:21:18.704187 1 task_exit.go:214] [ 29: 32] Transitioning from exit state TaskExitNone to TaskExitInitiated
D1027 18:21:18.704209 1 task_exit.go:214] [ 29: 32] Transitioning from exit state TaskExitInitiated to TaskExitZombie
D1027 18:21:18.704215 1 task_exit.go:214] [ 29: 32] Transitioning from exit state TaskExitZombie to TaskExitDead
I1027 18:21:18.704203 1 strace.go:614] [ 29: 29] sshfs X futex(0x7eaedc28d398, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME|FUTEX_PRIVATE_FLAG, 0x0, null, 0x0, 0xffffffff) = 0 (0x0) errno=512 (to be restarted if SA_RESTART is set) (21.231837891s)
I1027 18:21:18.704232 1 strace.go:605] [ 29: 36] sshfs X read(0x3 /dev/fuse, 0x7eca2dd99010, 0x101000) = 0 (0x0) errno=512 (to be restarted if SA_RESTART is set) (1.307154ms)
D1027 18:21:18.704243 1 task_signals.go:202] [ 29: 29] Signal 9, PID: 29, TID: 29, fault addr: 0x0: terminating thread group
D1027 18:21:18.704251 1 task_signals.go:202] [ 29: 36] Signal 9, PID: 29, TID: 36, fault addr: 0x0: terminating thread group

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.