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
MSBuild is reusing project instances #2123
Comments
Editing |
It looks like you have to wait a while between edits of VSL.Imports.targets to wait for design-time builds to catch up - it seems like only the second edit causes the issue. |
OK, I think I know what happens here.
Here's how this looks from the Scheduler's point of view: Probable fix is to always add a dummy unique global property to ProjectInstance based builds coming from the outside. Unfortunately some tests are failing with this fix. If this turns out to break engine invariants, then another fix would for CPS to build each project instance in its own separate Begin / End Build session. |
There's about 10 very cryptic tests failing, I'll have to go over each one and see what they mean and imply. For now I don't see other solutions though :( |
This comes from 3+ years of distant memory, but here goes... CPS's build scheduler supports 'bundles' of build requests being built together in a single build session of MSBuild. That is, between BuildManager.BeginBuild() and EndBuild(), there can be multiple top-level build requests. This allows the MSBuild scheduler to skip targets that were already built within that same build session and overall increases build throughput, which is a good thing. From @cdmihai's analysis, it sounds like CPS is perhaps considering build requests to be compatible that should not be considered compatible. That would hopefully be a very small fix to that test logic rather than a big change to CPS. CPS's design-time build manager |
Awesome, we should have pulled you in months ago. :) Let me do a little digging... |
Actually, too heads down in some other performance work to looking into this. @lifengl looks like your team might be able to make a change here to fix this? |
Yes, please open a bug and send to us.
On Jun 15, 2017, at 7:16 PM, David Kean <notifications@github.com<mailto:notifications@github.com>> wrote:
Actually, too heads down in some other performance work to looking into this. @lifengl<https://github.com/lifengl> looks like your team might be able to make a change here to fix this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#2123 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/ALGWwlFtbdXmMYpZNOwTWEQtPC4Y7KPfks5sEeVdgaJpZM4Ni_Gy>.
|
Based on the build error comes out and goes away, the bug is currently moved to 15.5. If your team think it is more impactful, please let us know. |
@lifengl Did we get an internal bug for this? |
@davkean Was this issue closed because it has been fixed or because it is now tracked by devdiv internally? If the latter, could you maybe keep it open until it's really fixed so that the community can track it's status? Thanks! |
This issue has been fixed in internal builds. It will appear in the 15.5 milestone called out this in this roadmap: https://github.com/dotnet/project-system/blob/master/docs/repo/roadmap.md#roadmap. |
This was "fixed" here: #1955, but I'm still repro'ing this.
git clone https://github.com/dotnet/project-system/
cd project-system
git checkout a9e5252cb89e45bc9c5202789bc7effc61b7531c
build.cmd
-- Wait for 1 minute for restore/design-time builds to catch up (when all the errors go away) --
Expected: No errors
Actual:
The errors come and go.
The text was updated successfully, but these errors were encountered: