sync patches from upstream

This commit is contained in:
zhangyao 2023-12-14 15:03:00 +08:00
parent a991f34cda
commit 8e3a08dc44
6 changed files with 288 additions and 1 deletions

View File

@ -0,0 +1,34 @@
From aa5a4cdf094af6660ff718ef0de566aaa97a4698 Mon Sep 17 00:00:00 2001
From: zhangyao2022 <zhangyao108@huawei.com>
Date: Mon, 4 Dec 2023 15:03:00 +0800
Subject: [PATCH] fix: change the DefaultDependencies configuration to true
---
core/sysmaster/src/unit/rentry.rs | 2 +-
units/syslog.target | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/core/sysmaster/src/unit/rentry.rs b/core/sysmaster/src/unit/rentry.rs
index 21eddd2..d7cfc4c 100755
--- a/core/sysmaster/src/unit/rentry.rs
+++ b/core/sysmaster/src/unit/rentry.rs
@@ -144,7 +144,7 @@ pub(crate) struct UeConfigUnit {
//When set to true, the unit will not be stopped when systemctl isolate is executed. For service, target, socket timer and path, the default value is false. For other units, the default value is true
#[entry(default = false)]
pub IgnoreOnIsolate: bool,
- #[entry(default = false)]
+ #[entry(default = true)]
pub DefaultDependencies: bool,
#[entry(default = false)]
pub RefuseManualStart: bool,
diff --git a/units/syslog.target b/units/syslog.target
index 3057814..901bdf6 100644
--- a/units/syslog.target
+++ b/units/syslog.target
@@ -1,2 +1,3 @@
[Unit]
Description=Initialize syslog
+DefaultDependencies=false
--
2.33.0

View File

@ -0,0 +1,52 @@
From 8bc1a7afdac5d9c2f174b141b32dc2b58deef1ee Mon Sep 17 00:00:00 2001
From: zhangyao2022 <zhangyao108@huawei.com>
Date: Mon, 27 Nov 2023 10:44:12 +0800
Subject: [PATCH] fix: fixed ListenNetlink parsing
---
core/coms/socket/src/config.rs | 2 +-
core/coms/socket/src/rentry.rs | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/core/coms/socket/src/config.rs b/core/coms/socket/src/config.rs
index 69cdc32..9585d5f 100755
--- a/core/coms/socket/src/config.rs
+++ b/core/coms/socket/src/config.rs
@@ -207,7 +207,7 @@ impl SocketConfig {
let config = &self.data.borrow().Socket;
self.parse_sockets(config.ListenStream.as_ref(), ListenItem::Stream)?;
self.parse_sockets(config.ListenDatagram.as_ref(), ListenItem::Datagram)?;
- self.parse_sockets(&[config.ListenNetlink.clone()], ListenItem::Netlink)?;
+ self.parse_sockets(config.ListenNetlink.as_ref(), ListenItem::Netlink)?;
self.parse_sockets(
config.ListenSequentialPacket.as_ref(),
ListenItem::SequentialPacket,
diff --git a/core/coms/socket/src/rentry.rs b/core/coms/socket/src/rentry.rs
index 8b20c7e..3a25761 100755
--- a/core/coms/socket/src/rentry.rs
+++ b/core/coms/socket/src/rentry.rs
@@ -42,6 +42,10 @@ fn deserialize_pathbuf_vec(s: &str) -> Result<Vec<PathBuf>, core::error::Error>
Ok(res)
}
+fn deserialize_netlink_vec(s: &str) -> Result<Vec<String>, core::error::Error> {
+ Ok(vec![s.to_string()])
+}
+
#[derive(UnitSection, Default, Clone, Debug, Serialize, Deserialize)]
#[allow(dead_code)]
pub(super) struct SectionSocket {
@@ -60,8 +64,8 @@ pub(super) struct SectionSocket {
pub ListenStream: Vec<String>,
#[entry(multiple)]
pub ListenDatagram: Vec<String>,
- #[entry(default = String::new())]
- pub ListenNetlink: String,
+ #[entry(multiple, myparser = deserialize_netlink_vec)]
+ pub ListenNetlink: Vec<String>,
#[entry(multiple)]
pub ListenSequentialPacket: Vec<String>,
#[entry(multiple)]
--
2.33.0

View File

@ -0,0 +1,59 @@
From 461a4e7a0bf9d951d6819f7291db965d6009ff4a Mon Sep 17 00:00:00 2001
From: zhangyao2022 <zhangyao108@huawei.com>
Date: Mon, 4 Dec 2023 20:23:21 +0800
Subject: [PATCH] fix: fixed parsing SocketMode incorrectly
---
core/coms/socket/src/rentry.rs | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/core/coms/socket/src/rentry.rs b/core/coms/socket/src/rentry.rs
index 3a25761..57da556 100755
--- a/core/coms/socket/src/rentry.rs
+++ b/core/coms/socket/src/rentry.rs
@@ -42,6 +42,12 @@ fn deserialize_pathbuf_vec(s: &str) -> Result<Vec<PathBuf>, core::error::Error>
Ok(res)
}
+fn deserialize_parse_mode(s: &str) -> Result<u32, core::error::Error> {
+ u32::from_str_radix(s, 8).map_err(|_| core::error::Error::ConfigureError {
+ msg: format!("Invalid SocketMode: {}", s),
+ })
+}
+
fn deserialize_netlink_vec(s: &str) -> Result<Vec<String>, core::error::Error> {
Ok(vec![s.to_string()])
}
@@ -92,7 +98,7 @@ pub(super) struct SectionSocket {
#[entry(multiple, myparser = deserialize_pathbuf_vec)]
pub Symlinks: Vec<PathBuf>,
pub PassSecurity: Option<bool>,
- #[entry(default = 0o666)]
+ #[entry(default = 0o666, myparser = deserialize_parse_mode)]
pub SocketMode: u32,
#[entry(default = "")]
pub SocketUser: String,
@@ -408,3 +414,20 @@ impl ReDbTable for SocketReDb<u32, SocketReFrame> {
self.0.switch_buffer(switch);
}
}
+
+#[cfg(test)]
+
+mod test {
+ use super::deserialize_parse_mode;
+
+ #[test]
+ fn test_deserialize_parse_mode() {
+ assert_eq!(deserialize_parse_mode("777").unwrap(), 0o777);
+ assert_eq!(deserialize_parse_mode("644").unwrap(), 0o644);
+ assert!(deserialize_parse_mode("-777").is_err());
+ assert!(deserialize_parse_mode("787").is_err());
+ assert!(deserialize_parse_mode("777aa").is_err());
+ assert!(deserialize_parse_mode("aaaaa").is_err());
+ assert!(deserialize_parse_mode("777 aa").is_err());
+ }
+}
--
2.33.0

View File

@ -0,0 +1,41 @@
From efd6cf89b2ae60b3117016dd1ca8ab43396c1602 Mon Sep 17 00:00:00 2001
From: zhangyao2022 <zhangyao108@huawei.com>
Date: Fri, 24 Nov 2023 15:38:11 +0800
Subject: [PATCH] fix: fixed the ListenNetlink parsing error of socket section
---
core/coms/socket/src/config.rs | 2 +-
core/coms/socket/src/rentry.rs | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/coms/socket/src/config.rs b/core/coms/socket/src/config.rs
index 9585d5f..69cdc32 100755
--- a/core/coms/socket/src/config.rs
+++ b/core/coms/socket/src/config.rs
@@ -207,7 +207,7 @@ impl SocketConfig {
let config = &self.data.borrow().Socket;
self.parse_sockets(config.ListenStream.as_ref(), ListenItem::Stream)?;
self.parse_sockets(config.ListenDatagram.as_ref(), ListenItem::Datagram)?;
- self.parse_sockets(config.ListenNetlink.as_ref(), ListenItem::Netlink)?;
+ self.parse_sockets(&[config.ListenNetlink.clone()], ListenItem::Netlink)?;
self.parse_sockets(
config.ListenSequentialPacket.as_ref(),
ListenItem::SequentialPacket,
diff --git a/core/coms/socket/src/rentry.rs b/core/coms/socket/src/rentry.rs
index 9f9bcb5..8b20c7e 100755
--- a/core/coms/socket/src/rentry.rs
+++ b/core/coms/socket/src/rentry.rs
@@ -60,8 +60,8 @@ pub(super) struct SectionSocket {
pub ListenStream: Vec<String>,
#[entry(multiple)]
pub ListenDatagram: Vec<String>,
- #[entry(multiple)]
- pub ListenNetlink: Vec<String>,
+ #[entry(default = String::new())]
+ pub ListenNetlink: String,
#[entry(multiple)]
pub ListenSequentialPacket: Vec<String>,
#[entry(multiple)]
--
2.33.0

View File

@ -0,0 +1,93 @@
From ef80bd0a8d9158c9fdbcde30bd43e1d819ff338d Mon Sep 17 00:00:00 2001
From: zhangyao2022 <zhangyao108@huawei.com>
Date: Mon, 27 Nov 2023 19:35:55 +0800
Subject: [PATCH] fix: make sure all logs are written to disk
---
core/sysmaster/src/manager/mod.rs | 1 +
libs/log/src/inner.rs | 22 ++++++++++++++++++++++
libs/log/src/logger.rs | 9 ++++++++-
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/core/sysmaster/src/manager/mod.rs b/core/sysmaster/src/manager/mod.rs
index f1062e31..46228b77 100644
--- a/core/sysmaster/src/manager/mod.rs
+++ b/core/sysmaster/src/manager/mod.rs
@@ -460,6 +460,7 @@ impl Manager {
}
log::info!("Rebooting...");
+ log::flush!();
let _ = reboot::reboot(reboot_mode); // make lint happy
}
diff --git a/libs/log/src/inner.rs b/libs/log/src/inner.rs
index 13f42aed..f13c51ed 100644
--- a/libs/log/src/inner.rs
+++ b/libs/log/src/inner.rs
@@ -194,6 +194,14 @@ macro_rules! trace {
)
}
+/// flush output stream
+#[macro_export(local_inner_macros)]
+macro_rules! flush {
+ () => {
+ $crate::inner::__private_api_flush();
+ };
+}
+
///
/* Private, shouldn't be used out of this file. */
pub fn __private_api_log(
@@ -222,6 +230,20 @@ pub fn __private_api_log(
}
}
+///
+pub fn __private_api_flush() {
+ if STATE.load(Ordering::SeqCst) != INITIALIZED {
+ return;
+ }
+ let logger = unsafe { &LOGGER_LOCK };
+ match logger {
+ Some(v) => {
+ v.read().unwrap().flush();
+ }
+ None => {}
+ }
+}
+
pub use crate::debug;
pub use crate::error;
pub use crate::info;
diff --git a/libs/log/src/logger.rs b/libs/log/src/logger.rs
index 11d8d224..15f8b118 100644
--- a/libs/log/src/logger.rs
+++ b/libs/log/src/logger.rs
@@ -340,6 +340,9 @@ impl log::Log for FileLogger {
if let Err(e) = file.flush() {
println!("Failed to flush log file: {}", e);
}
+ if let Err(e) = file.sync_all() {
+ println!("Failed to sync all log file: {}", e);
+ }
}
None => {
if !get_open_when_needed() {
@@ -605,7 +608,11 @@ impl Log for CombinedLogger {
}
}
- fn flush(&self) {}
+ fn flush(&self) {
+ for log in &self.loggers {
+ log.flush();
+ }
+ }
}
impl CombinedLogger {
--
2.33.0

View File

@ -16,7 +16,7 @@
Name: sysmaster Name: sysmaster
Version: 0.5.1 Version: 0.5.1
Release: 6 Release: 7
Summary: redesign and reimplement process1. Summary: redesign and reimplement process1.
License: Mulan PSL v2 License: Mulan PSL v2
@ -69,6 +69,11 @@ Patch42: backport-test-devmaster-use-unwrap-instead-of-asserting-is-ok.patch
Patch43: backport-test-devmaster-add-UT-for-execute-unit.patch Patch43: backport-test-devmaster-add-UT-for-execute-unit.patch
Patch44: backport-test-devmaster-add-UT-for-rules-module.patch Patch44: backport-test-devmaster-add-UT-for-rules-module.patch
Patch45: backport-test-devmaster-add-UT-for-node-and-modify-the-displa.patch Patch45: backport-test-devmaster-add-UT-for-node-and-modify-the-displa.patch
Patch46: backport-fix-fixed-the-ListenNetlink-parsing-error-of-socket-.patch
Patch47: backport-fix-fixed-ListenNetlink-parsing.patch
Patch48: backport-fix-make-sure-all-logs-are-written-to-disk.patch
Patch49: backport-fix-change-the-DefaultDependencies-configuration-to-.patch
Patch50: backport-fix-fixed-parsing-SocketMode-incorrectly.patch
ExclusiveArch: x86_64 aarch64 ExclusiveArch: x86_64 aarch64
@ -228,6 +233,9 @@ test -f /usr/lib/sysmaster/system/udevd.service && ln -s /usr/lib/sysmaster/syst
test -f /usr/lib/sysmaster/system/udev-trigger.service && ln -s /usr/lib/sysmaster/system/udev-trigger.service /etc/sysmaster/system/sysinit.target.wants/udev-trigger.service || : test -f /usr/lib/sysmaster/system/udev-trigger.service && ln -s /usr/lib/sysmaster/system/udev-trigger.service /etc/sysmaster/system/sysinit.target.wants/udev-trigger.service || :
%changelog %changelog
* Thu Dec 14 2023 zhangyao<zhangyao108@huawei.com> - 0.5.1-7
- sync patches from upstream
* Mon Dec 11 2023 chenjiayi<chenjiayi22@huawei.com> - 0.5.1-6 * Mon Dec 11 2023 chenjiayi<chenjiayi22@huawei.com> - 0.5.1-6
- fix incorrect symbolic linkage location of devctl-trigger.service - fix incorrect symbolic linkage location of devctl-trigger.service