A crash occurs due to a race condition within the Edge’s DNS cache mechanism. The problem arises when a DNS cache entry is accessed and referenced by one thread, but, due to a context switch, another thread deletes this entry. When the original thread is scheduled to run again and attempts to access the deleted entry, it results in a memory violation, leading to a service crash. An event will be triggered as "Service Monitor Service edged failed with error -11, restarting"
VMWare SDWan Edge version 4.5.2, 5.2.2.0
The crash is caused by improper synchronization in handling the DNS cache. The Edge service's DNS cache allows multiple threads to access and manipulate entries simultaneously. In this particular case, one thread tries to retrieve a DNS entry, while another thread deletes it during a context switch. As a result, the first thread’s reference to the DNS cache entry becomes invalid, and when it attempts to use the deleted entry, a memory violation occurs, causing the Edge service to fail.
This issue has been resolved in Edge software versions 5.2.3.x and 5.2.2.3. Upgrading to one of these versions will prevent this crash from occurring. The issue is tracked under the Bug ID 138303. Please check release notes for more information.
Mostly the crash observed in below versions.
VCE Info
========
Version: 4.5.2
Build rev: R452-20240125-GA-3646337bed
Build Date: 2024-01-25_04-56-59
Build Hash: 3646337bed90e9c1cb405778dc5b6b1cdebd8529
VCE Info
========
Version: 5.2.2.0
Build rev: R5220-20231213-GA-589b8ee98a
Build Date: 2023-12-13_06-11-23
Build Hash: 589b8ee98a314ae5f7752ed2c4824c90131cb707
Toolchain: openwrt-sdk-5_2-x64-9-5c45302c