Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package netavark for openSUSE:Factory checked in at 2025-06-10 08:56:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/netavark (Old) and /work/SRC/openSUSE:Factory/.netavark.new.19631 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "netavark" Tue Jun 10 08:56:46 2025 rev:20 rq:1284000 version:1.15.2 Changes: -------- --- /work/SRC/openSUSE:Factory/netavark/netavark.changes 2025-05-26 18:31:38.009587837 +0200 +++ /work/SRC/openSUSE:Factory/.netavark.new.19631/netavark.changes 2025-06-10 08:56:59.150830962 +0200 @@ -1,0 +2,12 @@ +Mon Jun 09 07:23:27 UTC 2025 - Madhankumar Chellamuthu <madhankumar.chellamu...@suse.com> + +- Update to version 1.15.2: + * release v1.15.2 + * release notes for v1.15.2 + * dhcp_proxy: set timeout_sender only if required + * cargo: bump mozim to 0.2.6 + * release v1.15.1 + * release notes for v1.15.1 + * Revert "remove search domain from response" + +------------------------------------------------------------------- Old: ---- netavark-1.15.0.tar.gz New: ---- netavark-1.15.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ netavark.spec ++++++ --- /var/tmp/diff_new_pack.DIPSwz/_old 2025-06-10 08:57:00.490886234 +0200 +++ /var/tmp/diff_new_pack.DIPSwz/_new 2025-06-10 08:57:00.490886234 +0200 @@ -19,7 +19,7 @@ %define major_minor %((v=%{version}; echo ${v%.*})) Name: netavark -Version: 1.15.0 +Version: 1.15.2 Release: 0 Summary: Container network stack License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.DIPSwz/_old 2025-06-10 08:57:00.522887554 +0200 +++ /var/tmp/diff_new_pack.DIPSwz/_new 2025-06-10 08:57:00.526887719 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/containers/netavark.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="scm">git</param> - <param name="revision">v1.15.0</param> + <param name="revision">v1.15.2</param> <param name="match-tag">*</param> <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param> <param name="versionrewrite-replacement">\1</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.DIPSwz/_old 2025-06-10 08:57:00.542888378 +0200 +++ /var/tmp/diff_new_pack.DIPSwz/_new 2025-06-10 08:57:00.546888543 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/containers/netavark.git</param> - <param name="changesrevision">aadd9fe28619d61201191006994a8ff138b73569</param></service></servicedata> + <param name="changesrevision">01b002ffea76934739836bddabe223908f48eb76</param></service></servicedata> (No newline at EOF) ++++++ netavark-1.15.0.tar.gz -> netavark-1.15.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/Cargo.lock new/netavark-1.15.2/Cargo.lock --- old/netavark-1.15.0/Cargo.lock 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/Cargo.lock 2025-06-04 12:24:28.000000000 +0200 @@ -487,9 +487,9 @@ [[package]] name = "dhcproto" -version = "0.9.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcee045385d5f7819022821f41209b9945d17550760b0b2349aaef4ecfa14bc3" +checksum = "f6794294f2c4665aae452e950c2803a1e487c5672dc8448f0bfa3f52ff67e270" dependencies = [ "dhcproto-macros", "hex", @@ -1221,7 +1221,7 @@ checksum = "43b627935a2f5d654613bea2bcd677cc760b03ecf224ced0f1970c0d174813b9" dependencies = [ "lazy_static", - "nix 0.29.0", + "nix", "regex", ] @@ -1371,9 +1371,9 @@ [[package]] name = "mozim" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610e34113d007c3588631f879854c14fbf291f3ab7853b833220f7cbf6ece8ad" +checksum = "8232b853f83a0c76331d934627aeec172e9d5f2c82d1f9e7f86caa0df72cb304" dependencies = [ "byteorder", "dhcproto", @@ -1382,7 +1382,7 @@ "libc", "log", "nispor", - "nix 0.27.1", + "nix", "rand 0.8.5", ] @@ -1414,7 +1414,7 @@ [[package]] name = "netavark" -version = "1.15.0" +version = "1.15.2" dependencies = [ "anyhow", "chrono", @@ -1435,7 +1435,7 @@ "netlink-sys", "nftables", "nispor", - "nix 0.29.0", + "nix", "once_cell", "prost", "rand 0.9.1", @@ -1564,17 +1564,6 @@ [[package]] name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - -[[package]] -name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" @@ -1926,7 +1915,7 @@ "netlink-packet-utils", "netlink-proto", "netlink-sys", - "nix 0.29.0", + "nix", "thiserror 1.0.69", "tokio", ] @@ -2927,7 +2916,7 @@ "futures-core", "futures-lite", "hex", - "nix 0.29.0", + "nix", "ordered-stream", "serde", "serde_repr", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/Cargo.toml new/netavark-1.15.2/Cargo.toml --- old/netavark-1.15.0/Cargo.toml 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/Cargo.toml 2025-06-04 12:24:28.000000000 +0200 @@ -1,6 +1,6 @@ [package] name = "netavark" -version = "1.15.0" +version = "1.15.2" edition = "2021" authors = ["github.com/containers"] license = "Apache-2.0" @@ -49,7 +49,7 @@ tokio = { version = "1.45.0", features = ["rt", "rt-multi-thread", "signal", "fs"] } tokio-stream = { version = "0.1.17", features = ["net"] } tonic = "0.13.1" -mozim = "0.2.5" +mozim = "0.2.6" prost = "0.13.5" futures-channel = "0.3.31" futures-core = "0.3.31" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/RELEASE_NOTES.md new/netavark-1.15.2/RELEASE_NOTES.md --- old/netavark-1.15.0/RELEASE_NOTES.md 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/RELEASE_NOTES.md 2025-06-04 12:24:28.000000000 +0200 @@ -1,5 +1,14 @@ # Release Notes +## v1.15.2 + +* Fixed a bug that caused a thread leak in the dhcp-proxy for each started container. ([#811](https://github.com/containers/netavark/issues/811)) +* Fixed a bug which printed bogus errors when the dhcp-proxy was run with an activity timeout of 0. ([#1262](https://github.com/containers/netavark/issues/1262)) + +## v1.15.1 + +* Fixed a regression that caused container name lookups to get the wrong ip address when the host's search domain responded for the same name. ([containers/podman#26198](https://github.com/containers/podman/issues/26198)) + ## v1.15.0 * Fixed an issue where invalid dns names that included a space would cause aardvark-dns to crash. Instead such names are now ignored and generate a warning. ([#1019](https://github.com/containers/netavark/issues/1019)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/src/commands/dhcp_proxy.rs new/netavark-1.15.2/src/commands/dhcp_proxy.rs --- old/netavark-1.15.0/src/commands/dhcp_proxy.rs 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/src/commands/dhcp_proxy.rs 2025-06-04 12:24:28.000000000 +0200 @@ -56,7 +56,7 @@ // the timeout for the dora operation dora_timeout: u32, // channel send-side for resetting the inactivity timeout - timeout_sender: Arc<Mutex<Sender<i32>>>, + timeout_sender: Option<Arc<Mutex<Sender<i32>>>>, // All dhcp poll will be spawned on a new task, keep track of it so // we can remove it on teardown. The key is the container mac. task_map: Arc<Mutex<HashMap<String, AbortHandle>>>, @@ -64,17 +64,19 @@ impl<W: Write + Clear> NetavarkProxyService<W> { fn reset_inactivity_timeout(&self) { - let sender = self.timeout_sender.clone(); - let locked_sender = match sender.lock() { - Ok(v) => v, - Err(e) => { - log::error!("{}", e); - return; + if let Some(sender) = &self.timeout_sender { + let sender_clone = sender.clone(); + let locked_sender = match sender_clone.lock() { + Ok(v) => v, + Err(e) => { + log::error!("{}", e); + return; + } + }; + match locked_sender.try_send(1) { + Ok(..) => {} + Err(e) => log::error!("{}", e), } - }; - match locked_sender.try_send(1) { - Ok(..) => {} - Err(e) => log::error!("{}", e), } } } @@ -285,11 +287,18 @@ // Create send and receive channels for activity timeout. If anything is // sent by the tx side, the inactivity timeout is reset - let (activity_timeout_tx, activity_timeout_rx) = mpsc::channel(5); + let (activity_timeout_tx, activity_timeout_rx) = if inactivity_timeout.as_secs() > 0 { + let (tx, rx) = mpsc::channel(5); + (Some(tx), Some(rx)) + } else { + (None, None) + }; let netavark_proxy_service = NetavarkProxyService { cache: cache.clone(), dora_timeout, - timeout_sender: Arc::new(Mutex::new(activity_timeout_tx.clone())), + timeout_sender: activity_timeout_tx + .clone() + .map(|tx| Arc::new(Mutex::new(tx))), task_map: Arc::new(Mutex::new(HashMap::new())), }; @@ -328,29 +337,31 @@ /// /// ``` async fn handle_wakeup<W: Write + Clear>( - mut rx: mpsc::Receiver<i32>, + rx: Option<mpsc::Receiver<i32>>, timeout_duration: Duration, current_cache: Arc<Mutex<LeaseCache<W>>>, ) { - loop { - match timeout(timeout_duration, rx.recv()).await { - Ok(Some(_)) => { - debug!("timeout timer reset") - } - Ok(None) => { - println!("timeout channel closed"); - break; - } - Err(_) => { - // only 'exit' if the timeout is met AND there are no leases - // if we do not exit, the activity_timeout is reset - if is_catch_empty(current_cache.clone()) { - println!( - "timeout met: exiting after {} secs of inactivity", - timeout_duration.as_secs() - ); + if let Some(mut rx) = rx { + loop { + match timeout(timeout_duration, rx.recv()).await { + Ok(Some(_)) => { + debug!("timeout timer reset") + } + Ok(None) => { + println!("timeout channel closed"); break; } + Err(_) => { + // only 'exit' if the timeout is met AND there are no leases + // if we do not exit, the activity_timeout is reset + if is_catch_empty(current_cache.clone()) { + println!( + "timeout met: exiting after {} secs of inactivity", + timeout_duration.as_secs() + ); + break; + } + } } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/src/network/bridge.rs new/netavark-1.15.2/src/network/bridge.rs --- old/netavark-1.15.0/src/network/bridge.rs 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/src/network/bridge.rs 2025-06-04 12:24:28.000000000 +0200 @@ -17,7 +17,7 @@ iptables::MAX_HASH_SIZE, state::{remove_fw_config, write_fw_config}, }, - network::{core_utils::disable_ipv6_autoconf, types}, + network::{constants, core_utils::disable_ipv6_autoconf, types}, }; use super::{ @@ -227,6 +227,11 @@ let _ = response .dns_server_ips .insert(data.ipam.nameservers.clone()); + // Note: this is being added so podman setup is backward compatible with the design + // which we had with dnsname/dnsmasq. + let _ = response + .dns_search_domains + .insert(vec![constants::PODMAN_DEFAULT_SEARCH_DOMAIN.to_string()]); let mut ipv4 = Vec::new(); let mut ipv6 = Vec::new(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/test/100-bridge-iptables.bats new/netavark-1.15.2/test/100-bridge-iptables.bats --- old/netavark-1.15.0/test/100-bridge-iptables.bats 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/test/100-bridge-iptables.bats 2025-06-04 12:24:28.000000000 +0200 @@ -316,8 +316,6 @@ NETAVARK_DNS_PORT="$dns_port" run_netavark --file ${TESTSDIR}/testfiles/dualstack-bridge.json \ setup $(get_container_netns_path) - config="$output" - assert_json "$config" ".podman1.dns_search_domains" == "[]" "empty search domains" # check iptables run_in_host_netns iptables -t nat -S NETAVARK-HOSTPORT-DNAT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/test/200-bridge-firewalld.bats new/netavark-1.15.2/test/200-bridge-firewalld.bats --- old/netavark-1.15.0/test/200-bridge-firewalld.bats 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/test/200-bridge-firewalld.bats 2025-06-04 12:24:28.000000000 +0200 @@ -162,8 +162,6 @@ NETAVARK_DNS_PORT="$dns_port" \ run_netavark --file ${TESTSDIR}/testfiles/dualstack-bridge.json \ setup $(get_container_netns_path) - config="$output" - assert_json "$config" ".podman1.dns_search_domains" == "[]" "empty search domains" # check iptables # firewall-cmd --list-rich-rules does not guarantee order, use sort diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/netavark-1.15.0/test/250-bridge-nftables.bats new/netavark-1.15.2/test/250-bridge-nftables.bats --- old/netavark-1.15.0/test/250-bridge-nftables.bats 2025-05-13 16:36:16.000000000 +0200 +++ new/netavark-1.15.2/test/250-bridge-nftables.bats 2025-06-04 12:24:28.000000000 +0200 @@ -314,8 +314,6 @@ NETAVARK_DNS_PORT="$dns_port" run_netavark --file ${TESTSDIR}/testfiles/dualstack-bridge.json \ setup $(get_container_netns_path) - config="$output" - assert_json "$config" ".podman1.dns_search_domains" == "[]" "empty search domains" # check nftables run_in_host_netns nft list chain inet netavark NETAVARK-HOSTPORT-DNAT ++++++ netavark.obsinfo ++++++ --- /var/tmp/diff_new_pack.DIPSwz/_old 2025-06-10 08:57:00.690894482 +0200 +++ /var/tmp/diff_new_pack.DIPSwz/_new 2025-06-10 08:57:00.690894482 +0200 @@ -1,5 +1,5 @@ name: netavark -version: 1.15.0 -mtime: 1747146976 -commit: aadd9fe28619d61201191006994a8ff138b73569 +version: 1.15.2 +mtime: 1749032668 +commit: 01b002ffea76934739836bddabe223908f48eb76 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/netavark/vendor.tar.gz /work/SRC/openSUSE:Factory/.netavark.new.19631/vendor.tar.gz differ: char 17, line 1