Comments (8)
Works on Linux, so appears to be a limitation of MacOS or fuse-t.
from bindfs.
Works on Linux
Confirming, btw. Next time I'll first test on Linux before creating an issue :D Sorry for the noise.
Reported to:
from bindfs.
Actually I may have been hasty :)
Some things need MacOS-specific functions. But I just checked and didn't find any obvious API related to domain sockets.
You (sorry, I've no access to a mac at the moment) could check with bindfs -d -f ...
what, if any, call nc
ends up making into bindfs. If no call is made then it's pretty clearly a fuse problem. Otherwise, perhaps we need an additional special case in mknod
or something.
from bindfs.
Output of bindfs -d -f ...
produced during nc -U <path> -l
:
With macFUSE:
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 405
getattr /
unique: 2, success, outsize: 136
unique: 3, opcode: GETXATTR (22), nodeid: 1, insize: 77, pid: 405
getxattr / com.apple.FinderInfo 32 0
unique: 3, success, outsize: 48
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 111
getattr /
unique: 2, success, outsize: 136
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 45, pid: 698
LOOKUP /sock
getattr /sock
unique: 3, error: -2 (No such file or directory), outsize: 16
unique: 2, opcode: MKNOD (8), nodeid: 1, insize: 61, pid: 698
mknod /sock 0140755 0x0 umask=0000
unique: 2, error: -22 (Invalid argument), outsize: 16
With fuse-t:
unique: 39, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 0
statfs_x /
unique: 39, success, outsize: 96
unique: 40, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 0
getattr /
unique: 40, success, outsize: 136
unique: 41, opcode: LOOKUP (1), nodeid: 1, insize: 45, pid: 0
LOOKUP /sock
getattr /sock
unique: 41, error: -2 (No such file or directory), outsize: 16
So, it looks like we have different bugs here?
- macFUSE passes
mknod
call to bindfs, but bindfs fails to handle it - fuse-t doesn't pass
mknod
to bindfs at all
For the reference, here's how nc -U sock -l
through bindfs looks on Linux:
unique: 64, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 16753
getattr[NULL] /
unique: 64, success, outsize: 120
unique: 66, opcode: LOOKUP (1), nodeid: 1, insize: 45, pid: 16753
LOOKUP /sock
getattr[NULL] /sock
unique: 66, error: -2 (No such file or directory), outsize: 16
unique: 68, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 16753
getattr[NULL] /
unique: 68, success, outsize: 120
unique: 70, opcode: LOOKUP (1), nodeid: 1, insize: 45, pid: 16753
LOOKUP /sock
getattr[NULL] /sock
unique: 70, error: -2 (No such file or directory), outsize: 16
unique: 72, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 16753
getattr[NULL] /
unique: 72, success, outsize: 120
unique: 74, opcode: MKNOD (8), nodeid: 1, insize: 61, pid: 16753
mknod /sock 0140755 0x0 umask=0022
getattr[NULL] /sock
NODEID: 3
unique: 74, success, outsize: 144
from bindfs.
In macos-fuse-t/fuse-t#31, I was given this link: https://libfuse.github.io/doxygen/example_2passthrough__helpers_8h_source.html. mknod
in bindfs doesn't currently have any special handling for S_ISSOCK
. Maybe it should?
from bindfs.
@mpartel what do you think?
My current understanding is that
- There's missing functionality in fuse-t: it doesn't call
mknod
at all - There's missing support for
S_ISSOCK
in bindfsmknod
implementation - macFUSE works properly
I suggest reopening this issue and will try to fix №2 (and send a PR).
from bindfs.
Yes, that seems likely. Thanks! And apologies, this week it's especially difficult for me to anything mac-related.
from bindfs.
See #133. With those fixes, I'm able to talk with nc
over AF_UNIX socket created inside bindfs-mounted dir.
from bindfs.
Related Issues (20)
- Failed to resolve mount point on MacOS / Ventura HOT 3
- [Question/Bug maybe?] preserve/mirror file's selinux context HOT 2
- bindfs file descriptor leak with --block-devices-as-files HOT 2
- Behavior Question: Why does BindFS exhibit permission issues when bind mounted into a container? HOT 2
- Mount directory as a non-root user from /etc/fstab HOT 3
- no package Bindfs available HOT 3
- Support for 64bit statfs on macOS HOT 1
- Race condition between `bindfs` exit and filesystem actually being mounted HOT 5
- Test suite fails with fuse-t HOT 1
- ACLs on MacOS HOT 3
- configure: error: FUSE not found on Mac 13.5.1 HOT 5
- homebrew: Unsatisfied requirements failed this build. HOT 2
- macos: Provide Launch Agent to mount bindfs on system startup HOT 4
- Support for negative offset (?) HOT 3
- [1.17.5] Commit 38cd6e7e13ce966dc8e196eb3037935682e613a6 introduced undefined behavior? HOT 3
- Contributing simple Linux CI based on GitHub Actions via pull request welcome? HOT 17
- 1.17.6 no longer compiles on CentOS 7 HOT 1
- Memory allocation failures not checked
- Don't know how to build a static `bindfs` executable HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bindfs.