The Community is now in read-only mode to prepare for the launch of the new Flexera Community. During this time, you will be unable to register, log in, or access customer resources. Click here for more information.
Inventory is not successfully gathered from a computer running a Unix-like operating system. When inspecting the /var/opt/managesoft/log/tracker.log file, details like the following are observed.
[Thu Apr 12 16:36:37 2018 (G, 0)] {9303} ************************************************************ [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} Program arguments are '/opt/managesoft/libexec/ndtrack -t Machine -o Upload=false' [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} Preferences loaded [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} Inventory Setting file is '/var/opt/managesoft/tracker/inventorysettings/InventorySettings.xml' [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} Obtaining semaphore lock (to ensure only one instance is running)... [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} ERROR: Could not obtain semaphore lock, Windows error code: 2 [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} Program exited with code -536870910 [Thu Apr 12 16:36:37 2018 (G, 0)] {9303} ************************************************************
In particular, this article discusses details about possible causes for the "Windows error code: 2" detail shown after the message "Could not obtain semaphore lock".
The "Windows error code: 2" message is usually due to the system running out of semaphores to allocate.
Applications such as Oracle Database and Apache HTTP Server can use a lot of semaphores. Any application that consumes many semaphores without freeing them may lead to available semaphores being exhausted, with a symptom being the particular log message details described above.
Commands to investigate semaphore details will vary by operating system. Here are some examples of commands that can be used on Linux-based operating systems to troubleshoot this issue and find out if there are excessive semaphores in use by the system.
# ipcs -ls
------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767
# ipcs -us
------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0
# for pid in $(for semid in $(ipcs -s | awk '/0x/{ print $2 }'); do ipcs -s -i $semid | tail -2 | head -1 | awk '{print $5}'; done | sort -u); do ps uh -p $pid; done
After investigating the above you may notice that the semaphore limit is not set high enough or a process is using a lot of semaphores.
on Jun 28, 2018 04:27 PM - edited on Apr 08, 2024 11:57 PM by ChrisG