Skip to content
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

Comment out native tools restore on Unix #2911

Closed
wants to merge 1 commit into from
Closed

Comment out native tools restore on Unix #2911

wants to merge 1 commit into from

Conversation

jkotas
Copy link
Member

@jkotas jkotas commented May 29, 2019

No description provided.

@jkotas
Copy link
Member Author

jkotas commented May 29, 2019

NativeToolsRestore hangs on Unix that is a problem for CoreCLR. Is there any repo that is restoring native tools on Unix?

Adding DisableNativeToolsetInstalls around every single point that calls buid.sh is not very practical in CoreCLR.

@jkotas jkotas requested a review from chcosta May 29, 2019 16:00
@jkotas
Copy link
Member Author

jkotas commented May 29, 2019

More context: dotnet/coreclr#24333 (comment)

@chcosta
Copy link
Member

chcosta commented May 29, 2019

I think that disabling this is likely to break CoreFx. @ViktorHofer ?

@ViktorHofer
Copy link
Member

We don't use it yet but we planned to.

@chcosta
Copy link
Member

chcosta commented May 29, 2019

@jkotas, is it not reasonable to define DisableNativeToolsetInstalls in ./build.sh itself before it calls into any scripts in eng/common?

@jkotas
Copy link
Member Author

jkotas commented May 29, 2019

eng/common/build.sh is called from multiple places in CoreCLR repo. E.g. it is also called directly from https://github.com/dotnet/coreclr/blob/master/eng/build-job.yml

@jkotas
Copy link
Member Author

jkotas commented May 29, 2019

cc @hoyosjs @sbomer

@chcosta
Copy link
Member

chcosta commented May 29, 2019

This sounds fine, the only issue is that it's a breaking change so we need to send notification before we merge this change. FYI @tmat

@ViktorHofer
Copy link
Member

I believe we should disable it on both Unix and Windows to be consistent. CoreFx isn't a consumer yet, I don't know if anybody uses that feature yet besides coreclr in their CI.

@chcosta
Copy link
Member

chcosta commented May 29, 2019

I think wpf has a dependency on native-toolset installation and would have to make changes to adapt to this change of default. FYI @vatsan-madhavan

I'm not certain who else is impacted.

@chcosta
Copy link
Member

chcosta commented May 29, 2019

I want to help do the right thing here, but I'm not certain that I'm the right person to drive this. @MattGal , is this something FR should handle? I'm honestly not sure if this falls into FR duties or not. Also, I'm not saying that I'm going to drop this on the floor, I really do want to make sure we get to a reasonable solution. Answering this might help #2673 (comment)

@vatsan-madhavan
Copy link
Member

Please hold this PR for a few days - I don't have time to assess this until sometime next week.

Copy link
Member

@chcosta chcosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting to assess impact

@chcosta
Copy link
Member

chcosta commented May 29, 2019

@jkotas, is it reasonable to make this change in your repo and not take Maestro updates for a few days (or manually merge them since you'll potentially have file conflicts)?

@hoyosjs
Copy link
Member

hoyosjs commented May 29, 2019

We already do this for the time being, and there's no automerge on coreclr. If it breaks wpf, it might be easier for us to do the usual work around as long as this gets fixed soon.

@vatsan-madhavan
Copy link
Member

I just scanned the changes - looks like the change is to .sh files. WPF doesn't build on *.nix machines nor do we support it. We need full VS installation to build. Feel free to make this change.

/cc @rladuca

@chcosta
Copy link
Member

chcosta commented May 29, 2019

@hoyosjs , if native toolset bootstrapping is a problem, any reason not to just opt out of it entirely by removing any entries from your global.json?

@chcosta
Copy link
Member

chcosta commented May 29, 2019

Also, can you point me to a specific build which is hitting a timeout / time increase so I can understand this better? Seems silly for cmake or python install to take 40+ minutes.

@hoyosjs
Copy link
Member

hoyosjs commented May 29, 2019

@hoyosjs , if native toolset bootstrapping is a problem, any reason not to just opt out of it entirely by removing any entries from your global.json?

We need it on Windows

Also, can you point me to a specific build which is hitting a timeout / time increase so I can understand this better? Seems silly for cmake or python install to take 40+ minutes.

https://dev.azure.com/dnceng/public/_build/results?buildId=204225&view=logs&j=6f68b13e-5295-5453-81d9-93278bf6fe41

Or in general arcade updates before we comment that part out. Last time I started trying to dig into the issue we get to this https://github.com/dotnet/coreclr/blob/34805dc3852ba218fcfd695bc0b9eb996860e025/build-packages.sh#L129 and then we start seeing the hangs. I didn't have a particularly good setup so I couldn't try to take a look at what was causing the hang then.

@chcosta
Copy link
Member

chcosta commented May 30, 2019

@hoyosjs , are you ok with holding off on making any changes here until the Coreclr failure has been investigated and is better understood?

@hoyosjs
Copy link
Member

hoyosjs commented May 30, 2019

@hoyosjs , are you ok with holding off on making any changes here until the Coreclr failure has been investigated and is better understood?

I tend to look at these PRs, I can do the fix if I see them. @jkotas also gets to these before I do more often than not, and he originally modified the files himself. This is a breaking change, so I know it is not easy to take in. I'm okay with working around it for a bit if it's being actively investigated.

@jkotas
Copy link
Member Author

jkotas commented May 30, 2019

This is a breaking change,

FWIW, I looks a this as undoing a breaking change. The original change that introduced the problematic behavior was a breaking change.

@hoyosjs
Copy link
Member

hoyosjs commented May 30, 2019

It was enabled long ago in the repo toolset I believe, but that was before coreclr being moved even a bit, think June timeframe from the history I see. Back then almost no one used this - in fact even now it's rarely used. But now that there's more consumers, I can see why we shouldn't right before a preview snap if the workaround is so straightforward.

@chcosta
Copy link
Member

chcosta commented May 30, 2019

@jkotas, completely agree that the previous change was a breaking change (for the record that was undoing a breaking change, originally this was enabled by default but that got lost in a refactor; so it was undoing a breaking change that was undoing another breaking change). Sadly (or not), somewhere in the near past, we decided we should be more intentional and not callously make breaking changes. Thanks for understanding!

@jkotas
Copy link
Member Author

jkotas commented May 31, 2019

Superseded by #2923

@jkotas jkotas closed this May 31, 2019
@terrajobst terrajobst deleted the workaround branch August 30, 2019 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants