[LTP] semctl01: tolerate SEM_STAT races under parallel LTP runs
linuxtestproject.agent@gmail.com
linuxtestproject.agent@gmail.com
Tue Jul 21 04:38:10 CEST 2026
Hi Stephen,
On Mon Jul 20 19:56:47 2026, Stephen Bertram wrote:
> semctl01: tolerate SEM_STAT races under parallel LTP runs
> +static int do_sem_stat(union semun arg)
> +{
> + int idx, rval;
> + unsigned int retries = 5;
> +
> + do {
> + int info_id = 0;
> +
> + idx = SAFE_SEMCTL(info_id, 0, IPC_INFO, (union semun)&ipc_buf);
> + rval = semctl(idx, 0, SEM_STAT, arg);
> + if (rval >= 0)
> + return rval;
> + if (errno != EIDRM && errno != EINVAL)
> + tst_brk(TBROK | TERRNO, "semctl(SEM_STAT)");
> + } while (--retries);
semctl() is the subject syscall of this test. The rule for subject
syscalls is: skip SAFE_* (done correctly), but wrap the call in TEST()
or a TST_EXP_* macro -- never call it bare. Something like:
TEST(semctl(idx, 0, SEM_STAT, arg));
if (TST_RET >= 0)
return TST_RET;
if (TST_ERR != EIDRM && TST_ERR != EINVAL)
tst_brk(TBROK | TERRNO, "semctl(SEM_STAT)");
Verdict - Needs revision
---
Note:
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
More information about the ltp
mailing list