Process detected while running Top Down Discovery is searched for in cmdb_running_process once the result is back from the MID Server. Once found, the CI's running process fields are updated accordingly.
To fetch the running process, the sys_id of the host, as well as the Process ID (PID) and the Parent Process ID (PPID) are used as parameters.
Sometimes, however, this is not enough, since processes may change their ID. It may result with a completely different process being used and set.
To identify processes, it should be better to use command line / executable path.
Expected result: Use command line / executable path to fetch the relevant process from cmdb_running_process. If not found, only then use PID and PPID.
Steps to Reproduce
1. Run Top Down Discovery on some CI.
2. Emulate PID change - either restart the server, or simply swap PIDs in cmdb_running_process between processes on the same machine.
3. Run Top Down Discovery again - you'll see that the wrong process is fetched.
Run horizontal discovery on the specified hosts and then run top down or re-discovery on the CI types, these two steps will synchronize the data.
Try to update the schedulers so that the horizontal discovery and the re-discovery will run with only a small gap between them and not days.
Related Problem: PRB1276549