Details
-
Bug
-
Resolution: Moved
-
P3: Somewhat important
-
None
-
5.12.1
-
None
-
Running on PELUX
Description
Initially, Youtube app is killed automatically becase of sandbox setting
After we set the QTWEBENGINE_DISABLE_SANDBOX=1 environment variable, crashing issue of Youtube has resolved.
[4319:4319:0314/025232.432287:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
74 void ZygoteHostImpl::Init(const base::CommandLine& command_line) { 75 if (command_line.HasSwitch(service_manager::switches::kNoSandbox)) { 76 return; 77 } ~snip~ 88 if (!sandbox::Credentials::GetRESIds(&uid, &gid) || uid == 0) { 89 LOG(ERROR) << "Running as root without --" 90 << service_manager::switches::kNoSandbox 91 << " is not supported. See https://crbug.com/638180."; 92 exit(EXIT_FAILURE); 93 } ~snip~
But, Youtube still doesn't work because of blocking issue.
root@localhost:~# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 3964 3.8 1.4 2244492 227296 pts/0 Sl+ 02:52 0:01 /opt/neptune3/neptune3-ui -r --dbus session -c am-config-neptune.yaml -platform eglfs root 3965 0.0 0.0 111592 3624 ? Ss 02:52 0:00 /opt/neptune3/neptune3-ui: sudo helper root 3978 0.0 0.0 50276 10144 pts/0 S+ 02:52 0:00 /opt/neptune3/RemoteSettingsServer root 3988 0.3 0.4 1021964 64360 pts/0 Sl+ 02:52 0:00 /usr/bin/appman-launcher-qml: com.pelagicore.climate root 3989 0.4 0.4 940620 69112 pts/0 Sl+ 02:52 0:00 /usr/bin/appman-launcher-qml: com.pelagicore.hud root 3990 2.7 0.9 2726384 155664 pts/0 Sl+ 02:52 0:01 /usr/bin/appman-launcher-qml: com.theqtcompany.cluster root 3991 0.7 0.5 972156 85196 pts/0 Sl+ 02:52 0:00 /usr/bin/appman-launcher-qml: com.pelagicore.calendar root 3992 0.7 0.5 841480 86520 pts/0 Sl+ 02:52 0:00 /usr/bin/appman-launcher-qml: com.pelagicore.phone root 4075 0.2 0.4 711952 66488 pts/0 Sl+ 02:52 0:00 /usr/bin/appman-launcher-qml: com.pelagicore.youtube root 4091 0.0 0.2 219768 37944 pts/0 S+ 02:52 0:00 /usr/lib/libexec/QtWebEngineProcess --type=zygote --no-sandbox --webengine-schemes=qrc:sLV --lang=en-US ### QtWebEngineProcess root@localhost:~# strace -fF -p 4091 strace: Process 4091 attached futex(0x7fa4620c00, FUTEX_WAIT_PRIVATE, 1, NULL ### Youtube app root@localhost:~# strace -fF -p 4075 strace: Process 4075 attached with 15 threads [pid 4090] ppoll([{fd=98, events=POLLIN}, {fd=97, events=POLLIN}], 2, NULL, NULL, 0 <unfinished ...> [pid 4089] ppoll([{fd=20, events=POLLIN}], 1, NULL, NULL, 0 <unfinished ...> [pid 4088] ppoll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, NULL, NULL, 0 <unfinished ...> [pid 4087] futex(0x399be80, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4086] ppoll([{fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}], 4, NULL, NULL, 0 <unfinished ...> [pid 4085] futex(0x397dd38, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4084] futex(0x397dc90, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4083] futex(0x397dbe8, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4082] futex(0x397db40, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4081] futex(0x397da98, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4080] futex(0x397d9f0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4079] futex(0x397d948, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4078] futex(0x397d8a0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4077] futex(0x7f7e4714a0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, 0xffffffff <unfinished ...> [pid 4075] read(100, ^Cstrace: Process 4075 detached ### FD 100 of Youtube is a socket. root@localhost:/proc/4075/fd# ls -l|grep 100 lrwx------ 1 root root 64 Mar 14 03:01 100 -> socket:[29786]
Only if QtWebEngine works with single process mode, Youtube app works well and video playing has not a problem.
If Neptune's UID is root, there is a problem of sandbox, so we need to add --no-sandbox option too.
# export QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --single-process"