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
Quick attempt at fixing EOF error issue encountered on linux/ARM #1
Conversation
When trying to run gcfuse on linux/ARM, ran into the issue described here: GoogleCloudPlatform/gcsfuse#197 Change the API slightly (expose even less), and switch to using a local unix socket (assuming windows is not a primary target for gcsfuse) for communicating back status to the parent process.
Thanks for this. Can you describe here and in your commit message what the problem was? |
Well, unfortunately I didn't really dig too deep into why things didn't work, I noticed that things ran fine with --foreground and proceeded to just make this last bit work for me by simply using a unix socket as it feels a bit more flexible for that sort of non performance-critical IPC anyway. Though it's interesting that the other report also happened to be on ARM. |
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.
Sending comments on specifics, but I'm not sure I'm comfortable with making this change without knowing why (and therefore whether) it fixed the root cause of the bug.
// process. Though the tool starts the daemon process with stdin, stdout, and | ||
// stderr closed (using Run), the daemon should be able to communicate status | ||
// to the user while it starts up (using StatusWriter), causing the tool to | ||
// This package provides the convenience for writing a tool that spins itself |
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.
Why change the wording here?
pipeW *os.File) (err error) { | ||
func startProcess(args []string, status io.Writer) error { | ||
|
||
// TODO: drop osext dependency once minmum required go verison is 1.8 |
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.
Please just do this now. Those binaries that need to build with older versions of Go can vendor an old version.
@@ -129,47 +124,42 @@ func (w *logMsgWriter) Write(p []byte) (n int, err error) { | |||
return | |||
} | |||
|
|||
// For use by the daemon: the writer that should be used for logging status |
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.
Why did you remove this feature?
This is still a blocking issue on ARM builds.
|
When trying to run gcfuse on linux/ARM, ran into the issue described
here:
GoogleCloudPlatform/gcsfuse#197
Change the API slightly (expose even less), and switch to using a local
unix socket (assuming windows is not a primary target for gcsfuse) for
communicating back status to the parent process.