Skip to content

Prevent mutating the global environment pointer in CommandExt::exec and opt to use execve and resolve path manually - #157144

Open
asder8215 wants to merge 7 commits into
rust-lang:mainfrom
asder8215:commandext_exec_bug_fix
Open

Prevent mutating the global environment pointer in CommandExt::exec and opt to use execve and resolve path manually#157144
asder8215 wants to merge 7 commits into
rust-lang:mainfrom
asder8215:commandext_exec_bug_fix

Conversation

@asder8215

@asder8215 asder8215 commented May 30, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR fixes the bug described in #156951 where CommandExt::exec mutating the global environment pointer could cause correctness issue with concurrent exec calls (also this function holds an environment read lock, so it shouldn't cause any writes to the global environment pointer anyways). We do everything within CommandExt::exec via execve than execvp, which means we have to resolve the path manually.

I took reference to what was done in an archived (Feb 2026) upstream mirror of glibc's execvp and execvpe. I also took reference to #55359 on how they implemented the concerned portion of CommandExt::exec with execve. There's also this OpenBSD libc implementation of execvpe that I saw, but I didn't deeply take a look at this one and saw how it differ.

Other than that, I'm unsure how to handle the error ETIMEOUT/TimedOut as glibc breaks parsing through the PATH environment variable value and returns the error while #55359 continues parsing.

Let me know if you also want me to put some of execve code in a helper function or refactor it in other ways.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels May 30, 2026
@rustbot

rustbot commented May 30, 2026

Copy link
Copy Markdown
Collaborator

r? @joboet

rustbot has assigned @joboet.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ChrisDenton, libs
  • @ChrisDenton, libs expanded to 8 candidates
  • Random selection from Mark-Simulacrum, joboet

@rust-log-analyzer

This comment has been minimized.

@joboet joboet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I highly recommend having a look at the POSIX specification – GNU/Linux mostly follows that, but the specification sometimes leaves some things unspecified and we should be careful not to break those.

Also, this is currently unsound, we cannot perform any memory allocation in do_exec, since it's called after fork for the standard spawn path. You probably need to preallocate some memory when creating the Command (or when setting certain parameters).

View changes since this review

Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
None => c"/bin:/usr/bin".to_bytes_with_nul(),
}
}
None => parent_path.as_bytes_with_nul(),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend moving the environment variable lookup here so that it's only performed when actually needed.

Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 30, 2026
@rustbot

rustbot commented May 30, 2026

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@rustbot rustbot added the O-unix Operating system: Unix-like label May 31, 2026
@asder8215
asder8215 requested a review from joboet May 31, 2026 05:02
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 31, 2026
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/pal/unix/conf.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/process/unix/common.rs Outdated
Comment thread library/std/src/sys/process/unix/common.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 6, 2026
@asder8215
asder8215 requested a review from joboet June 8, 2026 08:36
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 8, 2026
Comment thread library/std/src/sys/process/unix/common/cstring_array.rs Outdated
@rust-log-analyzer

This comment has been minimized.

@asder8215
asder8215 force-pushed the commandext_exec_bug_fix branch from 213bb02 to 8319b09 Compare June 8, 2026 09:23
@rust-log-analyzer

This comment has been minimized.

Comment thread library/std/src/sys/process/unix/unix.rs Outdated
Comment thread library/std/src/sys/pal/unix/conf.rs Outdated
Comment thread library/std/src/sys/pal/unix/conf.rs Outdated
assert_failed(index, len);
}

self.ptrs.insert(index, item.into_raw());

@joboet joboet Jun 8, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This leaks the string if insert panics (see #155748, I made this mistake before).

View changes since the review

Comment thread library/std/src/sys/process/unix/common.rs Outdated
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 8, 2026
Comment thread library/std/src/sys/process/unix/unix.rs Outdated
@asder8215
asder8215 requested a review from joboet June 9, 2026 22:31
@asder8215
asder8215 force-pushed the commandext_exec_bug_fix branch from e3d0663 to 9851b0a Compare June 12, 2026 16:19
@asder8215
asder8215 requested a review from joboet June 12, 2026 16:19
@asder8215
asder8215 force-pushed the commandext_exec_bug_fix branch 2 times, most recently from b4723b8 to df00000 Compare June 12, 2026 16:21
@joboet

joboet commented Jun 17, 2026

Copy link
Copy Markdown
Member

Hey T-libs,

This PR makes std responsible for the PATH-lookup of programs not spawned through posix_spawnp (which doesn't apply in cases like if the PATH of the child has changed). Unfortunately, the POSIX standard leaves quite a lot up to the implementation, meaning this could change behaviour on some platforms. I'll need to do some more research to figure out the exact list, but wanted to check with you first whether

  1. You are happy with pursuing this further (CommandExt::exec writes to the global environment pointer while holding only a read lock #156951 cannot be fixed any other way unfortunately).
  2. You think we should use the same lookup logic for the posix_spawn happy path too, to keep behaviour consistent.

@rustbot label +I-libs-nominated

@rustbot rustbot added the I-libs-nominated Nominated for discussion during a libs team meeting. label Jun 17, 2026
@joshtriplett

Copy link
Copy Markdown
Member

Sounds reasonable to me.

@Amanieu

Amanieu commented Jul 1, 2026

Copy link
Copy Markdown
Member

Based on the discussion in the meeting, I'm going to propose FCP on the following:

  • We are happy to move forward with this since it seems to be the only proper solution to the problem.
  • We don't want to change path lookup on posix_spawn. If we discover inconsistency in behavior, we should fix the exec-side path lookup.

@rfcbot merge libs

@rust-rfcbot

rust-rfcbot commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

@Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@rust-rfcbot rust-rfcbot added proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. labels Jul 1, 2026
@rust-bors

This comment has been minimized.

@asder8215
asder8215 force-pushed the commandext_exec_bug_fix branch from df00000 to 4ca0e7b Compare July 7, 2026 22:06
@rustbot

This comment has been minimized.

@asder8215

Copy link
Copy Markdown
Contributor Author

Code's pretty much the same, documentation for the posix_confstr link refers to Issue 8 of confstr than Issue 7.

@joboet

joboet commented Aug 14, 2026

Copy link
Copy Markdown
Member

I started going through the mainstream UNIX systems to see whether this will change behaviour:

Target process_spawnp execvp fallback PATH fallback is PATH_DEFPATH posix_spawnp calls shell on ENOEXEC execvp calls shell on ENOEXEC
linux-glibc link link CS_PATH/bin:/usr/bin (same as confstr(_CS_PATH), but different from _PATH_DEFPATH = /usr/bin:/bin) no, guaranteed to include confstr(_CS_PATH) before glibc 2.15 (below our minimum) yes
macos link link _PATH_DEFPATH = /usr/bin:/bin (notably, this is different from confstr(_CS_PATH) = sysctl(..) = /usr/bin:/bin:/usr/sbin:/sbin) guaranteed by documentation yes yes
linux-musl link link /usr/local/bin:/bin:/usr/bin  = _PATH_DEFPATH (not equal to confstr(_CS_PATH) = /bin:/usr/bin yes forwards to __execvpe no
freebsd link link _PATH_DEFPATH = /sbin:/bin:/usr/sbin:/usr/bin: (not equal to confstr(_CS_PATH) = _PATH_STDPATH = /usr/bin:/bin:/usr/sbin:/sbin) guaranteed by documentation forwards to execvpe yes
openbsd link link _PATH_DEFPATH = /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin (currently equal to confstr(_CS_PATH) = _PATH_STDPATH) guaranteed by documentation forwards to execvpe yes
netbsd link link _PATH_DEFPATH = /usr/bin:/bin:/usr/pkg/bin:/usr/local/bin (not equal to confstr(_CS_PATH = sysctl(..) = _PATH_STDPATH = /usr/bin:/bin:/usr/sbin:/sbin:/usr/pkg/bin:/usr/pkg/sbin:/usr/local/bin:/usr/local/sbin) guaranteed by documentation no yes

So there's a case to be made for using _PATH_DEFPATH over confstr(_CS_PATH) on the BSDs and musl/Linux, though we'd have to define it in libc first. Only for GNU/Linux is confstr consistent with the existing behaviour.

Also, quite some systems violate the UNIX spec (well, the requirement only got added in issue 8, the implementations simply predate 2024) in that they do use the shell on ENOEXEC in posix_spawnp, so if we want to exactly mirror OS behaviour, we'll have to do the same. I'm not sure that we should, however, given that this behaviour is very confusing – though for consistence, we'd have to ignore ENOEXEC in the posix_spawnp path too, which means we'd have to do the path lookup there too.

@asder8215

asder8215 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

So there's a case to be made for using _PATH_DEFPATH over confstr(_CS_PATH) on the BSDs and musl/Linux, though we'd have to define it in libc first.

I can put up a PR to introduce _PATH_DEFPATH constant to libc?

Comment on lines 450 to 512
let file = self.get_program_cstr();
let file_as_bytes = file.to_bytes_with_nul();
let argv = self.get_argv();
let envp_ptr =
maybe_envp.map(|envp| envp.as_ptr()).unwrap_or(unsafe { *sys::env::environ() });
let paths = paths.unwrap_or(self.get_default_path().as_encoded_bytes());

// Path searching does not occur when our file contains a `/`
if file_as_bytes.contains(&b'/') {
libc::execve(file.as_ptr(), argv.as_ptr(), envp_ptr);
} else {
let mut got_perm_denied = false;
for path in paths.split(|b| *b == b':') {
let path_len = path.len();

// Copy path to execute in the pre-allocated buffer accordingly
// Use the current path entry, plus a '/' if nonempty, plus the file to
// execute.
if path_len != 0 {
buf[0..path_len].write_copy_of_slice(path);
if path[path_len - 1] != b'/' {
buf[path_len].write(b'/');
buf[path_len + 1..path_len + 1 + file_as_bytes.len()]
.write_copy_of_slice(file_as_bytes);
} else {
buf[path_len..path_len + file_as_bytes.len()]
.write_copy_of_slice(file_as_bytes);
}
} else {
buf[0..file_as_bytes.len()].write_copy_of_slice(file_as_bytes);
}

// Try executing on path
libc::execve(buf.as_ptr().cast(), argv.as_ptr(), envp_ptr);
let err = crate::sys::io::errno();

match err {
// Record that we got a 'Permission Denied' error in the event that if we
// find no executable to use, we should report that there was a usable
// executable but we were denied access to it.
libc::EACCES => got_perm_denied = true,
// Try the next path.
libc::ENOENT
| libc::ESTALE
| libc::ENOTDIR
| libc::ENODEV
| libc::ETIMEDOUT => {}
// Any other error returned by execve should be returned. For example,
// ENAMETOOLONG is an error that is returned due to security risks on
// executing the wrong program through setting a very long path
_ => return Err(io::Error::from_raw_os_error(err)),
}
}

_reset = Some(Reset(*sys::env::environ()));
*sys::env::environ() = envp.as_ptr();
// At least one failure was due to lack of permissions, so we should
// report that failure first
if got_perm_denied {
return Err(io::Error::from_raw_os_error(libc::EACCES));
}

// No paths were executable
return Err(io::Error::from_raw_os_error(libc::ENOENT));
}

@tgross35 tgross35 Aug 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this go in its own function forkless_evecvpe or so? So it can get its own documentation, including why we're not just using execvpe on platforms where that exists #t-libs/crates > Including <paths.h> macros into libc? @ 💬

View changes since the review

…nd opt to use execve and resolve path manually
…confstr_as_cstring added to get a CString value returned by confstr, added CStringArray::from_ptr, added default_path and shell_argv fields to unix Command, and refactored do_exec code
…om a single passthrough in envp, match on errno values directly instead of ErrorKind, fix shell_argv CStringArray value.
…remove confstr_as_cstr, remove unnecessary shell_argv field/funtions + unused functions from CStringArray, use slice::split to delimit on colons
…cumentation for returning an error from execve
@asder8215
asder8215 force-pushed the commandext_exec_bug_fix branch from a288cc9 to 71e457f Compare August 23, 2026 18:11
@rustbot

rustbot commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
100  177M  100  177M    0     0   161M      0  0:00:01  0:00:01 --:--:--  161M
#12 DONE 1.4s

#13 [ 7/10] RUN unzip -d /usr/bin/ chrome-linux64.zip && rm chrome-linux64.zip
#13 0.051 Archive:  chrome-linux64.zip
#13 0.053   inflating: /usr/bin/chrome-linux64/ABOUT  
#13 0.053   inflating: /usr/bin/chrome-linux64/MEIPreload/manifest.json  
#13 0.053   inflating: /usr/bin/chrome-linux64/MEIPreload/preloaded_data.pb  
#13 0.054   inflating: /usr/bin/chrome-linux64/PrivacySandboxAttestationsPreloaded/manifest.json  
#13 0.054   inflating: /usr/bin/chrome-linux64/PrivacySandboxAttestationsPreloaded/privacy-sandbox-attestations.dat  
#13 0.054   inflating: /usr/bin/chrome-linux64/WidevineCdm/LICENSE  
#13 0.054   inflating: /usr/bin/chrome-linux64/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so  
#13 0.197   inflating: /usr/bin/chrome-linux64/WidevineCdm/manifest.json  
#13 0.197   inflating: /usr/bin/chrome-linux64/chrome  
#13 2.718   inflating: /usr/bin/chrome-linux64/chrome-wrapper  
#13 2.718   inflating: /usr/bin/chrome-linux64/chrome_100_percent.pak  
#13 2.724   inflating: /usr/bin/chrome-linux64/chrome_200_percent.pak  
#13 2.733   inflating: /usr/bin/chrome-linux64/chrome_crashpad_handler  
#13 2.752   inflating: /usr/bin/chrome-linux64/chrome_sandbox  
#13 2.753   inflating: /usr/bin/chrome-linux64/deb.deps  
#13 2.753   inflating: /usr/bin/chrome-linux64/icudtl.dat  
#13 2.844   inflating: /usr/bin/chrome-linux64/libEGL.so  
#13 2.847   inflating: /usr/bin/chrome-linux64/libGLESv2.so  
#13 2.903   inflating: /usr/bin/chrome-linux64/libvk_swiftshader.so  
#13 2.946   inflating: /usr/bin/chrome-linux64/libvulkan.so.1  
#13 2.952   inflating: /usr/bin/chrome-linux64/locales/af.pak  
#13 2.957   inflating: /usr/bin/chrome-linux64/locales/af_FEMININE.pak  
#13 2.957   inflating: /usr/bin/chrome-linux64/locales/af_MASCULINE.pak  
#13 2.957   inflating: /usr/bin/chrome-linux64/locales/af_NEUTER.pak  
#13 2.958   inflating: /usr/bin/chrome-linux64/locales/am.pak  
#13 2.966   inflating: /usr/bin/chrome-linux64/locales/am_FEMININE.pak  
#13 2.966   inflating: /usr/bin/chrome-linux64/locales/am_MASCULINE.pak  
#13 2.966   inflating: /usr/bin/chrome-linux64/locales/am_NEUTER.pak  
#13 2.966   inflating: /usr/bin/chrome-linux64/locales/ar.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/ar_FEMININE.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/ar_MASCULINE.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/ar_NEUTER.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/bg.pak  
#13 2.984   inflating: /usr/bin/chrome-linux64/locales/bg_FEMININE.pak  
#13 2.984   inflating: /usr/bin/chrome-linux64/locales/bg_MASCULINE.pak  
#13 2.984   inflating: /usr/bin/chrome-linux64/locales/bg_NEUTER.pak  
#13 2.984   inflating: /usr/bin/chrome-linux64/locales/bn.pak  
#13 2.995   inflating: /usr/bin/chrome-linux64/locales/bn_FEMININE.pak  
#13 2.995   inflating: /usr/bin/chrome-linux64/locales/bn_MASCULINE.pak  
#13 2.995   inflating: /usr/bin/chrome-linux64/locales/bn_NEUTER.pak  
#13 2.995   inflating: /usr/bin/chrome-linux64/locales/ca.pak  
#13 3.001   inflating: /usr/bin/chrome-linux64/locales/ca_FEMININE.pak  
#13 3.001   inflating: /usr/bin/chrome-linux64/locales/ca_MASCULINE.pak  
#13 3.001   inflating: /usr/bin/chrome-linux64/locales/ca_NEUTER.pak  
#13 3.001   inflating: /usr/bin/chrome-linux64/locales/cs.pak  
#13 3.007   inflating: /usr/bin/chrome-linux64/locales/cs_FEMININE.pak  
#13 3.008   inflating: /usr/bin/chrome-linux64/locales/cs_MASCULINE.pak  
#13 3.008   inflating: /usr/bin/chrome-linux64/locales/cs_NEUTER.pak  
#13 3.008   inflating: /usr/bin/chrome-linux64/locales/da.pak  
#13 3.013   inflating: /usr/bin/chrome-linux64/locales/da_FEMININE.pak  
#13 3.013   inflating: /usr/bin/chrome-linux64/locales/da_MASCULINE.pak  
#13 3.014   inflating: /usr/bin/chrome-linux64/locales/da_NEUTER.pak  
#13 3.014   inflating: /usr/bin/chrome-linux64/locales/de.pak  
#13 3.020   inflating: /usr/bin/chrome-linux64/locales/de_FEMININE.pak  
#13 3.020   inflating: /usr/bin/chrome-linux64/locales/de_MASCULINE.pak  
#13 3.020   inflating: /usr/bin/chrome-linux64/locales/de_NEUTER.pak  
#13 3.020   inflating: /usr/bin/chrome-linux64/locales/el.pak  
#13 3.029   inflating: /usr/bin/chrome-linux64/locales/el_FEMININE.pak  
#13 3.030   inflating: /usr/bin/chrome-linux64/locales/el_MASCULINE.pak  
#13 3.030   inflating: /usr/bin/chrome-linux64/locales/el_NEUTER.pak  
#13 3.030   inflating: /usr/bin/chrome-linux64/locales/en-GB.pak  
#13 3.035   inflating: /usr/bin/chrome-linux64/locales/en-GB_FEMININE.pak  
#13 3.035   inflating: /usr/bin/chrome-linux64/locales/en-GB_MASCULINE.pak  
#13 3.035   inflating: /usr/bin/chrome-linux64/locales/en-GB_NEUTER.pak  
#13 3.035   inflating: /usr/bin/chrome-linux64/locales/en-US.pak  
#13 3.040   inflating: /usr/bin/chrome-linux64/locales/en-US_FEMININE.pak  
#13 3.041   inflating: /usr/bin/chrome-linux64/locales/en-US_MASCULINE.pak  
#13 3.041   inflating: /usr/bin/chrome-linux64/locales/en-US_NEUTER.pak  
#13 3.041   inflating: /usr/bin/chrome-linux64/locales/es-419.pak  
#13 3.047   inflating: /usr/bin/chrome-linux64/locales/es-419_FEMININE.pak  
#13 3.047   inflating: /usr/bin/chrome-linux64/locales/es-419_MASCULINE.pak  
#13 3.047   inflating: /usr/bin/chrome-linux64/locales/es-419_NEUTER.pak  
#13 3.047   inflating: /usr/bin/chrome-linux64/locales/es.pak  
#13 3.053   inflating: /usr/bin/chrome-linux64/locales/es_FEMININE.pak  
#13 3.053   inflating: /usr/bin/chrome-linux64/locales/es_MASCULINE.pak  
#13 3.053   inflating: /usr/bin/chrome-linux64/locales/es_NEUTER.pak  
#13 3.053   inflating: /usr/bin/chrome-linux64/locales/et.pak  
#13 3.059   inflating: /usr/bin/chrome-linux64/locales/et_FEMININE.pak  
#13 3.059   inflating: /usr/bin/chrome-linux64/locales/et_MASCULINE.pak  
#13 3.059   inflating: /usr/bin/chrome-linux64/locales/et_NEUTER.pak  
#13 3.059   inflating: /usr/bin/chrome-linux64/locales/fa.pak  
#13 3.068   inflating: /usr/bin/chrome-linux64/locales/fa_FEMININE.pak  
#13 3.068   inflating: /usr/bin/chrome-linux64/locales/fa_MASCULINE.pak  
#13 3.068   inflating: /usr/bin/chrome-linux64/locales/fa_NEUTER.pak  
#13 3.068   inflating: /usr/bin/chrome-linux64/locales/fi.pak  
#13 3.073   inflating: /usr/bin/chrome-linux64/locales/fi_FEMININE.pak  
#13 3.074   inflating: /usr/bin/chrome-linux64/locales/fi_MASCULINE.pak  
#13 3.074   inflating: /usr/bin/chrome-linux64/locales/fi_NEUTER.pak  
#13 3.074   inflating: /usr/bin/chrome-linux64/locales/fil.pak  
#13 3.080   inflating: /usr/bin/chrome-linux64/locales/fil_FEMININE.pak  
#13 3.080   inflating: /usr/bin/chrome-linux64/locales/fil_MASCULINE.pak  
#13 3.080   inflating: /usr/bin/chrome-linux64/locales/fil_NEUTER.pak  
#13 3.080   inflating: /usr/bin/chrome-linux64/locales/fr.pak  
#13 3.086   inflating: /usr/bin/chrome-linux64/locales/fr_FEMININE.pak  
#13 3.087   inflating: /usr/bin/chrome-linux64/locales/fr_MASCULINE.pak  
#13 3.087   inflating: /usr/bin/chrome-linux64/locales/fr_NEUTER.pak  
#13 3.087   inflating: /usr/bin/chrome-linux64/locales/gu.pak  
#13 3.098   inflating: /usr/bin/chrome-linux64/locales/gu_FEMININE.pak  
#13 3.098   inflating: /usr/bin/chrome-linux64/locales/gu_MASCULINE.pak  
#13 3.098   inflating: /usr/bin/chrome-linux64/locales/gu_NEUTER.pak  
#13 3.098   inflating: /usr/bin/chrome-linux64/locales/he.pak  
#13 3.105   inflating: /usr/bin/chrome-linux64/locales/he_FEMININE.pak  
#13 3.105   inflating: /usr/bin/chrome-linux64/locales/he_MASCULINE.pak  
#13 3.105   inflating: /usr/bin/chrome-linux64/locales/he_NEUTER.pak  
#13 3.105   inflating: /usr/bin/chrome-linux64/locales/hi.pak  
#13 3.117   inflating: /usr/bin/chrome-linux64/locales/hi_FEMININE.pak  
#13 3.117   inflating: /usr/bin/chrome-linux64/locales/hi_MASCULINE.pak  
#13 3.117   inflating: /usr/bin/chrome-linux64/locales/hi_NEUTER.pak  
#13 3.117   inflating: /usr/bin/chrome-linux64/locales/hr.pak  
#13 3.123   inflating: /usr/bin/chrome-linux64/locales/hr_FEMININE.pak  
#13 3.123   inflating: /usr/bin/chrome-linux64/locales/hr_MASCULINE.pak  
#13 3.124   inflating: /usr/bin/chrome-linux64/locales/hr_NEUTER.pak  
#13 3.124   inflating: /usr/bin/chrome-linux64/locales/hu.pak  
#13 3.130   inflating: /usr/bin/chrome-linux64/locales/hu_FEMININE.pak  
#13 3.130   inflating: /usr/bin/chrome-linux64/locales/hu_MASCULINE.pak  
#13 3.130   inflating: /usr/bin/chrome-linux64/locales/hu_NEUTER.pak  
#13 3.130   inflating: /usr/bin/chrome-linux64/locales/id.pak  
#13 3.136   inflating: /usr/bin/chrome-linux64/locales/id_FEMININE.pak  
#13 3.136   inflating: /usr/bin/chrome-linux64/locales/id_MASCULINE.pak  
#13 3.136   inflating: /usr/bin/chrome-linux64/locales/id_NEUTER.pak  
#13 3.136   inflating: /usr/bin/chrome-linux64/locales/it.pak  
#13 3.142   inflating: /usr/bin/chrome-linux64/locales/it_FEMININE.pak  
#13 3.142   inflating: /usr/bin/chrome-linux64/locales/it_MASCULINE.pak  
#13 3.142   inflating: /usr/bin/chrome-linux64/locales/it_NEUTER.pak  
#13 3.142   inflating: /usr/bin/chrome-linux64/locales/ja.pak  
#13 3.149   inflating: /usr/bin/chrome-linux64/locales/ja_FEMININE.pak  
#13 3.149   inflating: /usr/bin/chrome-linux64/locales/ja_MASCULINE.pak  
#13 3.149   inflating: /usr/bin/chrome-linux64/locales/ja_NEUTER.pak  
#13 3.149   inflating: /usr/bin/chrome-linux64/locales/kn.pak  
#13 3.161   inflating: /usr/bin/chrome-linux64/locales/kn_FEMININE.pak  
#13 3.161   inflating: /usr/bin/chrome-linux64/locales/kn_MASCULINE.pak  
#13 3.161   inflating: /usr/bin/chrome-linux64/locales/kn_NEUTER.pak  
#13 3.161   inflating: /usr/bin/chrome-linux64/locales/ko.pak  
#13 3.167   inflating: /usr/bin/chrome-linux64/locales/ko_FEMININE.pak  
#13 3.167   inflating: /usr/bin/chrome-linux64/locales/ko_MASCULINE.pak  
#13 3.168   inflating: /usr/bin/chrome-linux64/locales/ko_NEUTER.pak  
#13 3.168   inflating: /usr/bin/chrome-linux64/locales/lt.pak  
#13 3.175   inflating: /usr/bin/chrome-linux64/locales/lt_FEMININE.pak  
#13 3.175   inflating: /usr/bin/chrome-linux64/locales/lt_MASCULINE.pak  
#13 3.175   inflating: /usr/bin/chrome-linux64/locales/lt_NEUTER.pak  
#13 3.175   inflating: /usr/bin/chrome-linux64/locales/lv.pak  
#13 3.181   inflating: /usr/bin/chrome-linux64/locales/lv_FEMININE.pak  
#13 3.181   inflating: /usr/bin/chrome-linux64/locales/lv_MASCULINE.pak  
#13 3.181   inflating: /usr/bin/chrome-linux64/locales/lv_NEUTER.pak  
#13 3.181   inflating: /usr/bin/chrome-linux64/locales/ml.pak  
#13 3.193   inflating: /usr/bin/chrome-linux64/locales/ml_FEMININE.pak  
#13 3.193   inflating: /usr/bin/chrome-linux64/locales/ml_MASCULINE.pak  
#13 3.194   inflating: /usr/bin/chrome-linux64/locales/ml_NEUTER.pak  
#13 3.194   inflating: /usr/bin/chrome-linux64/locales/mr.pak  
#13 3.205   inflating: /usr/bin/chrome-linux64/locales/mr_FEMININE.pak  
#13 3.205   inflating: /usr/bin/chrome-linux64/locales/mr_MASCULINE.pak  
#13 3.205   inflating: /usr/bin/chrome-linux64/locales/mr_NEUTER.pak  
#13 3.205   inflating: /usr/bin/chrome-linux64/locales/ms.pak  
#13 3.211   inflating: /usr/bin/chrome-linux64/locales/ms_FEMININE.pak  
#13 3.211   inflating: /usr/bin/chrome-linux64/locales/ms_MASCULINE.pak  
#13 3.211   inflating: /usr/bin/chrome-linux64/locales/ms_NEUTER.pak  
#13 3.211   inflating: /usr/bin/chrome-linux64/locales/nb.pak  
#13 3.217   inflating: /usr/bin/chrome-linux64/locales/nb_FEMININE.pak  
#13 3.217   inflating: /usr/bin/chrome-linux64/locales/nb_MASCULINE.pak  
#13 3.217   inflating: /usr/bin/chrome-linux64/locales/nb_NEUTER.pak  
#13 3.217   inflating: /usr/bin/chrome-linux64/locales/nl.pak  
#13 3.223   inflating: /usr/bin/chrome-linux64/locales/nl_FEMININE.pak  
#13 3.223   inflating: /usr/bin/chrome-linux64/locales/nl_MASCULINE.pak  
#13 3.223   inflating: /usr/bin/chrome-linux64/locales/nl_NEUTER.pak  
#13 3.223   inflating: /usr/bin/chrome-linux64/locales/pl.pak  
#13 3.229   inflating: /usr/bin/chrome-linux64/locales/pl_FEMININE.pak  
#13 3.229   inflating: /usr/bin/chrome-linux64/locales/pl_MASCULINE.pak  
#13 3.230   inflating: /usr/bin/chrome-linux64/locales/pl_NEUTER.pak  
#13 3.230   inflating: /usr/bin/chrome-linux64/locales/pt-BR.pak  
#13 3.235   inflating: /usr/bin/chrome-linux64/locales/pt-BR_FEMININE.pak  
#13 3.235   inflating: /usr/bin/chrome-linux64/locales/pt-BR_MASCULINE.pak  
#13 3.235   inflating: /usr/bin/chrome-linux64/locales/pt-BR_NEUTER.pak  
#13 3.236   inflating: /usr/bin/chrome-linux64/locales/pt-PT.pak  
#13 3.241   inflating: /usr/bin/chrome-linux64/locales/pt-PT_FEMININE.pak  
#13 3.241   inflating: /usr/bin/chrome-linux64/locales/pt-PT_MASCULINE.pak  
#13 3.242   inflating: /usr/bin/chrome-linux64/locales/pt-PT_NEUTER.pak  
#13 3.242   inflating: /usr/bin/chrome-linux64/locales/ro.pak  
#13 3.248   inflating: /usr/bin/chrome-linux64/locales/ro_FEMININE.pak  
#13 3.248   inflating: /usr/bin/chrome-linux64/locales/ro_MASCULINE.pak  
#13 3.248   inflating: /usr/bin/chrome-linux64/locales/ro_NEUTER.pak  
#13 3.248   inflating: /usr/bin/chrome-linux64/locales/ru.pak  
#13 3.257   inflating: /usr/bin/chrome-linux64/locales/ru_FEMININE.pak  
#13 3.258   inflating: /usr/bin/chrome-linux64/locales/ru_MASCULINE.pak  
#13 3.258   inflating: /usr/bin/chrome-linux64/locales/ru_NEUTER.pak  
#13 3.258   inflating: /usr/bin/chrome-linux64/locales/sk.pak  
#13 3.264   inflating: /usr/bin/chrome-linux64/locales/sk_FEMININE.pak  
#13 3.264   inflating: /usr/bin/chrome-linux64/locales/sk_MASCULINE.pak  
#13 3.264   inflating: /usr/bin/chrome-linux64/locales/sk_NEUTER.pak  
#13 3.264   inflating: /usr/bin/chrome-linux64/locales/sl.pak  
#13 3.270   inflating: /usr/bin/chrome-linux64/locales/sl_FEMININE.pak  
#13 3.271   inflating: /usr/bin/chrome-linux64/locales/sl_MASCULINE.pak  
#13 3.271   inflating: /usr/bin/chrome-linux64/locales/sl_NEUTER.pak  
#13 3.271   inflating: /usr/bin/chrome-linux64/locales/sr.pak  
#13 3.280   inflating: /usr/bin/chrome-linux64/locales/sr_FEMININE.pak  
#13 3.280   inflating: /usr/bin/chrome-linux64/locales/sr_MASCULINE.pak  
#13 3.280   inflating: /usr/bin/chrome-linux64/locales/sr_NEUTER.pak  
#13 3.280   inflating: /usr/bin/chrome-linux64/locales/sv.pak  
#13 3.285   inflating: /usr/bin/chrome-linux64/locales/sv_FEMININE.pak  
#13 3.286   inflating: /usr/bin/chrome-linux64/locales/sv_MASCULINE.pak  
#13 3.286   inflating: /usr/bin/chrome-linux64/locales/sv_NEUTER.pak  
#13 3.286   inflating: /usr/bin/chrome-linux64/locales/sw.pak  
#13 3.292   inflating: /usr/bin/chrome-linux64/locales/sw_FEMININE.pak  
#13 3.292   inflating: /usr/bin/chrome-linux64/locales/sw_MASCULINE.pak  
#13 3.292   inflating: /usr/bin/chrome-linux64/locales/sw_NEUTER.pak  
#13 3.292   inflating: /usr/bin/chrome-linux64/locales/ta.pak  
#13 3.304   inflating: /usr/bin/chrome-linux64/locales/ta_FEMININE.pak  
#13 3.305   inflating: /usr/bin/chrome-linux64/locales/ta_MASCULINE.pak  
#13 3.305   inflating: /usr/bin/chrome-linux64/locales/ta_NEUTER.pak  
#13 3.305   inflating: /usr/bin/chrome-linux64/locales/te.pak  
#13 3.316   inflating: /usr/bin/chrome-linux64/locales/te_FEMININE.pak  
#13 3.317   inflating: /usr/bin/chrome-linux64/locales/te_MASCULINE.pak  
#13 3.317   inflating: /usr/bin/chrome-linux64/locales/te_NEUTER.pak  
#13 3.317   inflating: /usr/bin/chrome-linux64/locales/th.pak  
#13 3.327   inflating: /usr/bin/chrome-linux64/locales/th_FEMININE.pak  
#13 3.327   inflating: /usr/bin/chrome-linux64/locales/th_MASCULINE.pak  
#13 3.327   inflating: /usr/bin/chrome-linux64/locales/th_NEUTER.pak  
#13 3.327   inflating: /usr/bin/chrome-linux64/locales/tr.pak  
#13 3.333   inflating: /usr/bin/chrome-linux64/locales/tr_FEMININE.pak  
#13 3.333   inflating: /usr/bin/chrome-linux64/locales/tr_MASCULINE.pak  
#13 3.333   inflating: /usr/bin/chrome-linux64/locales/tr_NEUTER.pak  
#13 3.333   inflating: /usr/bin/chrome-linux64/locales/uk.pak  
#13 3.342   inflating: /usr/bin/chrome-linux64/locales/uk_FEMININE.pak  
#13 3.342   inflating: /usr/bin/chrome-linux64/locales/uk_MASCULINE.pak  
#13 3.342   inflating: /usr/bin/chrome-linux64/locales/uk_NEUTER.pak  
#13 3.343   inflating: /usr/bin/chrome-linux64/locales/ur.pak  
#13 3.350   inflating: /usr/bin/chrome-linux64/locales/ur_FEMININE.pak  
#13 3.351   inflating: /usr/bin/chrome-linux64/locales/ur_MASCULINE.pak  
#13 3.351   inflating: /usr/bin/chrome-linux64/locales/ur_NEUTER.pak  
#13 3.351   inflating: /usr/bin/chrome-linux64/locales/vi.pak  
#13 3.357   inflating: /usr/bin/chrome-linux64/locales/vi_FEMININE.pak  
#13 3.357   inflating: /usr/bin/chrome-linux64/locales/vi_MASCULINE.pak  
#13 3.357   inflating: /usr/bin/chrome-linux64/locales/vi_NEUTER.pak  
#13 3.358   inflating: /usr/bin/chrome-linux64/locales/zh-CN.pak  
#13 3.363   inflating: /usr/bin/chrome-linux64/locales/zh-CN_FEMININE.pak  
#13 3.363   inflating: /usr/bin/chrome-linux64/locales/zh-CN_MASCULINE.pak  
#13 3.363   inflating: /usr/bin/chrome-linux64/locales/zh-CN_NEUTER.pak  
#13 3.363   inflating: /usr/bin/chrome-linux64/locales/zh-TW.pak  
#13 3.368   inflating: /usr/bin/chrome-linux64/locales/zh-TW_FEMININE.pak  
#13 3.369   inflating: /usr/bin/chrome-linux64/locales/zh-TW_MASCULINE.pak  
#13 3.369   inflating: /usr/bin/chrome-linux64/locales/zh-TW_NEUTER.pak  
#13 3.369  extracting: /usr/bin/chrome-linux64/product_logo_48.png  
#13 3.369   inflating: /usr/bin/chrome-linux64/resources.pak  
#13 3.468   inflating: /usr/bin/chrome-linux64/rpm.deps  
#13 3.468   inflating: /usr/bin/chrome-linux64/v8_context_snapshot.bin  
#13 3.474   inflating: /usr/bin/chrome-linux64/vk_swiftshader_icd.json  
#13 3.474    creating: /usr/bin/chrome-linux64/resources/
#13 3.474    creating: /usr/bin/chrome-linux64/resources/inspector_overlay/
#13 3.474   inflating: /usr/bin/chrome-linux64/resources/inspector_overlay/inspector_overlay_resources.grd  
#13 3.475   inflating: /usr/bin/chrome-linux64/resources/inspector_overlay/main.js  
#13 3.475    creating: /usr/bin/chrome-linux64/resources/accessibility/
#13 3.475    creating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/
#13 3.476   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/content.js  
#13 3.476   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/gdocs_script.js  
#13 3.476   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper_manifest.json  
#13 3.476    creating: /usr/bin/chrome-linux64/hyphen-data/
#13 3.476   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-tk.hyb  
#13 3.476   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-1901.hyb  
#13 3.478   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-1996.hyb  
#13 3.479   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mul-ethi.hyb  
#13 3.480   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-es.hyb  
#13 3.480   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hi.hyb  
#13 3.480   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cu.hyb  
#13 3.481   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-as.hyb  
#13 3.481   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ta.hyb  
#13 3.481   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-pa.hyb  
#13 3.481   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-el.hyb  
#13 3.482   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-te.hyb  
#13 3.482   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-und-ethi.hyb  
#13 3.482   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-ch-1901.hyb  
#13 3.483   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-bg.hyb  
#13 3.484   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-gu.hyb  
#13 3.484   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-et.hyb  
#13 3.484   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cs.hyb  
#13 3.485   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nl.hyb  
#13 3.486   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ru.hyb  
#13 3.487   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hy.hyb  
#13 3.487   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-uk.hyb  
#13 3.487   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-eu.hyb  
#13 3.487   inflating: /usr/bin/chrome-linux64/hyphen-data/manifest.json  
#13 3.487   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ga.hyb  
#13 3.488   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sk.hyb  
#13 3.489   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mr.hyb  
#13 3.489   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-bn.hyb  
#13 3.489   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nb.hyb  
#13 3.491   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-en-gb.hyb  
#13 3.492   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-or.hyb  
#13 3.492   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cy.hyb  
#13 3.492   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hr.hyb  
#13 3.493   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-fr.hyb  
#13 3.493   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-kn.hyb  
#13 3.493   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mn-cyrl.hyb  
#13 3.493   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-lt.hyb  
#13 3.494   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-en-us.hyb  
#13 3.494   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ml.hyb  
#13 3.495   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-pt.hyb  
#13 3.495   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-be.hyb  
#13 3.495   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sl.hyb  
#13 3.495   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-lv.hyb  
#13 3.496   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sv.hyb  
#13 3.497   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hu.hyb  
#13 3.501   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-af.hyb  
#13 3.502   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sq.hyb  
#13 3.502   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ka.hyb  
#13 3.502   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-it.hyb  
#13 3.502   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-gl.hyb  
#13 3.503   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-da.hyb  
#13 3.503   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nn.hyb  
#13 3.505   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-la.hyb  
#13 DONE 4.2s

#14 [ 8/10] COPY scripts/nodejs.sh /scripts/
#14 DONE 0.0s

#15 [ 9/10] RUN sh /scripts/nodejs.sh /node
#15 0.050 + NODEJS_VERSION=v24.15.0
#15 0.050 + YARN_VERSION=1.22.22
#15 0.050 + INSTALL_PATH=/node
#15 0.050 + url=https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.xz
#15 0.050 + tar+  -xJ
#15 0.051 curl -sL https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.xz
#15 2.617 + mv node-v24.15.0-linux-x64 /node
#15 2.619 + /node/bin/node /node/bin/npm install --global yarn@1.22.22
#15 3.230 
#15 3.230 added 1 package in 537ms
---
.................................................. (150/150)

======== tests/rustdoc-gui/item-decl-comment-highlighting.goml ========

[ERROR] item-decl-comment-highlighting output:
Runtime.callFunctionOn timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
stack: ProtocolError: Runtime.callFunctionOn timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
    at <instance_members_initializer> (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:108:14)
    at new Callback (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:112:16)
    at CallbackRegistry.create (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:27:26)
    at Connection._rawSend (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.js:125:26)
    at CdpCDPSession.send (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.js:72:14)
    at #evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js:374:50)
    at ExecutionContext.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js:288:36)
    at IsolatedWorld.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.js:104:30)
    at CdpFrame.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/api/Frame.js:364:43)
    at CdpFrame.<anonymous> (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/util/decorators.js:101:27)



<= doc-ui tests done: 149 succeeded, 1 failed, 0 filtered out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. O-unix Operating system: Unix-like proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants