# Fatal: ThreadLocker acquire: QSystemSemaphore::handle: unknown error 38

Source: https://forum.modalai.com/topic/4194/fatal-threadlocker-acquire-qsystemsemaphore-handle-unknown-error-38
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2025-02-19 18:23:00 UTC by voxl2_user
Replies: 7 · Views: 780

## voxl2_user · 2025-02-19 18:23:00 UTC

Hello.  We are attempting to run our application on VOXL2.  This application is linked against some pre-compiled libraries that we received from a third-party as their SDK.  We have successfully run this application on x86_64 and on another arm64 platform, but on VOXL2 we receive the error message in the title "Fatal: ThreadLocker acquire: QSystemSemaphore::handle: unknown error 38"

In troubleshooting, I see that on VOXL2 the file /proc/sys/kernel/sem is not present.   Could this be indicative that the kernel must be reconfigured for certain types of semaphore usage?  I am able to download the MODAL.AI kernel build docker and build the default v1.8.02 kernel.  But any time I try to make a change to the kernel config using menuconfig in one of the build_mount/lu.um.121/apps_proc/src/kernel/* directories, the rebuild fails (even if I clean first).  So perhaps this is not the right way to reconfigure the build?  I went down this road because it seemed that adding Qualcomm IPCC support (menuconfig, device drivers, SOC drivers, qualcomm IPCC) could potentially resolve the issue.

Any and all advice is welcome, including the proper way to reconfigure the kernel (via menuconfig or otherwise) or in troubleshooting this semaphore issue itself.

## Reply by Alex Kushleyev (ModalAI staff) · 2025-02-19 23:35:49 UTC

@voxl2_user after doing quick search, it seems `CONFIG_SYSVIPC=y` needs to be enabled in `kona-perf_defconfig` . 

```
workspace/lu.um.1.2.1/apps_proc/poky/meta-voxl2-bsp/recipes-kernel/linux-msm/files/configs/m0054/kona-perf_defconfig
```

Make sure you are building a perf build..

We have not tried enabling it, but it could be all that's necessary. Give it a try!

I can try it as well and see if it builds and see if `/proc/sys/kernel/sem` shows up..

Alex

## Reply by Alex Kushleyev (ModalAI staff) · 2025-02-20 00:26:38 UTC (in reply to Alex Kushleyev)

I just tried it and it seems to be working

```
voxl2:/$ ls /proc/sys/kernel/sem*
/proc/sys/kernel/sem

voxl2:/$ ipcs -l                             

------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1

------ 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
```

## Reply by voxl2_user · 2025-02-20 03:49:44 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Thank you for the quick reply.  Your advice successfully enabled SYSVIPC in my kernel.  Sadly, SYSVIPC also broke eth0 on my system and I'm still attempting to troubleshoot that...

## Reply by Alex Kushleyev (ModalAI staff) · 2025-02-20 05:53:44 UTC (in reply to voxl2_user)

@voxl2_user , yes, I can also confirm that my usb to ethernet adapter (eth0) is no longer working on my voxl2 after enabling this.. 

It is possible that enabling `SYSVIPC` disables some other IPC mechanism used by the usb ethernet driver.. or something else is going on.. not sure..

Alex

## Reply by voxl2_user · 2025-02-20 16:05:53 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev in my case, 'lsmod' is empty after booting the kernel with SYSVIPC enabled...its as though none of the kernel modules are loading anymore.

## Reply by voxl2_user · 2025-02-20 16:09:56 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Is there a way to run menuconfig and build the kernel successfully?  I wonder if menuconfig might "deconflict" certain feature dependencies, if there are any?  When I tried running menuconfig from apps_proc/src/kernel/*, the resulting build failed with errors about the source tree not being clean.

## Reply by Alex Kushleyev (ModalAI staff) · 2025-02-20 17:12:16 UTC (in reply to voxl2_user)

@voxl2_user , i will ask around..

Also, there may be some sysv compatibility mode, instead of fully utilizing sysv for all IPC. I think i saw something like that when grepping the kernel build source for sysv supprt. I will check a bit later.

Alex
