Skip to content

sm: networkmanager: fix DNSServer host map data race - #293

Open
al1img wants to merge 1 commit into
aosedge:developfrom
al1img:fix_network_race
Open

sm: networkmanager: fix DNSServer host map data race#293
al1img wants to merge 1 commit into
aosedge:developfrom
al1img:fix_network_race

Conversation

@al1img

@al1img al1img commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Launcher::StopNetworks fans out per-instance network teardown across a thread pool. Instances sharing a network resolve to the same DNSServer, and NetworkManager::DeleteInstanceNetworkConfig released its lock before calling DNSServer::RemoveHost, so RemoveHost/AddHost mutated the unsynchronized mHosts map concurrently from multiple pool threads.

This corrupted the map's internal red-black tree, observed on target as a worker thread spinning forever inside std::_Rb_tree_increment from WriteHostsFile, which made StopNetworks' pool wait hang forever and looked like a service deadlock.

Add a mutex to DNSServer guarding mHosts across AddHost, RemoveHost and LoadHostsFile.

Launcher::StopNetworks fans out per-instance network teardown across
a thread pool. Instances sharing a network resolve to the same
DNSServer, and NetworkManager::DeleteInstanceNetworkConfig released
its lock before calling DNSServer::RemoveHost, so RemoveHost/AddHost
mutated the unsynchronized mHosts map concurrently from multiple
pool threads.

This corrupted the map's internal red-black tree, observed on target
as a worker thread spinning forever inside std::_Rb_tree_increment
from WriteHostsFile, which made StopNetworks' pool wait hang forever
and looked like a service deadlock.

Add a mutex to DNSServer guarding mHosts across AddHost, RemoveHost
and LoadHostsFile.

Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant