ola icon indicating copy to clipboard operation
ola copied to clipboard

FreeBSD 13.2 - common/thread/ThreadTester test fails - pthread create failed for ExplicitSchedParamsFIFO: Operation not permitted

Open yurivict opened this issue 2 years ago • 5 comments

==================================
   OLA 0.10.9: ./test-suite.log
==================================

# TOTAL: 79
# PASS:  78
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: common/thread/ThreadTester
================================

.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:93: Attempt to start already running thread MockThread
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:151: pthread create failed for ExplicitSchedParamsFIFO: Operation not permitted
F.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0


ThreadTest.cpp:178:Assertion
Test name: ThreadTest::testSchedulingOptions
assertion failed
- Expression: RunThread(&thread)

Failures !!!
Run: 6   Failure total: 1   Failures: 1   Errors: 0
FAIL common/thread/ThreadTester (exit status: 1)

Version: 0.10.9 FreeBSD 13.2

yurivict avatar Jun 30 '23 02:06 yurivict

Can you try running common/thread/ThreadTester as root please?

Also both variants with -l 4 on the end to get us more logs.

See also this which has some potential workarounds/options from the looks of things: https://stackoverflow.com/questions/9313428/getting-eperm-when-calling-pthread-create-for-sched-fifo-thread-as-root-on-lin

peternewman avatar Jun 30 '23 15:06 peternewman

common/thread/ThreadTester succeeds when run as root with and without -l 4.

yurivict avatar Jun 30 '23 15:06 yurivict

common/thread/ThreadTester succeeds when run as root with and without -l 4.

Please can we see the output of common/thread/ThreadTester -l 4 then.

Can you also have a look at that linked thread and see if you can fix it by changing a permission externally to OLA?

peternewman avatar Jun 30 '23 17:06 peternewman

As regular user:

[yuri@yv /usr/ports/misc/ola]$ ./work/ola-0.10.9/common/thread/ThreadTester -l 4
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:93: Attempt to start already running thread MockThread
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:151: pthread create failed for ExplicitSchedParamsFIFO: Operation not permitted
F.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0


ThreadTest.cpp:178:Assertion
Test name: ThreadTest::testSchedulingOptions
assertion failed
- Expression: RunThread(&thread)

Failures !!!
Run: 6   Failure total: 1   Failures: 1   Errors: 0

As root:

[yuri@yv /usr/ports/misc/ola]$ sudo ./work/ola-0.10.9/common/thread/ThreadTester -l 4
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:93: Attempt to start already running thread MockThread
.common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread ExplicitSchedParamsFIFO, policy SCHED_FIFO, priority 31
common/thread/Thread.cpp:200: Thread MockThread, policy SCHED_OTHER, priority 0
common/thread/Thread.cpp:200: Thread ExplicitSchedParamsRR, policy SCHED_RR, priority 31
common/thread/Thread.cpp:200: Thread InheritSchedParams, policy SCHED_FIFO, priority 15
.common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0


OK (6)

yurivict avatar Jun 30 '23 17:06 yurivict

Can you also have a look at that linked thread and see if you can fix it by changing a permission externally to OLA?

https://stackoverflow.com/questions/9313428/getting-eperm-when-calling-pthread-create-for-sched-fifo-thread-as-root-on-lin

peternewman avatar Jun 30 '23 17:06 peternewman