https://bugzilla.redhat.com/show_bug.cgi?id=2088481
--- Comment #1 from Alexey Tikhonov <atikhono(a)redhat.com> ---
Failing function is `semanage_begin_transaction()`:
```
/* Attempt to obtain a transaction lock on the manager. If another
* process has the lock then this function may block, depending upon
* the timeout value in the handle.
*
* Note that if the semanage_handle has not yet obtained a transaction
* lock whenever a writer function is called, there will be an
* implicit call to this function. */
extern int semanage_begin_transaction(semanage_handle_t *);
```
From a quick glance I don't find an API to specify this timeout explicitly.
But
https://github.com/SELinuxProject/selinux/blob/0a8c177dacdc1df96ea11bb8aa...:
```
sh->timeout = SEMANAGE_COMMIT_READ_WAIT;
```
and
https://github.com/SELinuxProject/selinux/blob/0a8c177dacdc1df96ea11bb8aa...:
```
https://github.com/SELinuxProject/selinux/blob/0a8c177dacdc1df96ea11bb8aa...
```
This matches timestamps in the log:
```
* (2022-05-19 13:41:56): [selinux_child[11668]] [seuser_needs_update]
(0x0400): The SELinux user does need an update
* (2022-05-19 13:42:01): [selinux_child[11668]] [libsemanage] (0x0020):
Could not get direct transaction lock at
/var/lib/selinux/targeted/semanage.trans.LOCK.
```
I'm not sure a retry would help. If a retry would succeed immediately this
would mean a bug in `libsemanage`, imo.
Btw, Rob, if your goal is a load testing of a *server* then you could consider
setting `selinux_provider = none` on the client.
It will reduce amount of fetched data, but I think overall request rate will be
increased.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2088481