-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Cache compression - cross OS support #984
Comments
I'm glad this is being addressed, but I'm not sure the stated proposal is the right path forward. Or rather, it may be not the right path for all users. I don't believe that cross-OS compatibility of a single cache archive should be the primary driver, as it's quite common to put the Also, it sounds as if the only plan for speeding things up on Windows is to switch to GNU tar. As I stated previously, and reported by others here and here - this has not resolved the problem. Cache restore is still very slow, even with GNU tar. I think the part that is missing from the proposal is that I believe there should be an option to choose the archive format, and that should be exposed all the way up to the cache action. Personally, I would like to use |
BTW - 7-Zip does support |
@mattjohnsonpint appreciate your feedback and suggestions on this. The stated proposal mainly addresses customer pain points surrounding reducing build time by leveraging cache across their runners. This proposal should also provide some performance improvements for windows as now the compression algo in use will be zstd instead gzip. We are also exploring other solutions for windows runner performance including 7-zip to provide better performance on windows when cross-os caching is not a concern. |
New beta release v3.1.0-betaWe have released a beta version of cache under Expected behaviourAll the mentioned issues in above description should be resolved and not happening with this release. Performance might vary for different files on windows. No changes should happen to Call outs
|
We’re seeing “small file” `tar.exe` performance issues actions/cache#984
👋🏼 Created a discussion for any feedback: #1019 |
You closed all the performance related issues and linked them to this, however, you say the patch will not resolve performance problems.. Personally I've seen much more complaints about performance than requests for cross os caches.... So just like @mattjohnsonpint I am surprised about the priorities here. |
@Safihre that's correct. We started by thinking to tackle both cross-os and performance problems together but realized that performance needs a more in-depth and targeted approach and needs more time. That's why we will first ship out the cross-os support. We have a separate internal tracker for performance problem. Will create a public tracker as well once we more details to share. |
UpdateTag Call out
|
UpdateHave released all the changes to |
UpdateWe have reverted the changes due to multiple complains regarding symlinks not working. If a cache containing symlink is saved on Related issue: #1043 |
UpdateCurrently we are fixing a problem related to symlinks creation on windows during a tarball extraction which was created on Solution:We found that symlink creation is handled differently for different platforms and filesystems. We encountered two solutions to handle this:
We have chosen to go with 2nd solution and would love hear feedback from community. |
I believe that |
Hosted runners do run with administrative privileges so this should be fine |
UpdateWe have released new changes with symlink issue fixed and allowing to use cross-os cache as an opt-in feature by adding |
I encountered a problem when restoring a cache saved by windows-latest with a self-hosted runner in Windows Server 2016. It would be helpful if it be documented that these installations are required (or recommended?) when using cache actions in a self-hosted runner. |
Hi @mkht, thank you for this feedback. We had these documented previously in the workarounds section, we'll have these added to Pre-requisites moving forward for better visibility. |
@mkht I think GNU tar already comes with Git installation: #576 (comment) At least for my workflows this works fine: https://github.com/devonfw-actions/java-maven-setup/blob/main/action.yml#L53 |
Hi @maybeec , thanks for the advice. As odd as it may seem, Git is not installed on my self-hosted runner. As far as I know, there is no mention of Git being required for the self-hosted runner to work. The lack of Git has not caused any fatal problems in the past. |
Проблема с hht/404 |
Кто нибудь может помочь? пожалуйста |
Problems
There have been multiple reported issues related to compression of caches. The issue we are looking to solve:
gzip
) as compared to onlinux | mac
(zstd
). This leads to different versions for caches created on different platforms. Therefore caches created on windows might not be recoverable onlinux | mac
. For more details on cache version see this.Proposal
We are looking to solve both the problems as follows::
zstd
due to the issue of compression hanging with large caches. In our testing, we found that performing archiving and compression as separate processes (instead of callingtar --use-compress-program
) does not have the hang problem for caches of size up to 2GB.Reasoning to choose GNUtar over BSDtar as default
BSDtar has some implementation problems. That’s the reason it stopped being used in MacOS for our action. For more details see actions/toolkit#552.
Related issues which should get fixed with this proposal
We have consolidated issues related to the above problems here. Feel free to provide feedback regarding these in this issue itself.
tar
on the path #125 (Won’t fix)The text was updated successfully, but these errors were encountered: