forked from levex/cgroups-rs
-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Description
When will the package version on crates.io be updated? The style of systemd's version is sometimes different, and the current cgroups-rs v0.4 will crash sometiomes because it fails to parse the systemd version.
old code:
fn set(&mut self, resources: &LinuxResources) -> Result<()> {
let mut props = vec![];
let systemd_version = self.systemd_client.systemd_version()?;
if let Some(linux_cpu) = resources.cpu() {
self.set_cpuset(&mut props, linux_cpu, systemd_version)?;
self.set_cpu(&mut props, linux_cpu, systemd_version)?;
}
if let Some(linux_memory) = resources.memory() {
self.set_memory(&mut props, linux_memory)?;
}
if let Some(linux_pids) = resources.pids() {
self.set_pids(&mut props, linux_pids)?;
}
self.systemd_client.set_properties(&props)?;
Ok(())
}
--------------------------------------------------------------------------
pub fn systemd_version(&self) -> Result<usize> {
let sys_proxy = systemd_manager_proxy()?;
// Parse 249 from "249.11-0ubuntu3.16"
let version = sys_proxy.version()?;
let version = version
.split('.')
.next()
.and_then(|v| v.parse::<usize>().ok())
.ok_or(Error::CorruptedSystemdVersion(version))?;
Ok(version)
}new code:
cgroups-rs/src/manager/systemd.rs
Lines 262 to 281 in 69e3897
| fn set(&mut self, resources: &LinuxResources) -> Result<()> { | |
| let mut props = vec![]; | |
| if let Some(linux_cpu) = resources.cpu() { | |
| self.set_cpuset(&mut props, linux_cpu)?; | |
| self.set_cpu(&mut props, linux_cpu)?; | |
| } | |
| if let Some(linux_memory) = resources.memory() { | |
| self.set_memory(&mut props, linux_memory)?; | |
| } | |
| if let Some(linux_pids) = resources.pids() { | |
| self.set_pids(&mut props, linux_pids)?; | |
| } | |
| self.systemd_client.set_properties(&props)?; | |
| Ok(()) | |
| } |
$ systemctl --version
systemd 258 (258-4-arch)Metadata
Metadata
Assignees
Labels
No labels