Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 830661 - dev-qt/qtwebengine-5.15.2_p20211216: fails pre-emerge checks when distcc or large host is used because of too high RAM requirements
Summary: dev-qt/qtwebengine-5.15.2_p20211216: fails pre-emerge checks when distcc or l...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-05 23:25 UTC by Zoltan Puskas
Modified: 2022-01-19 21:16 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
0001-dev-qt-qtwebengine-UNTESTED.-extend-ram-check-for-di.patch (0001-dev-qt-qtwebengine-UNTESTED.-extend-ram-check-for-di.patch,2.09 KB, patch)
2022-01-06 05:20 UTC, Georgy Yakovlev
Details | Diff
emerge --ask dev-qt/qtwebengine (qtwebengine,10.14 KB, application/octet-stream)
2022-01-19 19:14 UTC, zafarella
Details
/etc/portage/make.conf (file_830661.txt,1.01 KB, text/plain)
2022-01-19 19:15 UTC, zafarella
Details
$ cat /etc/fstab (file_830661.txt,278 bytes, text/plain)
2022-01-19 19:16 UTC, zafarella
Details
emerge --info '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo' (file_830661.txt,6.51 KB, text/plain)
2022-01-19 19:24 UTC, zafarella
Details
emerge -pqv '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo' (file_830661.txt,1.51 KB, text/plain)
2022-01-19 19:25 UTC, zafarella
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zoltan Puskas 2022-01-05 23:25:52 UTC
Latest update breaks qtwebengine ebuild if one tries to compile it with a more powerful host or if distcc is enabled. Latest patch to the ebuild looks at the `make -j` options to compute the memory requirements like so:

  local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G

However this does not take into account that -j can be high due to distcc usage when compiling said package and blocks the ebuild with large memory requirements.

Even without distcc this memory requirement seems to be overly aggressive. Having 16-32 cores is relatively accessible these days (e.g. Ryzen 3950X, which is at this point 2 years old), which would compute to a 32-64GB memory requirement, which I feel is probably less common (due to memory prices or motherboard limitations, or lack of need, e.g. 32 core + 32GB host would fail this requirement).

Qtwebengine is based on Chromium 87.0.4280, which is older than the actual browser (www-client/chromium-98.0.4758.9) we have in tree and the latter can be built with a 16GB memory requirement. While there might be some differences between qtwebengine and Chromium build process, I doubt it's this big (though I'm not an expert here), given that the previous version (5.15.2_p20211019) of this ebuild built just fine.

Reproducible: Always

Steps to Reproduce:
1. try to update qtwebengine
Actual Results:  

>>> emerge -1 qtwebengine 
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Running pre-merge checks for dev-qt/qtwebengine-5.15.2_p20211216
 * Checking for at least 192 GiB RAM ...                                                                                                                                                                                                                                                                                        [ !! ]
 * There is NOT at least 192 GiB RAM
 * Checking for at least 7 GiB disk space at "/tmp/portage/dev-qt/qtwebengine-5.15.2_p20211216/temp" ...                                                                                                                                                                                                                        [ ok ]
 * Checking for at least 150 MiB disk space at "/usr" ...                                                                                                                                                                                                                                                                       [ ok ]
 *
 * Space constraints set in the ebuild were not met!
 * The build will most probably fail, you should enhance the space
 * as per failed tests.
 *
 * ERROR: dev-qt/qtwebengine-5.15.2_p20211216::gentoo failed (pretend phase):
 *   Build requirements not met!
 *
 * Call stack:
 *                             ebuild.sh, line 127:  Called pkg_pretend
 *   qtwebengine-5.15.2_p20211216.ebuild, line 145:  Called qtwebengine_check-reqs
 *   qtwebengine-5.15.2_p20211216.ebuild, line 141:  Called check-reqs_pkg_pretend
 *                     check-reqs.eclass, line  98:  Called check-reqs_pkg_setup
 *                     check-reqs.eclass, line  89:  Called _check-reqs_output
 *                     check-reqs.eclass, line 296:  Called die
 * The specific snippet of code:
 *              [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && \
 *                      die "Build requirements not met!"
 *
 * If you need support, post the output of `emerge --info '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo'`.
 * The complete build log is located at '/tmp/portage/dev-qt/qtwebengine-5.15.2_p20211216/temp/build.log'.
 * The ebuild environment file is located at '/tmp/portage/dev-qt/qtwebengine-5.15.2_p20211216/temp/die.env'.
 * Working directory: '/tmp/portage/dev-qt/qtwebengine-5.15.2_p20211216/empty'
 * S: '/tmp/portage/dev-qt/qtwebengine-5.15.2_p20211216/work/qtwebengine-5.15.2_p20211216'

Expected Results:  

qtwebengine proceeds and compiles


>>> emerge --info qtwebengine
Portage 3.0.30 (python 3.9.9-final-0, default/linux/amd64/17.1/desktop/plasma/systemd, gcc-10.3.1, glibc-2.34-r4, 5.15.11-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.15.11-gentoo-x86_64-Intel-R-_Core-TM-_i7-8550U_CPU_@_1.80GHz-with-glibc2.34
KiB Mem:    32773940 total,  24793584 free
KiB Swap:    2097128 total,   2097128 free
Timestamp of repository gentoo: Wed, 05 Jan 2022 08:30:01 +0000
Head commit of repository gentoo: 51126a5987daca8a9ceb8dd9545300efb32373c7
sh bash 5.1_p12
ld GNU ld (Gentoo 2.37_p1 p1) 2.37
distcc 3.4 x86_64-pc-linux-gnu [enabled]
app-misc/pax-utils:        1.3.3::gentoo
app-shells/bash:           5.1_p12::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.34.0-r6::gentoo
dev-lang/python:           2.7.18_p13::gentoo, 3.8.12_p1::gentoo, 3.9.9::gentoo, 3.10.1-r1::gentoo
dev-lang/rust:             1.57.0::gentoo
dev-util/cmake:            3.22.1::gentoo
dev-util/meson:            0.60.3::gentoo
sys-apps/baselayout:       2.8::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-apps/systemd:          250-r1::gentoo
sys-devel/autoconf:        2.13-r1::gentoo, 2.71-r1::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.37_p1-r1::gentoo
sys-devel/binutils-config: 5.4::gentoo
sys-devel/clang:           13.0.0::gentoo
sys-devel/gcc:             10.3.1_p20211126::gentoo
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.6-r6::gentoo
sys-devel/llvm:            13.0.0::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.34-r4::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://lambda/gentoo-portage
    priority: -1000
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1

sinustrom-test
    location: /var/db/repos/sinustrom-test
    masters: gentoo

sinustrom
    location: /var/lib/layman/sinustrom
    sync-type: laymansync
    sync-uri: https://github.com/zpuskas/sinustrom-gentoo-overlay.git
    masters: gentoo
    priority: 50

Installed sets: @openwrt-prerequisites
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=skylake -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -msgx -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mclflushopt -mxsavec -mxsaves --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=skylake -O3 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=skylake -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -msgx -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mclflushopt -mxsavec -mxsaves --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=skylake -O3 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live cgroup collision-protect config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict strict-keepdir unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="rsync://lambda/gentoo-distfiles http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0"
MAKEOPTS="-j96 -l8"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/tmp"
SHELL="/bin/zsh"
USE="X a52 aac acl acpi activities aes alsa amd64 avx avx2 bash-completion bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr emboss encode exif f16c flac fma3 fortran gdbm gif gphoto2 gpm gtk gui hardened iconv icu ipv6 jpeg jpeg2k kde kipi kwallet lcms libglvnd libnotify libtirpc lm_sensors lzma mad mmx mmxext mng mp3 mp4 mpeg multilib ncurses networkmanager nls nptl ogg opencl opengl openmp pam pango pclmul pcre pdf plasma png policykit popcnt posix ppds pulseaudio qml qt5 readline sdl seccomp smp spell split-usr sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification svg systemd threads tiff truetype udev udisks unicode upower usb uxa vaapi vdpau vim-syntax vorbis widgets wifi wxwidgets x264 xattr xcb xml xpm xv xvid zlib zstd" ABI_X86="64" ADA_TARGET="gnat_2020" ALSA_CARDS="hda-intel usb-audio" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput wacom synaptics joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="x86 BPF" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" QEMU_SOFTMMU_TARGETS="x86_64 arm aarch64" QEMU_USER_TARGETS="x86_64 arm aarch64" RUBY_TARGETS="ruby27 ruby30" SANE_BACKENDS="plustek genesys pixma" USERLAND="GNU" VIDEO_CARDS="intel i965 nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

=================================================================
                        Package Settings
=================================================================

dev-qt/qtwebengine-5.15.2_p20211216::gentoo was built with the following:
USE="alsa jumbo-build pulseaudio system-ffmpeg system-icu widgets -bindist -debug -designer -geolocation -kerberos -test" ABI_X86="(64)"
FEATURES="binpkg-dostrip pid-sandbox usersandbox userpriv fixlafiles ipc-sandbox preserve-libs qa-unresolved-soname-deps parallel-fetch sandbox xattr strict sfperms buildpkg-live network-sandbox binpkg-docompress config-protect-if-modified userfetch cgroup merge-sync collision-protect protect-owned strict-keepdir unmerge-logs binpkg-logs fail-clean distlocks multilib-strict unmerge-orphans distcc binpkg-multi-instance news ebuild-locks usersync unknown-features-warn assume-digests"
Comment 1 Georgy Yakovlev archtester gentoo-dev 2022-01-05 23:52:52 UTC
CHECKREQS_MEMORY_MANGLE_JOBS=no

in make.conf should prevent this from happening.

it will be fixed for distcc usecase a bit later.


details: https://archives.gentoo.org/gentoo-dev/message/2c399e67d1445d73ff467e5e27782e26
Comment 2 Georgy Yakovlev archtester gentoo-dev 2022-01-05 23:59:31 UTC
please ignore ^ comment. this will not help and is not merged yet.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-01-06 04:42:55 UTC
1. check-reqs can be bypassed anyway
2. It's a valid point that we should skip on distcc
3. I really don't think 2GB per job is aggressive at all for this.. it's not about core count.
Comment 4 Georgy Yakovlev archtester gentoo-dev 2022-01-06 04:56:13 UTC
typical usecase with distcc is to specify load-avg equal to local cores.
so we could detect if distcc enabled and use $(makeopts_loadavg) and fall-back to $(get_nproc) if former is not specified.
Comment 5 Georgy Yakovlev archtester gentoo-dev 2022-01-06 05:20:01 UTC
Created attachment 761388 [details, diff]
0001-dev-qt-qtwebengine-UNTESTED.-extend-ram-check-for-di.patch

sample patch. I think I've covered the gotchas, but it's completely untested.
Comment 6 Larry the Git Cow gentoo-dev 2022-01-06 19:57:54 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/qt.git/commit/?id=61c6b4e97824f4547983dffead5ca392d825cbbc

commit 61c6b4e97824f4547983dffead5ca392d825cbbc
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-01-06 19:53:32 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-01-06 19:57:15 +0000

    dev-qt/qtwebengine: disable CHECKREQS_MEMORY for distcc
    
    It's harder to calculate properly for this case.
    
    Bug: https://bugs.gentoo.org/830661
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-qt/qtwebengine/qtwebengine-5.15.2.9999.ebuild | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Comment 7 Larry the Git Cow gentoo-dev 2022-01-06 19:59:53 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b2510ae5cffece67dc8b03cd463d23eaaa3bebe

commit 2b2510ae5cffece67dc8b03cd463d23eaaa3bebe
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-01-06 19:53:32 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-01-06 19:59:43 +0000

    dev-qt/qtwebengine: disable CHECKREQS_MEMORY for distcc
    
    It's harder to calculate properly for this case.
    
    Bug: https://bugs.gentoo.org/830661
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-qt/qtwebengine/qtwebengine-5.15.2_p20211216.ebuild | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Comment 8 zafarella 2022-01-19 19:09:14 UTC
same on my end. Really sucks :). See attached relevant outputs. Machine = 
h t t p s : // linux-hardware.org/?probe=597fae9cb6
Comment 9 zafarella 2022-01-19 19:14:32 UTC
Created attachment 762713 [details]
emerge --ask dev-qt/qtwebengine

$ emerge --ask dev-qt/qtwebengine
Comment 10 zafarella 2022-01-19 19:15:59 UTC
Created attachment 762714 [details]
/etc/portage/make.conf

cat /etc/portage/make.conf
Comment 11 zafarella 2022-01-19 19:16:41 UTC
Created attachment 762715 [details]
$ cat /etc/fstab

$ cat /etc/fstab
Comment 12 zafarella 2022-01-19 19:24:42 UTC
Created attachment 762716 [details]
emerge --info '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo'
Comment 13 zafarella 2022-01-19 19:25:50 UTC
Created attachment 762717 [details]
emerge -pqv '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo'

emerge -pqv '=dev-qt/qtwebengine-5.15.2_p20211216::gentoo'
Comment 14 zafarella 2022-01-19 20:09:15 UTC
`export I_KNOW_WHAT_I_AM_DOING=1` 
works
Comment 15 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-01-19 21:16:32 UTC
(In reply to zafarella from comment #8)
> same on my end. Really sucks :). See attached relevant outputs. Machine = 
> h t t p s : // linux-hardware.org/?probe=597fae9cb6

I don't actually see the problem though. Please share the log of it failing and explain why you feel it's okay.

We already added the exception for distcc and the general RAM requirement for qtwebengine is correct anyway.