-
Notifications
You must be signed in to change notification settings - Fork 525
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
Paket mixed responses and downloads #966
Comments
I should not this is happening with both restore and update (stuff i tested) |
That sounds really strange. The parallel calls are not matching the results? So that's a bug in the async parallel calls? /cc @dsyme ever heard of something like that in other F# code? |
Is there a way to reproduce this behavior? What did you change exactly to make it work? |
I used Monitor.Enter Paket.Constants.InUse in the download packages method but this is not ok because it is not intended to be used in async |
Could you also please test with version 1.21.1? |
Have no idea how to reproduce it, on my machine it works fine but on the new build servers it happens. |
Any details about the installed .NET framework versions? And does the
|
Tested it with 1.21.1 and is still happening. |
Ok good, so at least this is not an error in the latest FSharp.Core.
|
I rerun the same tests i have done on windows 8 and everything works fine. Also the old servers are fine (Windows server 2008 with .net framework 4.5.2 and VS 2010, 2012, 2013). |
Ok so played a little bit more: so if we make some async operations to runSynchroniosly paket works fine (just strange, was expected to fail after a couple of tries but it looks fine). |
Could you please send a pull request for easier diff? Btw: thanks for being so patient and helping with finding the root cause.
|
I have created the pull #969 |
Have you managed to look over the pull request? |
Yes, but I try to reproduce this on our own 2012 R2 servers. No luck. Does
|
the build with the modifications i made works perfect |
yes that's what I meant. if you clone the current Paket repo on your 2012 2015-08-10 14:48 GMT+02:00 SavaNDragos notifications@github.com:
|
Everything executed ok so all tests pass. |
yep same here I tried to run this like 10 times. I can't reproduce your error. |
/cc @part-timeDev |
We are using a lot of internal libraries from our internal feed, tried to replicate with only libraries from nuget.org but couldn't. Also I downgraded a paket to nuget and nuget has no issue with getting the packages. |
yes I understand that's related to the async code (maybe there is a compiler/jit bug). but I need to debug the real issue. If I just disable the parallel stuff then we have slow restore and don't really know why. |
you replaced AsyncDownloadString (from FSharp.Core) with DownloadString. How about trying a task based async version and converting to F#'s async!? |
look at #971 I wonder if that would work better. |
going to test it in the next 30 min |
added also DownloadFileTaskAsync |
I tested it several times (the changes you made) and it works. Can you create a new version? |
@dsyme @latkin @mexx @tpetricek this suggestes that the bug is somewhere in https://github.com/fsharp/fsharp/blob/0313094fa5d19fd871c83e7e45c35d1fad65daf9/src/fsharp/FSharp.Core/control.fs#L2156 @SavaNDragos yes will do. |
@SavaNDragos done. |
thanks, I will start now to deploy it on the servers :d |
Run it on the build server with a clean cache and error is still there (less packages failling). |
This is absurd, the changes you made works but the executable I downloaded seem to have an issue, so i downloaded the code again compiled it obtained the lose files and deployed them and succes. Will wait till tomorrow to see what happens. [one server with run with the downloalded executable also] |
"I downloaded seem to have an issue" .. the same issue |
Maybe I messed up the release. Will check later
|
I think the late part was an issue from my side, I installed latest version with choco and the error persisted so I just downloaded the executable and deployed it manually on a build server. |
so it's fixed in 1.26.0 and we can close this case? if yes, then please open an issue at https://gitter.im/Microsoft/visualfsharp - it seems we have identified an issue with AsyncDownloadString in FSharp.Core. |
@SavaNDragos since you are the only one that can reproduce that error, are you up for further rounds of testing? If the issue is really outside of Paket (whereever that might be) then we still want to fix that. |
sounds good, I have allready cloned a build server |
I think it should be marked as resolved |
I found a pretty ugly bug on the new servers (not sure if it matters but the servers are windows server 2012 with Jenkins). We also are using our internal feed.
The bug is like this:
When paket asks for details related to a package and you have more packages for which it needs details, it will end up mixing the reponses and also the downloads:
From what I can tell there isn't a secure way to receive the callback from the nuget feed and they look to be processed randonly.
So from the log:
...
Response from http://nuget.mycompany.net/NugetWebFeed/nuget/Packages?$filter=Id eq 'Graphite.NET' and Version eq '1.1':
Graphite.NET
<title type="text">Packages</title> ... http://nuget.mycompany.net/NugetWebFeed/nuget/Packages(Id='Mycompany.Assambly',Version='0.0.075.8635') <title type="text">Mycompany.Assambly</title><feed xml:base="http://nuget.mycompany.net/NugetWebFeed/nuget/"....
In from of the response I added the package name (for debug purpose: Graphite.NET <?xml version="1.0).
Now what is more funny is because everything is parallel you can end up getting as a response a package:
Response from http://nuget.mycompany.net/NugetWebFeed/nuget/Packages?$filter=Id eq 'Microsoft.Web.Services3' and NormalizedVersion eq '3.0.0':
Microsoft.Web.Services3 PK��
5�Gզ�� �� � � _
The mix happens when the downloads take place also. So even if you received a good response you can get a wrong package.
At the end the builds fail because in packages\apackage you will have binaries belonging to anothe package.
This is happening on all our new servers.
At the moment I tried to limit the calls to the internal feed [singleton when making calls] and the response get back ok, but there is no parallel anymore.
We want to use the official release so any suggestions?
The text was updated successfully, but these errors were encountered: