Skip to content

Repeated invocations of dotnet-install.sh will fill TMP directory #45

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

Closed
sfoslund opened this issue Jun 15, 2020 · 4 comments · Fixed by #97
Closed

Repeated invocations of dotnet-install.sh will fill TMP directory #45

sfoslund opened this issue Jun 15, 2020 · 4 comments · Fixed by #97
Assignees
Labels

Comments

@sfoslund
Copy link
Member


Issue moved from dotnet/sdk#11858


From @MattGal on Tuesday, June 2, 2020 5:43:10 PM

See https://github.com/dotnet/sdk/blob/master/scripts/obtain/dotnet-install.sh#L822

We had all the test machines run out of disk space overnight from just running too many tests. (in the case I investigated it was about 900 tests on one machine leading to 21 GB of SDKs in the TMP folder).

Thoughts on how to fix:

  • At a minimum, when the job is done successfully the zip_path file should be deleted if it exists regardless of content
  • Could consider also a more distinct temp file name and cleaning up someDistinctDotNettyName.* in TMP every time.
@bekir-ozturk
Copy link
Contributor

Thank you for the issue @MattGal & @sfoslund . I agree with you that at least the archive should be deleted.

@MattGal Can you give me a bit more info on your use case? Some questions:

  • Why is it that you install the SDK for each test, can't you install once at the beginning?
  • In your build definition, did you consider checking if SDK is already installed and run the script only otherwise?
  • Would it help you if script detected the existing SDK and didn't install it again? There is a similar request here Cache & reuse previously downloaded SDK #15 , please feel free to comment on it.

@bekir-ozturk
Copy link
Contributor

@sfoslund Just a tip: You can actually transfer an existing issue within the same organization (right column, near the bottom). That would transfer all the comments, links etc. and you wouldn't need to do any copy/pasting.

@sfoslund
Copy link
Member Author

It looks like I don't have the right permissions to transfer it directly, so I used the hubbup issue mover instead (which makes it uglier but gets the job done :/ )

@MattGal
Copy link
Member

MattGal commented Jun 22, 2020

@MattGal Can you give me a bit more info on your use case? Some questions:

  • Why is it that you install the SDK for each test, can't you install once at the beginning?

This isn't "me" doing it, it's users of the .NET Helix work infrastructure running their test payloads. If these were my Helix work items, I'd bring the SDK along as a correlation payload, guaranteeing one download per job and guaranteeing cleanup after the next 2 jobs ran. I have shared this feedback with the team that brought this to my attention.

Regardless, when running on a clean machine the work in question does need one copy of the SDK and they run the script. Compound that over several hundred jobs running on the same machine, plus the machine's base OS starting with only 30 GB free before dependencies and other payloads, and the space gets used up fast.

  • In your build definition, did you consider checking if SDK is already installed and run the script only otherwise?

As noted above there's lots of better ways to do this, we just don't tend to force Helix users to do things a specific way; this allows users to basically "wedge in" their old test infrastructure and take their time doing an improved version of this as they desire more perf and fewer filled hard disks.

Sure, if a usable version is present and find-able, using that instead would be great. Probably would want to be a new behavior and a new flag in case this is not what some folks want.

@vlada-shubina vlada-shubina self-assigned this Nov 5, 2020
@AR-May AR-May added the maintenance-mode-prerequisite Maintenance mode prerequisites label Nov 6, 2020
vlada-shubina added a commit to vlada-shubina/install-scripts that referenced this issue Nov 6, 2020
- install-scripts.sh - temp zip file is now removed before script exits
- install-scripts.ps1 - added removing of zip file in case of download failure and log messages
vlada-shubina added a commit to vlada-shubina/install-scripts that referenced this issue Nov 6, 2020
- install-scripts.sh - temp zip file is now removed before script exits
- install-scripts.ps1 - added removing of zip file in case of download failure and log messages

(cherry picked from commit 572dd2a9f24b64f25ea6b9dae9f18b7e4fa4a653)
vlada-shubina added a commit to vlada-shubina/install-scripts that referenced this issue Nov 11, 2020
- install-scripts.sh - temp zip file is now removed before script exits
- install-scripts.ps1 - added removing of zip file in case of download failure and log messages

(cherry picked from commit 572dd2a9f24b64f25ea6b9dae9f18b7e4fa4a653)
vlada-shubina added a commit that referenced this issue Nov 11, 2020
* fixes #45:
- install-scripts.sh - temp zip file is now removed before script exits
- install-scripts.ps1 - added removing of zip file in case of download failure and log messages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants