Comments (16)
OK, have switch the MacPorts build to use ninja. We run a test to see if this shows the issue or not.
from root.
Update. The issue appears to be some sort of race-like condition in the build configuration, as disabling parallel builds
cmake --build . 2>&1 | tee ../build.log
works just fine.
from root.
IIRC that's just the build running out of file (or other) handles. You should be able to do parallel builds, but not as parallel, or raise the limits. Could you try?
from root.
How would I do that ? As far as I am aware I have no limits set.
Also, why would this only affect 6.22.02 ? The very same machine has no problems with any other ROOT versions ?
from root.
Right, so here's the Internet's cue: http://gnu-make.2324884.n4.nabble.com/EAGAIN-in-read-jobs-pipe-tp1224p1228.html
ulimit -a
shows you "Maximum number of open file descriptors"; for me it shows the macOS default of 256 which is notoriously low. Try setting that tom 1024 and see whether it helps?
As for a less parallel build: cmake --build . -j8
might work?
from root.
Oberon ~/Projects/MacPorts/ports > ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 2784
-n: file descriptors 2560
So no, the limit is not 256.
Please also note even if this is related to the problem, changing ulimit is not a practical solution in terms of fixing our automated builds in MacPorts, as I cannot request every user and the build systems make any changes to these settings. Also note we have NEVER run into an issue with any other port, or ROOT version, prior to 6.22.02, so I still maintain even if this is what is happening the core issue is something in the ROOT build system, new in 6.22.02, that is causing this.
from root.
Thanks. I'm evaluating what might be the cause, and the number of file handles is the only possible cause that I am aware of. If it's not that then I don't know. I remember this issue in the old days with Cygwin's make
. Do you see the same issue with ninja? I suppose you use Macport's make
?
from root.
We use the macOS system make /usr/bin/make
, not one supply by macports.
from root.
Thanks. Does Ninja show the same issue?
I'm asking all these questions because in all our builds we have never seen that error.
from root.
how do I build with ninja ?
from root.
also note I also do not see the issue with a default configuration. I only see it when I enabled additional features. I presume you also test these in your builds ?
from root.
cmake -G Ninja
. And you need ninja
; you can grab it from https://github.com/ninja-build/ninja/releases but I bet MacPorts already has is?
from root.
Indeed we have a couple of options enabled - but as MacOS proper doesn't offer a lot we also don't build with a lot. But this part -G "CodeBlocks - Unix Makefiles"
is probably crucial. How does -G "Unix Makefiles"
work?
from root.
Honestly, I don't know much about that. I just cloned the cmake configuration from the exact command used internally by the MacPorts build, so its added by that. I will have to investigate the reasons for this.
from root.
ninja based builds work just fine in parallel, so this does seem a good way to sidestep the gnu make build issues, particularly as I now understand ninja is anyway the primary build system used by ROOT devs.
from root.
OK closing - let me know if there's something we can do on our side.
from root.
Related Issues (20)
- [ntuple] add streamer info records to TFile
- [ci] Automatize the process of backporting HOT 8
- Deploy root on pip HOT 2
- compilation error HOT 4
- [master] root cppyy changes causing issues in dependent python projects HOT 6
- hadd issue when using parallelization together with indirect file HOT 10
- VecOps::Take with default argument doesn't check correctly the out of boundary condition HOT 4
- ROOT installs libraries at the top-level site-packages directory HOT 1
- ROOT Fails to build macOS 14.4 arm64 Xcode 15.3 HOT 3
- Per RSample friend tree + option to BuildIndex
- (Web) graphics does not work from PyROOT HOT 7
- [ntuple] Document more about how footer extension works HOT 12
- [cmake] Glob when copying headers and tutorials HOT 6
- ROOT_HEAD failed with error message: Fail to detect cryptographic random generator HOT 4
- Merging of custom Histograms does not work if the Merge method is protected HOT 10
- ROOT-HEAD fails with "cling interactive line includer >>>: fatal error: module file '[snip]/Vc.pcm' not found: module file not found" HOT 18
- Fix print check for object that return different types for begin() and end()
- [ci] Add a workflow that builds cling standalone and runs its tests HOT 6
- RVecs leak memory with np.asarray in pyROOT HOT 1
- [ci] Improve the caching of the nodes instead of more nodes HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from root.