Closed Mailaender closed 3 years ago
Hi Matthias,
thank you for packaging SeqAn for OpenSuse! Can I add you to the maintainer list in our release checklist (see in https://github.com/seqan/seqan3/issues/2685 the section "Notify upstream package maintainers:")?
We are aware that some of our tests are currently sub-optimal and need at least 4GB of RAM. As far as I can see, your VM only allows total-vm:2028824kB
= 2GB
so that might be the problem. To achieve high test coverage we do a lot of TYPED_TESTs, i.e. instantiating our templated classes with a lot of different types. Unfortunately, this leads in some cases to really expensive compile time AND memory usage. I started a design proposal in https://github.com/seqan/product_backlog/issues/257 how to split tests into smaller and manageable ones.
In https://github.com/seqan/product_backlog/issues/198 we added a goal to enforce at most 2GB ram usage in our CI, which we haven't reached yet.
- [ ] Set RAM Limit for each compiler: A test should not need more than 2Gb of RAM (ideas: https://unix.stackexchange.com/a/44987)
If you have an idea how to enforce RAM usage to not exceed a certain limit, we are happy to implement that.
Your current method of spawning a VM is not feasible for us. The solution would need to be applicable to the compiler process.
Saying all that, splitting all tests will take some time on our side; The short-term solution might be to comment out all "heavy" tests. I'll try to compile a list of all "heavy" (more than 2GB RAM) tests.
Best regards, Marcel
Adding to what @marehr already said:
If memoryperjob
in https://build.opensuse.org/package/view_file/home:Mailaender:branches:science/seqan3/_constraints is enforced (I couldn't find documentation on this config, only the others), then it is not enough.
For gcc11:
For gcc10:
For gcc9:
Thanks. The SUSE engineers told me to increase VM memory and to avoid parallel building which seems to solve the issue.
Can I add you to the maintainer list in our release checklist (see in #2685 the section "Notify upstream package maintainers:")?
@Mailaender, can I?
Might be a bit too early. I haven't managed to finally build this yet and the long build time means that it will probably take a while.
Then let's keep this one open and use it as a progress issue.
I have to admit that I cheaped out on https://build.opensuse.org/request/show/896168 as this won't run any lengthy tests.
I have to admit that I cheaped out on https://build.opensuse.org/request/show/896168 as this won't run any lengthy tests.
Hi @Mailaender, I'm not sure what you mean. Did you stop packaging seqan3 for OpenSuse? If so what can we do to make the process easier?
I just did cmake build and install the default target which actually doesn't seem to build anything, just copy headers. The Fedora package runs all those tests which cause out of memory problems in contrained VMs though also with conditionals so I am not sure if they run by default.
Platform
Description
This is a problem I am facing with both https://build.opensuse.org/package/show/home:Mailaender:branches:science/seqan and https://build.opensuse.org/package/show/home:Mailaender:branches:science/seqan3 and I don't understand it. When I build locally, my computer freezes and hard locks, so I am forced to reboot. In @openSUSE build server VMs are terminated due to excessive resource usage. I only get such behavior when opening huge files or during memory leaks. I have never encountered this while building a C++ library.
How to repeat the problem
Expected behaviour
A source code build that uses fewer resources and does not crash the system.
Actual behaviour