Replace external reachability with an owned canary

This commit is contained in:
ms2k 2026-07-19 22:39:31 +09:00
commit 31e9ab0f2d

View file

@ -18,9 +18,9 @@ use lazaret_core::identity::{
BundleDigest, ClientId, ContainerId, CoordinatorId, GenerationId, HostPath, NetworkSidecarId,
PidfsProcessIdentityV1, SandboxId, SessionAnchorId, SessionId,
};
use lazaret_core::network::{DnsQueryExpectation, ReachabilityExpectation, derive_ipv4_policy};
use lazaret_core::network::derive_ipv4_policy;
use lazaret_core::records::{
Domain, DurableDecision, Generation, HostProcessOwnershipSlot, IpAddress, ParticipantRole,
Domain, DurableDecision, Generation, HostProcessOwnershipSlot, ParticipantRole,
ParticipantState, ProcessOwnershipCommitAck, Session, SessionPhase, SessionTerminalEvent,
SessionTerminalMessage, TerminalResize, TerminalSignal, TerminalSignalKind,
};
@ -40,7 +40,6 @@ use lazaret_linux::process::{
current_process_identity, read_start_time,
};
use lazaret_linux::user_namespace::UserNamespaceMap;
use lazaret_runtime_supervisor::network::{DnsProbeTarget, NetworkProbeRequest, TcpProbeTarget};
use lazaret_runtime_supervisor::sandbox::{
NETWORK_NAMESPACE_PATH, RootProcess, RunscCommand, SandboxBuildRequest, SandboxBundle,
build_sandbox_bundle, default_sandbox_layout,
@ -331,7 +330,9 @@ fn run_session_terminal_matrix() -> Result<(), MatrixError> {
let second_signals = workspace.join("session-second-signals");
let line = "x".repeat(1024);
let script = format!(
"trap 'echo INT >> /workspace/session-signals' INT; \
"test \"$PROFILE_SENTINEL\" = profile-value || exit 97; \
command -v sleep >/dev/null || exit 96; \
trap 'echo INT >> /workspace/session-signals' INT; \
trap 'echo QUIT >> /workspace/session-signals' QUIT; \
trap 'echo TSTP >> /workspace/session-signals' TSTP; \
trap 'echo WINCH >> /workspace/session-signals' WINCH; \
@ -356,6 +357,7 @@ fn run_session_terminal_matrix() -> Result<(), MatrixError> {
host_coordinator: current_process_identity()?,
runsc_program: command.program().to_owned(),
runsc_global_arguments: command.arguments()[..run].to_vec(),
environment: fixture.configuration.ephemeral_environment().clone(),
internal_pid_file: runtime_domain.join("session-internal.pid"),
argv: vec![b"/bin/sh".to_vec(), b"-c".to_vec(), script.into_bytes()],
};
@ -627,7 +629,7 @@ use handoff::{
runtime_supervisor_loss_stops_guest,
};
use network::{
failed_probe_blocks_sandbox_start, hex, host_path, lock_file, networked_sandbox_view_isolated,
run_sandbox_network_probe, sandbox_participant, stage_benchmark_rootfs_and_control,
stage_rootfs_and_control,
hex, host_path, lock_file, networked_sandbox_view_isolated, run_sandbox_network_probe,
sandbox_participant, stage_benchmark_rootfs_and_control, stage_rootfs_and_control,
unreachable_permitted_destination_does_not_block_start,
};