-
Notifications
You must be signed in to change notification settings - Fork 68
fstest: have CreateSocket actually create a socket #143
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
Conversation
9a89c42 to
461ecee
Compare
| if err := unix.Bind(fd, sa); err != nil { | ||
| return err | ||
| } | ||
| return os.Chmod(fullPath, perm) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this fails you return an error but the socket is left on disk. I suspect this isn't a problem because the caller is using this to populate some sort of temp dir which it will clean up in its entirety on error, but something to be aware of I guess.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's fine, but I'll let @dmcgowan decide
Using syscall package to create socket file, because net.Listen's Close() method removes the socket file and not closing the listener would result in leaking an fd. Signed-off-by: Tibor Vass <tibor@docker.com>
dmcgowan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
Ping @crosbymichael |
|
LGTM |
full diff: containerd/continuity@f2a389a...75bee3e - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Upstream-commit: 67a0695e8b355c7a1c3382b7165f97a2bafc5f9b Component: engine
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Upstream-commit: 507e6b61cf82059ce412ccdb531b0e9402d2d2a8 Component: cli
…ce1fc84c4c4 full diff: containerd/continuity@f2a389a...26c1120 full diff: containerd/continuity@f2a389a...26c1120 - containerd/continuity#109 Add OpenBSD support for fs subpackage - containerd/continuity#141 Add src string to copyDirectory error message - containerd/continuity#143 fstest: have CreateSocket actually create a socket - containerd/continuity#144 Support Go Modules - containerd/continuity#147 xattr lost when copying directory - containerd/continuity#148 fs: don't convert syscall.Timespec to unix.Timespec directly (doesn't work with gccgo) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Using syscall package to create socket file, because
net.Listen's Close() method removes the socket file
and not closing the listener would result in leaking an fd.
Signed-off-by: Tibor Vass tibor@docker.com
Ping @ijc @dmcgowan
More discussion is needed to know how to deal with sockets in continuity but I don't want that to hold back this PR. For the record, in BuildKit we think it is better to convert it to a regular empty file, as both for regular and socket file types, the existence of the file should cause errors when trying to bind to it again. Creating a regular file ensures a more consistent behavior of programs in that matter.