Skip to content

[vcpkg] [llvm] Bump Linux VM memory size and do all operations on the temporary disk.#11174

Merged
BillyONeal merged 4 commits intomicrosoft:masterfrom
BillyONeal:bigger_linux_vms
May 10, 2020
Merged

[vcpkg] [llvm] Bump Linux VM memory size and do all operations on the temporary disk.#11174
BillyONeal merged 4 commits intomicrosoft:masterfrom
BillyONeal:bigger_linux_vms

Conversation

@BillyONeal
Copy link
Copy Markdown
Member

@BillyONeal BillyONeal commented May 4, 2020

@BillyONeal
Copy link
Copy Markdown
Member Author

@ras0219-msft Do the qt failures look like the -j change?

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A Do those qt project failures look like fallout from the -j change that our binary caching scheme hid?

@Neumann-A
Copy link
Copy Markdown
Contributor

@BillyONeal. Could be. I remember seeing that failure once but cannot remember if the fix was to remove the -j flag. I tried finding a commit which added and then removed the -j flag but couldn't find it.
we could try to add all the commands added in https://stackoverflow.com/questions/5303634/qmake-qmakespec-has-not-been-set
and print the information just to get an idea whats going wrong or simply pass the full path to the spec via -spec or replace the

TargetSpec=win32-msvc
HostSpec=win32-msvc

in the qt_(release|debug).conf with absolute paths to the right directory. It could also be that something else is wrong in the qt.conf but this would be surprising since the build without -j does work.

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp run microsoft.vcpkg.clean-tombstones

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp help

@azure-pipelines
Copy link
Copy Markdown

Supported commands
  • help:
    • Get descriptions, examples and documentation about supported commands
    • Example: help "command_name"
  • list:
    • List all pipelines for this repository using a comment.
    • Example: "list"
  • run:
    • Run all pipelines or specific pipelines for this repository using a comment. Use this command by itself to trigger all related pipelines, or specify specific pipelines to run.
    • Example: "run" or "run pipeline_name, pipeline_name, pipeline_name"
  • where:
    • Report back the Azure DevOps orgs that are related to this repository and org
    • Example: "where"

See additional documentation.

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp list

@azure-pipelines
Copy link
Copy Markdown

CI/CD Pipelines for this repository:

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp list

@azure-pipelines
Copy link
Copy Markdown

CI/CD Pipelines for this repository:

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@strega-nil
Copy link
Copy Markdown
Contributor

@BillyONeal Looks like LLVM is now working! but qt5 still isn't >.<

@BillyONeal
Copy link
Copy Markdown
Member Author

There are probably races in qt's bits, I just tried installing these locally and they worked :(. So I'll need to revert that :/

@Neumann-A
Copy link
Copy Markdown
Contributor

There are probably races in qt's bits, I just tried installing these locally and they worked :(. So I'll need to revert that :/

Yeah a problem I know too well. CI fails but locally everything works fine. Did you try it in WSL or real Linux? Was there any speed improvement with the -j flag ?

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A I used real Linux. It cut build time for the entire ports tree almost in half.

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@Neumann-A
Copy link
Copy Markdown
Contributor

Hmm any way for me to force the failure in CI via a PR or is there no way to do it in a single PR?

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A I don't know of a good way to force it, no. I'm going to try one more thing before backing the change out completely...

@Neumann-A
Copy link
Copy Markdown
Contributor

@BillyONeal Maybe add a ENV variable for it ENV{VCPKG_X_DISABLE_PARALLEL_QT}. So Users still benefit from it but you can disable it in CI.

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A If it's going to sporadically fail in CI that means it can for users too and we should back it out. I'm trying a complete archives rebuild in case some of the previous builds were wrong due to the missing disable parallel switch. We'll see how it goes. If that still fails I'm going to revert completely.

@Neumann-A
Copy link
Copy Markdown
Contributor

If it's going to sporadically fail in CI that means it can for users too and we should back it out

But if there is never an error nobody will try to fix it or will try to add the parallel flag again and we probably won't remember the issue. If we have the escape hatch users which have the issue can use ENV{VCPKG_X_DISABLE_PARALLEL_QT} while the others can benefit from the faster build

@BillyONeal
Copy link
Copy Markdown
Member Author

Now we're seeing flaky behavior on Windows so I'm totally reverting that :/

@Neumann-A
Copy link
Copy Markdown
Contributor

fatal error C1001: Internal compiler error.

Nothing Qt can be blamed for.

@BillyONeal BillyONeal changed the title [vcpkg] [llvm] Bump Linux VM size and do all operations on the temporary disk. [vcpkg] [llvm] Bump Linux VM memorysize and do all operations on the temporary disk. May 6, 2020
@BillyONeal BillyONeal changed the title [vcpkg] [llvm] Bump Linux VM memorysize and do all operations on the temporary disk. [vcpkg] [llvm] Bump Linux VM memory size and do all operations on the temporary disk. May 6, 2020
@BillyONeal BillyONeal requested a review from ras0219-msft May 6, 2020 22:16
@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A Well looks like it wasn't the -j. Any ideas?

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A I think I know why it's broken. The qt scripts are trying to form a relative path from the installed directory to the packages directory, which doesn't work when they're both symlinks like this change does.

@Neumann-A
Copy link
Copy Markdown
Contributor

@BillyONeal: Maybe try asking @Rastaban if he remembers the cannot find mkspec error on linux and changed something in the CI to make it work. Alternatively you could try to make all paths in qt_release.conf and qt_debug.conf absolute. They are setup at

# Copy configuration dependent qt.conf
file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}" CMAKE_CURRENT_PACKAGES_DIR_PATH)
file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" CMAKE_CURRENT_INSTALLED_DIR_PATH)
file(READ "${CURRENT_BUILDTREES_DIR}/${_build_triplet}/bin/qt.conf" _contents)
string(REPLACE "${CMAKE_CURRENT_PACKAGES_DIR_PATH}" "\${CURRENT_INSTALLED_DIR}" _contents ${_contents})
string(REPLACE "${CMAKE_CURRENT_INSTALLED_DIR_PATH}" "\${CURRENT_INSTALLED_DIR}" _contents ${_contents})
#string(REPLACE "HostPrefix=\${CURRENT_PACKAGES_DIR}" "HostPrefix=\${CURRENT_INSTALLED_DIR}" _contents ${_contents})
string(REPLACE "[EffectivePaths]\nPrefix=..\n" "" _contents ${_contents})
string(REPLACE "[EffectiveSourcePaths]\nPrefix=${_csc_SOURCE_PATH}\n" "" _contents ${_contents})
string(REPLACE "Sysroot=\n" "" _contents ${_contents})
string(REPLACE "SysrootifyPrefix=false\n" "" _contents ${_contents})
file(WRITE "${CURRENT_PACKAGES_DIR}/tools/qt5/qt_${_build_type_${_buildname}}.conf" "${_contents}")
endforeach()

(or replace them with a manually written one for testing)

@BillyONeal
Copy link
Copy Markdown
Member Author

@Neumann-A I tried an alternate method of getting work running in /mnt which doesn't need to create individual symlinks, we'll see if that works.

@BillyONeal
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@BillyONeal BillyONeal merged commit 6920b49 into microsoft:master May 10, 2020
@BillyONeal BillyONeal deleted the bigger_linux_vms branch May 10, 2020 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:infrastructure Pertaining to the CI/Testing infrastrucutre

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants