mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-14 06:06:12 +00:00
Merge pull request #127 from lifupan/fix_cwd
fix the issue of missing restore process's cwd
This commit is contained in:
commit
174f9abee8
@ -20,6 +20,7 @@ prctl = "1.0.0"
|
|||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
signal-hook = "0.1.9"
|
signal-hook = "0.1.9"
|
||||||
scan_fmt = "0.2.3"
|
scan_fmt = "0.2.3"
|
||||||
|
scopeguard = "1.0.0"
|
||||||
regex = "1"
|
regex = "1"
|
||||||
# slog:
|
# slog:
|
||||||
# - Dynamic keys required to allow HashMap keys to be slog::Serialized.
|
# - Dynamic keys required to allow HashMap keys to be slog::Serialized.
|
||||||
|
@ -113,7 +113,9 @@ impl agentService {
|
|||||||
|
|
||||||
// write spec to bundle path, hooks might
|
// write spec to bundle path, hooks might
|
||||||
// read ocispec
|
// read ocispec
|
||||||
setup_bundle(oci)?;
|
let olddir = setup_bundle(oci)?;
|
||||||
|
// restore the cwd for kata-agent process.
|
||||||
|
defer!(unistd::chdir(&olddir).unwrap());
|
||||||
|
|
||||||
let opts = CreateOpts {
|
let opts = CreateOpts {
|
||||||
cgroup_name: "".to_string(),
|
cgroup_name: "".to_string(),
|
||||||
@ -1738,7 +1740,7 @@ fn do_copy_file(req: &CopyFileRequest) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_bundle(gspec: &Spec) -> Result<()> {
|
fn setup_bundle(gspec: &Spec) -> Result<PathBuf> {
|
||||||
if gspec.Root.is_none() {
|
if gspec.Root.is_none() {
|
||||||
return Err(nix::Error::Sys(Errno::EINVAL).into());
|
return Err(nix::Error::Sys(Errno::EINVAL).into());
|
||||||
}
|
}
|
||||||
@ -1757,7 +1759,8 @@ fn setup_bundle(gspec: &Spec) -> Result<()> {
|
|||||||
);
|
);
|
||||||
let _ = oci.save(config.as_str());
|
let _ = oci.save(config.as_str());
|
||||||
|
|
||||||
|
let olddir = unistd::getcwd().chain_err(|| "cannot getcwd")?;
|
||||||
unistd::chdir(bundle_path)?;
|
unistd::chdir(bundle_path)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(olddir)
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,9 @@ extern crate signal_hook;
|
|||||||
extern crate scan_fmt;
|
extern crate scan_fmt;
|
||||||
extern crate oci;
|
extern crate oci;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate scopeguard;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate slog;
|
extern crate slog;
|
||||||
extern crate slog_async;
|
extern crate slog_async;
|
||||||
|
Loading…
Reference in New Issue
Block a user