Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
The abomination called "dev-qt/qtwebengine"
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 6:22 am    Post subject: The abomination called "dev-qt/qtwebengine" Reply with quote

I'm not sure how I avoided it for a few cycles, perhaps laziness or not noticing qtwebkit going away, but a recent attempt at building some package pulled it into the dep tree and oh-my-gawd...

6GB disk usage...

no, not that.

2GB cc1plus proceses!

No, not just that... hundreds of 2GB cc1plus processes that needs to be run to complete!

I suppose using jumbo-build (default?) supposedly decreases build time but oh my, this uses a lot of RAM. What's scary is that I have distcc going and...

QTWEBENGINE single handedly KILLED MY WHOLE DISTCC FARM! (This isn't ddos or dos, more like smdocf or something... single machine denial of compute farm) Well, not exactly 'killed' due to nice, but distcc indeed spread the pain. Oh my goodness, all of my machines were taking these jumbo builds and swap thrashing their usual jobs with the ginormous distcc cc1plus jobs...

Not only they're ginormous, distcc gave up waiting for some of the machines waiting for them to complete, wasting that build time even though it eventually finished with swapping.

Ok done with rant. Probably with distcc I should disable jumbo build, or what have people been using for this?

2021-03-18T10:07:43 >>> dev-qt/qtwebengine-5.15.2_p20210224: 2:12:27
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Sat Mar 20, 2021 7:00 am    Post subject: Re: The abomination called "dev-qt/qtwebengine" Reply with quote

eccerr0r wrote:
2GB cc1plus proceses!

No, not just that... hundreds of 2GB cc1plus processes that needs to be run to complete!
Each cc1process, when finished, stores its output into your portage temp dir?
Using --pipe would really stress test your machine. :P

I've been building all the webkit packages with -j "$(($(nproc) / 2))"... but that doesn't really solve the problem you have. I usually don't have problem with long compile times, so I don't use jumbo-build. And ...wasn't jumbo-building deprecated by upstream?
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 2:32 pm    Post subject: Reply with quote

Not sure if it was deprecated but it's still the default USE for the version I built. Disabling jumbo builds probably will help, and if long term this needs to be disable, all the better for consistency.

I'm just surprised these jobs were so large - the GbE network didn't flinch at the files transmitted to the helpers, but once the helpers got the job, they themselves needed help, I didn't recall ever seeing distcc jobs so big but I've heard of all these 2GB c++ jobs before, but not until now did I experience this pain.

At least this seems to be the exception -- and I think I need to put more RAM into the quad core machines...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31259
Location: here

PostPosted: Sat Mar 20, 2021 3:01 pm    Post subject: Re: The abomination called "dev-qt/qtwebengine" Reply with quote

Zucca wrote:
...wasn't jumbo-building deprecated by upstream?

Yes in chromium was removed but seems that for the moment qtwebengine continue the support
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3852

PostPosted: Sat Mar 20, 2021 4:02 pm    Post subject: Re: The abomination called "dev-qt/qtwebengine" Reply with quote

@Zucca,
Zucca wrote:
I've been building all the webkit packages with -j "$(($(nproc) / 2))"...
Nice tip from sys-apps/coreutils.:D
Thks 4 ur attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Sat Mar 20, 2021 4:07 pm    Post subject: Re: The abomination called "dev-qt/qtwebengine" Reply with quote

CaptainBlood wrote:
Nice tip
In some setups nproc --all might fit better. ;)
Also it does not take systems with odd number of cores into account... Although I think three core CPU's were the only ones with odd number of cores. But then there are those ARM CPU's which have little.BIG (or what was it called..?) layout... Oh well. going OT too much.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 4:17 pm    Post subject: Reply with quote

I don't think it's nproc/2 that's best... for x86_64, if you have a little bit of swap, it seems that the best is take how much RAM in gigabytes you have and divide by 2. That should be your max processes for qtwebengine[jumbo-build]. This should work for virtual CPU(multithread) machines too that nproc might get too greedy.

For distcc farms, this is more of a challenge since distcc seems to willy nilly submit jobs and hope they come back and can't ask the remote machines how much RAM they have... eek.

Will have to see what the difference is if I disable jumbo build when it comes time to build again...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3852

PostPosted: Sat Mar 20, 2021 4:46 pm    Post subject: Reply with quote

I was more thanking for exposing the command itself, so nothing regarding qtwebengine per see, especially.
Likely to be helpful simplify SMT status integration to MAKEOPTS default and package specific settings.

Thks 4 ur attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 6:13 pm    Post subject: Reply with quote

Ah okay, still trying to figure out what's the best build option for speed. Probably not a one size fit all, which kind of makes it tough to maintain.

Sort of trouble for me too, when I upgraded a dual core to a quad core CPU... what are the correct options after the upgrade when the amount of RAM did not increase. Some packages will still take benefit from the two extra cores...

... and this abomination qtwebengine will just thrash.
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Sat Mar 20, 2021 6:25 pm    Post subject: Reply with quote

eccerr0r wrote:
For distcc farms, this is more of a challenge since distcc seems to willy nilly submit jobs and hope they come back and can't ask the remote machines how much RAM they have... eek.
I think this needs improvements. Maybe submit a bug?

It maybe hard to implement any automatic "memory-calculator" for each job, but if distcc could accept some environment variable, then using package.env would yield to some sort of a solution.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 6:38 pm    Post subject: Reply with quote

Hard to say what the best solution is. Polling information about helpers sounds like a good idea, though, and then the help requester could figure out how to best distribute jobs - dump the big jobs on the big machines, and try to localhost all the small jobs.
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22634

PostPosted: Sat Mar 20, 2021 6:44 pm    Post subject: Reply with quote

distcc understands DISTCC_HOSTS to limit the hosts to which it can distribute, and you can set that in package.env. That is still a manual solution though, as it requires the administrator to determine on a per-package basis which hosts should be used/skipped. On the other hand, the administrator may want to tune MAKEOPTS down when running packages for which few hosts will offer distcc assistance, so at least both knobs would be set in the same place.
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Sat Mar 20, 2021 7:00 pm    Post subject: Reply with quote

It appears distcc will select the earlier machines in DISTCC_HOST as preference but it would be kind of dumb to send the small jobs to the preferred machine first, then when a big job comes, submit it to the nonpreferred machines...

But yeah unfortunately seems that it's necessary to maintain custom distcc configs for qtwebengine along with gcc and rust, my package.env is getting contaminated with tons of crap...

(gcc - compile locally because gcc doesn't properly honor different make flags for stage 1, and stage 2/3 can't be distributed, and gcc-fortran technically should be distributed... ARRGH.
rust - again, or at least partially stage 0/1 can technically can be distributed, but the rusty parts cannot and should have its own flags.
and now qtwebengine needs only the biggest and best machines, and drop all the mere 1G machines from distcc_hosts...)

I wish "load average" was a better metric of actual CPU utilization... but instead it's a reason for ninja to go ahead and submit all -j 999 jobs to localhost when the load average drops to 0.5 after a bunch of jobs finish at the same time...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
xahodo
Tux's lil' helper
Tux's lil' helper


Joined: 17 May 2007
Posts: 82
Location: Gouda, the Netherlands

PostPosted: Sun Mar 21, 2021 5:44 pm    Post subject: Reply with quote

Well, I just put -j1 into my MAKEOPTS for qtwebengine. It'll take longer to build (24 hours), but at least I can still use my computer.
Back to top
View user's profile Send private message
Gatsby
Tux's lil' helper
Tux's lil' helper


Joined: 18 Jan 2010
Posts: 121
Location: 127.0.0.1

PostPosted: Tue Mar 23, 2021 9:09 pm    Post subject: Reply with quote

Yeah, qtwebengine is indeed insane shit, like almost all, coming from Google.
_________________
"Its your Gentoo, your way. When it breaks, you can keep all the pieces."
-- NeddySeagoon@forums.gentoo.org
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Tue Mar 23, 2021 10:07 pm    Post subject: Reply with quote

Gatsby wrote:
Yeah, qtwebengine is indeed insane shit, like almost all, coming from Google.
I thought it was WebKit based (in which Google doesn't have part anymore). :o

I wish there was a single <browserengine>lib so that each project could then use it. I think at some point we had three libraries which all included some sort of WebKit/Blink engine.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 9262

PostPosted: Tue Mar 23, 2021 10:11 pm    Post subject: Reply with quote

The rough lineage is KHTML -> webkit -> chromium/webengine.
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Tue Mar 23, 2021 10:13 pm    Post subject: Reply with quote

asturm wrote:
The rough lineage is KHTML -> webkit -> chromium/webengine.

So gtk has webkit based and qt has blink based?
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9824
Location: almost Mile High in the USA

PostPosted: Wed Mar 24, 2021 2:19 am    Post subject: Reply with quote

xahodo wrote:
Well, I just put -j1 into my MAKEOPTS for qtwebengine. It'll take longer to build (24 hours), but at least I can still use my computer.

What I wonder is how disabling jumbo-build and use -j <correct jobs for your CPU> differs than jumbo build and -j1 ... ?
Might be an experiment worth testing...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
sdauth
l33t
l33t


Joined: 19 Sep 2018
Posts: 650
Location: Ásgarðr

PostPosted: Wed Mar 24, 2021 9:55 am    Post subject: Reply with quote

Personally, I was only tied to it because of media-video/openshot (and dev-python/PyQtWebEngine) so I replaced openshot with media-video/shotcut to get rid of it.

Code:
Wed Feb 17 07:19:40 2021 >>> dev-qt/qtwebengine-5.15.2
 merge time: 8 hours, 4 minutes and 2 seconds.


... was just too crazy for one single dep.
Back to top
View user's profile Send private message
Jojobinha_2009
Tux's lil' helper
Tux's lil' helper


Joined: 27 Mar 2021
Posts: 77
Location: Brazil

PostPosted: Sat Apr 03, 2021 12:04 am    Post subject: This is why I completely avoid installing it. Reply with quote

Whenever I go to install Gentoo, the first thing I do is edit the make.conf and place "-qtwebengine" and "-webengine" in my USE flags.
Avoids 4+ hours of compiling...
_________________
Intel Core i5-9400F / 24GB DDR4 2666MHz / GeForce GTX 1060 3GB

Powered by Gentoo for x86_64

======================================================

Seize the day, and remember to have fun!
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3852

PostPosted: Sun Apr 04, 2021 10:23 am    Post subject: Reply with quote

Code:
dev-qt/qtwebengine
Installed versions:  5.15.2(5/5.15)^t(02:13:22 12/01/2021)(system-ffmpeg system-icu widgets -alsa -bindist -debug -designer -geolocation -kerberos -pulseaudio -test)
fails to update here to latest stable 5.15.2_p20210224.
Build log reports:
Code:
[3127/23943] /var/no-tmpfs/portage/dev-qt/qtwebengine-5.15.2_p20210224/temp/python2.7/bin/python2 ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/node/node.py ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup --silent --plugin terser --config ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/rollup.config.js --input gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.prebundle.js --file gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.js
FAILED: gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.js
/var/no-tmpfs/portage/dev-qt/qtwebengine-5.15.2_p20210224/temp/python2.7/bin/python2 ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/node/node.py ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup --silent --plugin terser --config ../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/rollup.config.js --input gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.prebundle.js --file gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.js
Traceback (most recent call last):
  File "../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/node/node.py", line 63, in <module>
    RunNode(sys.argv[1:])
  File "../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/node/node.py", line 58, in RunNode
    raise RuntimeError('%s failed: %s' % (cmd, stderr))
RuntimeError: ['/usr/bin/node', '../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup', '--silent', '--plugin', 'terser', '--config', '../../../../qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/rollup.config.js', '--input', 'gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.prebundle.js', '--file', 'gen/third_party/devtools-frontend/src/front_end/dom_extension/dom_extension.js'] failed: internal/util.js:119
    throw new ERR_NO_CRYPTO();
    ^

Error [ERR_NO_CRYPTO]: Node.js is not compiled with OpenSSL crypto support
    at assertCrypto (internal/util.js:119:11)
    at crypto.js:36:1
    at NativeModule.compileForInternalLoader (internal/bootstrap/loaders.js:283:7)
    at NativeModule.compileForPublicLoader (internal/bootstrap/loaders.js:225:10)
    at loadNativeModule (internal/modules/cjs/helpers.js:35:9)
    at Function.Module._load (internal/modules/cjs/loader.js:740:15)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/var/no-tmpfs/portage/dev-qt/qtwebengine-5.15.2_p20210224/work/qtwebengine-5.15.2_p20210224/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:27:14)
    at Module._compile (internal/modules/cjs/loader.js:1063:30) {
  code: 'ERR_NO_CRYPTO'
}
ninja: build stopped: subcommand failed.
Activating unconstrained nodejs[ssl] fixes here.

Thks 4 ur attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3693
Location: Rasi, Finland

PostPosted: Sun Apr 04, 2021 12:07 pm    Post subject: Reply with quote

CaptainBlood wrote:
Activating unconstrained nodejs[ssl] fixes here.
Looks like the ebuild doesn't have correct nodejs depency requirement.
Thankfully a bug has been raised for this.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum