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

ceph-dev-new-trigger: build windows for pacific and master #1754

Merged
merged 1 commit into from
Mar 2, 2021

Conversation

dillaman
Copy link

Signed-off-by: Jason Dillaman [email protected]

@dillaman
Copy link
Author

@dillaman
Copy link
Author

@petrutlucian94 FYI

@dillaman
Copy link
Author

dillaman commented Feb 25, 2021

It looks like mingw-w64 project added the GetOverlappedResultEx function to kernel32.lib here [1], which landed in release v7. Unfortunately, our builders are based on Ubuntu Bionic which only includes mingw-w64 v5.0.3 [2]. It is available in Ubuntu Focal since it includes mingw-w64 v7.0.0 [3] so perhaps we can just update the build script to add the Focus repo to ensure the most up-to-date version is installed (compile failed elsewhere when I tried this), or that recent change to start using GetOverlappedResultEx can be tweaked to remove it or just use GetOverlappedResult (if possible).

[1] mirror/mingw-w64@24842d4
[2] https://packages.ubuntu.com/bionic/mingw-w64-x86-64-dev
[3] https://packages.ubuntu.com/focal/mingw-w64-x86-64-dev

@petrutlucian94
Copy link
Contributor

@dillaman thanks for looking into it. In this case, I think we can safely use GetOverlappedResult since we're getting the result of an async operation that's expected to be completed, so we don't really need the timeout parameter or alertable wait flag: https://github.com/ceph/ceph/blob/master/src/tools/rbd_wnbd/rbd_wnbd.cc#L402-L405

One issue with mingw-w64 v5.0.3 is that the runtime is broken (fixed in v7.0.0). For example, the random number generator returns the same sequence, so we had separate processes using the same connection IDs :). That's ok as long as we only care about checking if it still compiles, but the resulting binaries are unusable. I think I'll have to include this in the Windows readme.

I'll also check if we can get the latest mingw version to work on Ubuntu Bionic.

@petrutlucian94
Copy link
Contributor

I've submitted a simple PR, switching to GetOverlappedResult: ceph/ceph#39707. I gave it a quick try as well, works as expected.

@dillaman
Copy link
Author

dillaman commented Feb 25, 2021

@petrutlucian94 The builders use pbuilder on bionic when building the different distros (xenial, bionic, focal, etc). If we cannot build on bionic, I think then the next available solution would be to tweak the builder script to execute inside a pbuilder environment that pulls in focal packages.

@dillaman
Copy link
Author

The builder is passing now 🥳 [1]. Once the builds are usable, though, we can merge this and then tie it into the master and pacific branch builders.

[1] https://jenkins.ceph.com/job/ceph-dev-new-build/ARCH=x86_64,AVAILABLE_ARCH=x86_64,AVAILABLE_DIST=windows,DIST=windows,MACHINE_SIZE=gigantic/52253//consoleFull

@dillaman
Copy link
Author

... need to investigate why chacra isn't showing the ceph.zip artifact in the "repo", though [1]

https://2.chacra.ceph.com/r/ceph/wip-jd-testing/9e88f36e5c97454a70221e74f1c942dded67fa73/windows/1809/flavors/default/

@dillaman
Copy link
Author

... need to investigate why chacra isn't showing the ceph.zip artifact in the "repo", though [1]

https://2.chacra.ceph.com/r/ceph/wip-jd-testing/9e88f36e5c97454a70221e74f1c942dded67fa73/windows/1809/flavors/default/

Now tracked here [1]

[1] ceph/chacra#284

@petrutlucian94
Copy link
Contributor

I've submitted a PR for using Ubuntu Focal through pbuilder: #1755

@dillaman
Copy link
Author

dillaman commented Mar 2, 2021

@dillaman dillaman merged commit 6da2e3c into master Mar 2, 2021
@dillaman dillaman deleted the wip-win32-build-trigger branch March 2, 2021 14:39
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.

2 participants