[LTP] [PATCH 1/2] SUNRPC: Don't allow waiting for exiting tasks

Harshvardhan Jha harshvardhan.j.jha@oracle.com
Fri Jul 25 13:59:46 CEST 2025


On 23/07/25 1:37 PM, NeilBrown wrote:
> On Wed, 23 Jul 2025, Harshvardhan Jha wrote:
>> On 08/04/25 4:01 PM, Mark Brown wrote:
>>> On Fri, Mar 28, 2025 at 01:40:44PM -0400, trondmy@kernel.org wrote:
>>>> From: Trond Myklebust <trond.myklebust@hammerspace.com>
>>>>
>>>> Once a task calls exit_signals() it can no longer be signalled. So do
>>>> not allow it to do killable waits.
>>> We're seeing the LTP acct02 test failing in kernels with this patch
>>> applied, testing on systems with NFS root filesystems:
>>>
>>> 10271 05:03:09.064993  tst_test.c:1900: TINFO: LTP version: 20250130-1-g60fe84aaf
>>> 10272 05:03:09.076425  tst_test.c:1904: TINFO: Tested kernel: 6.15.0-rc1 #1 SMP PREEMPT Sun Apr  6 21:18:14 UTC 2025 aarch64
>>> 10273 05:03:09.076733  tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz'
>>> 10274 05:03:09.087803  tst_test.c:1722: TINFO: Overall timeout per run is 0h 01m 30s
>>> 10275 05:03:09.088107  tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz'
>>> 10276 05:03:09.093097  acct02.c:63: TINFO: CONFIG_BSD_PROCESS_ACCT_V3=y
>>> 10277 05:03:09.093400  acct02.c:240: TINFO: Verifying using 'struct acct_v3'
>>> 10278 05:03:10.053504  <6>[   98.043143] Process accounting resumed
>>> 10279 05:03:10.053935  <6>[   98.043143] Process accounting resumed
>>> 10280 05:03:10.064653  acct02.c:193: TINFO: == entry 1 ==
>>> 10281 05:03:10.064953  acct02.c:84: TINFO: ac_comm != 'acct02_helper' ('acct02')
>>> 10282 05:03:10.076029  acct02.c:133: TINFO: ac_exitcode != 32768 (0)
>>> 10283 05:03:10.076331  acct02.c:141: TINFO: ac_ppid != 2466 (2461)
> It seems that the acct02 process got logged..
> Maybe the vfork attempt (trying to run acct02_helper) got half way an
> aborted.
> It got far enough that accounting got interested.
> It didn't get far enough to update the ppid.
> I'd be surprised if that were even possible....
>
> If you would like to help debug this, changing the
>
> +       if (unlikely(current->flags & PF_EXITING))
>
> to
>
> +       if (unlikely(WARN_ON(current->flags & PF_EXITING)))
>
> would provide stack traces so we can wee where -EINTR is actually being
> returned.  That should provide some hints.
>
> NeilBrown

Hi Neil,

Upon this addition I got this in the logs

<<<test_start>>>
tag=acct02 stime=1753444172
cmdline="acct02"
contacts=""
analysis=exit
<<<test_output>>>
tst_kconfig.c:88: TINFO: Parsing kernel config
'/lib/modules/6.15.8-1.bug38227970.el9.rc2.x86_64/config'
tst_tmpdir.c:316: TINFO: Using /tmpdir/ltp-w1ozKKlJ6n/LTP_acc4RRfLh as
tmpdir (nfs filesystem)
tst_test.c:2004: TINFO: LTP version: 20250530-105-gda73e1527
tst_test.c:2007: TINFO: Tested kernel:
6.15.8-1.bug38227970.el9.rc2.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 25
02:03:04 PDT 2025 x86_64
tst_kconfig.c:88: TINFO: Parsing kernel config
'/lib/modules/6.15.8-1.bug38227970.el9.rc2.x86_64/config'
tst_test.c:1825: TINFO: Overall timeout per run is 0h 00m 30s
tst_kconfig.c:88: TINFO: Parsing kernel config
'/lib/modules/6.15.8-1.bug38227970.el9.rc2.x86_64/config'
acct02.c:61: TINFO: CONFIG_BSD_PROCESS_ACCT_V3=y
acct02.c:238: TINFO: Verifying using 'struct acct_v3'
acct02.c:191: TINFO: == entry 1 ==
acct02.c:82: TINFO: ac_comm != 'acct02_helper' ('acct02')
acct02.c:131: TINFO: ac_exitcode != 32768 (0)
acct02.c:139: TINFO: ac_ppid != 88929 (88928)
acct02.c:181: TFAIL: end of file reached

HINT: You _MAY_ be missing kernel fixes:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4d9570158b626

Summary:
passed   0
failed   1
broken   0
skipped  0
warnings 0
incrementing stop
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=1 corefile=no
cutime=0 cstime=20

<<<test_end>>>


Thanks & Regards,

Harshvardhan

>
>>> 10284 05:03:10.076572  acct02.c:183: TFAIL: end of file reached
>>> 10285 05:03:10.076790  
>>> 10286 05:03:10.087439  HINT: You _MAY_ be missing kernel fixes:
>>> 10287 05:03:10.087741  
>>> 10288 05:03:10.087979  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4d9570158b626
>>> 10289 05:03:10.088201  
>>> 10290 05:03:10.088414  Summary:
>>> 10291 05:03:10.088618  passed   0
>>> 10292 05:03:10.098852  failed   1
>>> 10293 05:03:10.099212  broken   0
>>> 10294 05:03:10.099454  skipped  0
>>> 10295 05:03:10.099675  warnings 0
>>>
>>> I ran a bisect which zeroed in on this commit (log below), I didn't look
>>> into it properly but the test does start and exit a test program to
>>> verify that accounting records get created properly which does look
>>> relevant.
>> Hi there,
>> I faced the same issue and reverting this patch fixed the issue.
>> Is this an issue introduced by this patch or it's due to the ltp
>> testcase being outdated?
>>
>> Thanks & Regards,
>> Harshvardhan
>>
>>> git bisect start
>>> # status: waiting for both good and bad commits
>>> # bad: [0af2f6be1b4281385b618cb86ad946eded089ac8] Linux 6.15-rc1
>>> git bisect bad 0af2f6be1b4281385b618cb86ad946eded089ac8
>>> # status: waiting for good commit(s), bad commit known
>>> # good: [38fec10eb60d687e30c8c6b5420d86e8149f7557] Linux 6.14
>>> git bisect good 38fec10eb60d687e30c8c6b5420d86e8149f7557
>>> # good: [fd71def6d9abc5ae362fb9995d46049b7b0ed391] Merge tag 'for-6.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
>>> git bisect good fd71def6d9abc5ae362fb9995d46049b7b0ed391
>>> # good: [93d52288679e29aaa44a6f12d5a02e8a90e742c5] Merge tag 'backlight-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
>>> git bisect good 93d52288679e29aaa44a6f12d5a02e8a90e742c5
>>> # good: [2cd5769fb0b78b8ef583ab4c0015c2c48d525dac] Merge tag 'driver-core-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
>>> git bisect good 2cd5769fb0b78b8ef583ab4c0015c2c48d525dac
>>> # bad: [25757984d77da731922bed5001431673b6daf5ac] Merge tag 'staging-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
>>> git bisect bad 25757984d77da731922bed5001431673b6daf5ac
>>> # good: [28a1b05678f4e88de90b0987b06e13c454ad9bd6] Merge tag 'i2c-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
>>> git bisect good 28a1b05678f4e88de90b0987b06e13c454ad9bd6
>>> # good: [92b71befc349587d58fdbbe6cdd68fb67f4933a8] Merge tag 'objtool-urgent-2025-04-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>>> git bisect good 92b71befc349587d58fdbbe6cdd68fb67f4933a8
>>> # good: [5e17b5c71729d8ce936c83a579ed45f65efcb456] Merge tag 'fuse-update-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
>>> git bisect good 5e17b5c71729d8ce936c83a579ed45f65efcb456
>>> # good: [344a50b0f4eecc160c61d780f53d2f75586016ce] staging: gpib: lpvo_usb_gpib: struct gpib_board
>>> git bisect good 344a50b0f4eecc160c61d780f53d2f75586016ce
>>> # bad: [9e8f324bd44c1fe026b582b75213de4eccfa1163] NFSv4: Check for delegation validity in nfs_start_delegation_return_locked()
>>> git bisect bad 9e8f324bd44c1fe026b582b75213de4eccfa1163
>>> # good: [df210d9b0951d714c1668c511ca5c8ff38cf6916] sunrpc: Add a sysfs file for adding a new xprt
>>> git bisect good df210d9b0951d714c1668c511ca5c8ff38cf6916
>>> # good: [bf9be373b830a3e48117da5d89bb6145a575f880] SUNRPC: rpc_clnt_set_transport() must not change the autobind setting
>>> git bisect good bf9be373b830a3e48117da5d89bb6145a575f880
>>> # good: [c81d5bcb7b38ab0322aea93152c091451b82d3f3] NFSv4: clp->cl_cons_state < 0 signifies an invalid nfs_client
>>> git bisect good c81d5bcb7b38ab0322aea93152c091451b82d3f3
>>> # bad: [14e41b16e8cb677bb440dca2edba8b041646c742] SUNRPC: Don't allow waiting for exiting tasks
>>> git bisect bad 14e41b16e8cb677bb440dca2edba8b041646c742
>>> # good: [0af5fb5ed3d2fd9e110c6112271f022b744a849a] NFSv4: Treat ENETUNREACH errors as fatal for state recovery
>>> git bisect good 0af5fb5ed3d2fd9e110c6112271f022b744a849a
>>> # first bad commit: [14e41b16e8cb677bb440dca2edba8b041646c742] SUNRPC: Don't allow waiting for exiting tasks


More information about the ltp mailing list