| Summary: | pigz has resource race issues | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Richard Purdie <richard.purdie> | ||||
| Component: | devtools / tool chain | Assignee: | Unassigned <unassigned> | ||||
| Status: | RESOLVED WORKSFORME | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | Medium | CC: | meta.mr.watcher, meta.watcher, mhalstead, randy.macleod, ross.burton | ||||
| Version: | 1.8 | ||||||
| Target Milestone: | Future | ||||||
| Hardware: | x86 | ||||||
| OS: | Multiple | ||||||
| Whiteboard: | |||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |||||
| Attachments: |
|
||||||
|
Description
Richard Purdie
2015-07-03 14:45:07 UTC
Created attachment 2576 [details]
Open file descriptor logging during the build
If it's relevant it looks like pokybuild was out of allowed open file handles. We were nowhere near the system limit: sysctl fs.file-nr fs.file-nr = 1248 0 6553322 But pokybuild is much more constrained. ulimit -Sn 1024 ulimit -Hn 4096 During the build there were some points that the open descriptors went over 8000. Linux 2.6.32-504.23.4.el6.x86_64 (centos6.osl.yoctoproject.org) 07/03/2015 _x86_64_ (24 CPU) 12:00:01 AM dentunusd file-nr inode-nr pty-nr 12:10:01 AM 1301816 8064 844409 4 12:20:01 AM 1254938 6336 742260 4 12:30:02 AM 1907781 5712 1061746 4 12:40:01 AM 1657203 6624 990812 4 12:50:01 AM 2052072 7728 1160877 4 01:00:01 AM 2152702 8736 1226978 4 01:10:01 AM 2204908 8064 1227499 4 01:20:02 AM 2125034 6528 1139800 4 01:30:01 AM 2223994 8688 1174059 4 01:40:02 AM 1808354 5856 966341 4 01:50:01 AM 1853701 7008 900623 4 Should pokybuild's limits be raised? 8000 does seem a little excessive but we are running multiple builds, and each bitbake will open inotify monitors for all of the layers, so that's a lot of FDs. I say increase it. Every builder was set to 1024/4096 except for debian8 which is 65536/65536. Inotify watches are max 8192 on all hosts except opensuse131 where it's 65536. I'll raise it to 65536 in every case since we have plenty of memory. Do we need to document that for end users? To test the hypothesis that this is resource limits you can use ulimit in a shell. -n will set the number of open file descriptors, for a start (and despite the documentation, works on Linux). This hasn't been seen on the YP autobuilder or by other users so closing. |