-
-
Notifications
You must be signed in to change notification settings - Fork 114
Compilation fails with OneDrive / "Cloud reparse points" #254
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
Comments
On the forum, a workaround is suggested:
|
That workaround doesn’t apply in all cases. I’ve yet to figure out why, though. |
@rcarmo I had to disable the "files on demand" feature, and then copy my files to a new folder in onedrive before it would work. It seems that if a given file was ever "on demand" it stays in symlink mode (forever? for a while? no idea). |
That’s because it creates a file system junction. However, Windows 10 creates dozens of junctions for housekeeping purposes, so moving your files to another folder doesn’t necessarily mean you’ll land in a junction-free zone... and I, for one, really need to have his fixed “right”...
|
@ngmacha, could you try running this command (it's the failing command, but with more verbosity):
I believe the next step is to file a proper bugreport with go (the one I linked before is a related, but different issue), along with a minimal program to reproduce the problem. I've looked around the source code to figure out what arduino-builder is doing exactly, but I couldn't quite figure out what code path is triggering this problem exactly. We're not calling I'm short on time to dig into this further, so if anyone else can manage to create a small representative testcase and report a bug with go, please go ahead! |
@matthijskooijman Here is the output (I had to edit the command to point to the correct Temp\arduino_build path, as since my previous post I've reinstalled Arduino 1.8.5 on my system, so some paths are changed):
When I remove that offending -hardware option, it outputs this:
Then, finally, removing the -library option above:
As only the sketch itself remain as offender, nothing left to remove... |
Thanks!. It's interesting that the error message changed somewhat: It's |
I concur - on Windows 10 fall and one drive this started occurring I have to copy the sketches out of onedrive and compile to test now... this is not acceptable as most builders use the onedrive for their My Documents to store their data in the cloud/backup etc. |
Fix is scheduled for Go 1.11 (or 1.10 since also Docker is affected); we'll recompile the builder as soon as an go updated toolchain is out. |
@facchinm do you have a link for that info? The go bug report I previously linked doesn't say this, so is there another report you're tracking? |
https://go-review.googlesource.com/c/go/+/86556 targets the issue, but we must wait mid-2018 for it to land on a released version of golang (golang/go#22579 (comment)) . If the number of affected users becomes broader we could backport the patch and recompile the Windows target but otherwise I'd wait for the release. |
Yes, @species5618 this is actually a great workaround!! Thank you very much. |
Arduino was working fine on my PC until the latest update ( or so it seems). Now I get readlink C:\Users\dmike\OneDrive\Documents\Arduino\Turn_It_Around\Turn_It_Around.ino: The system cannot find the file specified. Error compiling for board Arduino/Genuino Uno. I've tried doing a clean uninstall and reinstall. I can verify and compile a new empty sketch or an example. I might be able to I'm a little lost when reading some of these comments, but some of them I do understand. I'm not finding a "files on demand" box in my Onedrive settings. I don't know if they took the option out in a later version, or if I just need to look somewhere else. The laptop I'm using came with Onedrive pre-installed and it also replaces the file manager. So, saving something to myPC>Documents>Arduino automatically saves it to Onedrive and has the location of C:\Users\dmike\OneDrive\Documents\Arduino. That being said, I don't think the symbolic fix would work for me, either. I don't know what else to do here. |
go1.10 should already contain the fix (golang/go@e83601b), I'm going to rebuild the builder with this version and merge it in the beta channel later today. I'll post here as soon as the builds are ready to let you test if this problem is finally gone. |
I just pushed the builder rebuilt with go 1.10.1 to IDE beta channel and here, if anyone could test it on a Windows PC with OneDrive Document folder it would be great |
Thank you for trying to fix this, @facchinm! Unfortunately it still doesn't work. I've just tried (Arduino-PR-beta1.9-BUILD-41), and still receiving error "Unable to find..." with full path to the sketch file. Same error when pointing directly to the OneDrive folder or the symlink. BTW, the symlink workaround initially worked, but stopped after March updates to Win10... |
@ngmacha, could you show the literal error, preferably including some lines of output before the error? |
Here is the full output:
|
Ok, so the error is different from previous versions, which mentioned |
Nope, the error message was not changed; I think the Go fix brings in some subtle differences in functions like |
If this may help, I rerun with debug-level 20, here is the full output:
|
@species5618, the problem seems to be that the go runtime libraries do not understand the way Onedrive encodes its files specially in the filesystem. This has partially been fixed in the go language, but presumably not entirely. I do not believe your comments are really helpful towards a fix in this area. |
I'm so glad there are people out there that are smarter than me and know what this stuff is, lol. Can I ask what Go is and how to use it? |
Go is the programming language used to program |
I'm trying to reproduce the issue on several machines with no luck. The "file not found" is surely related with https://github.com/arduino/arduino-builder/blob/master/gohasissues/go_has_issues.go#L41 , but it's very difficult to debug it without any hint 🙂 |
Go 1.11 will be published at the end of July, so it's quite a long time. I have to discuss with @cmaglie whether to publish this binary (compiled with a non-stable version of go) or to leave it in the beta channel (which is, in its own nature, prone to hosting non stable software). |
@arielnh56 The Microsoft Store version is located at |
@facchinm, I would tend to not release things compiled with a git version of go and either wait for 1.11, or backport just this one fix to go 1.10 if possible (but that might be a boatload of extra work). |
@matthijskooijman agree; me and @cmaglie agreed to push the version compiled with latest git on the Beta channel, so users have at least a way to bypass the problem (which should disappear automatically at next Windows 10 release, btw, since WIn10 17127 doesn't seem to be affected) |
Fixed for me too on 1.8.5. Win 10 Pro 10.0.16299 Thanks |
I just pushed the "fixed" builder on the Beta channel , so there is finally a way to use a self contained version of the IDE if you encounter this problem. |
I certainly do mention the beta or hourly builds whenever it might solve a problem someone reports on the forum, but with the warning that these builds are primarily intended for beta testing and so there is not so much a guarantee of stability as they would have with the production IDE releases. I've been more hesitant to recommend the Beta due to the known unresolved issues with arduino-preprocessor. The FastLED incompatibility is my primary concern since that's such a popular library. I believe the Arduino Web Editor is using arduino-preprocessor though and I haven't noticed many reports of problems there lately so maybe it's not such an issue as I think. In this case there are multiple solutions to the issue so if they encounter a problem with the beta IDE they have other options. |
builder update for 1.8.5 fixed my OneDrive problem. Thanks. |
Just got this error and builder 1.8.5 fixed it. |
@Prehistoricman the issue is that you need the master branch of |
I got this error with the 1.8.10.0 App store version. So... not sure what may be different with my setup as there are multiple posts above (13+days ago) saying the 1.8.5 version fixed this issue. I am running on a Surface Book with Windows 10.0.16299 To get this working I had to install the 1.9.0 BETA (via the zip). Just thought others who come here should know. Thanks! |
I am probably the most ignorant guy to be in this conversation, so I have nothing to contribute, except to add to the list of complainers. I don't understand you experts' tech language and complicated "fixes". At least I can see there is a legitimate problem and there is some kind of action goin' 'round. I am anxiously waiting for a final, conclusive bottom line fix. Thanks for the explanation, up to now. I am at least satisfied that I have not gone bonkers. Thanks to all you contributors, and I'll stay tuned. |
it worked unchecking demand file, tks |
@everyone the new |
@facchinm. I've just downloaded the hourly build, I'm getting no errors. Thanks for fixing it. When should we expect it to come to the Microsoft Store version? |
As soon as we go officially live with the 1.8.6 we'll also upload the update to Windows Store (this will happen in max 2 weeks from now) |
@facchinm I can confirm that it's working. Thanks! |
@facchinm - Any idea of a time frame for 1.8.6? Would be really nice to get this OneDrive fix pushed out to Windows users! |
Any update on this? When will the 1.8.6 be released? @facchinm |
@xescure we had some delays due to vacations and other priorities, but I can assure you that it will be published during this week |
In just 8 days, it will be 11 months since 1.8.5 was published. If this slips another 6 weeks, Arduino will have gone an entire year without a stable non-beta release. |
Fixed by IDE 1.8.6 |
It seems recent Windows 10 versions combined with OneDrive suffer from arduino-builder not being able to read files. This is reported as arduino/Arduino#6867 and arduino/Arduino#6932. The symptoms are similar as #90, but I think the underlying issue is similar but different, so I'm opening a new issue.
arduino/Arduino#6932 contains the error output:
The reporter has tested a number of versions, and has found that 1.6.5 works, but 1.6.6 breaks things, on this particular system. The latter version is the one introducing arduino-builder.
One difference here, is that the .ino file seems to be a link (or some other special file), not the directory.
@phil85521 @ngmacha, could either of you get some more info on the .ino file that is failing? E.g. look at its properties or use some other Windows tool to figure out what kind of file it is, whether it is indeed a junction or some other kind of special file? I don't have any specific ideas what to do, not being a Windows-user.
Looking at the go code previously patched (golang/go@5717385#diff-495e6a9c70ec790e4be07ee30c55141f) it seems that this file might be (or have?) some kind of "reparse point" that is not a symlink or junction (which are the supported types). This post suggests that OneDrive uses the "Cloud" reparse tag (
IO_REPARSE_TAG_CLOUD_7
), which golang does not seem to explicitly support (in its master branch).I suspect this is something to fix at the golang end, it seems there is already a related issue open at golang/go#22579 (which I'll provide with some extra info next).
The text was updated successfully, but these errors were encountered: