mirror of
https://github.com/SCST-project/scst.git
synced 2026-10-22 14:12:33 +00:00
Task-management initialization reads sess->acg before acquiring activity protection. A concurrent reassignment can clear this pointer and later drop the old ACG reference, so the read can dereference NULL or freed storage even while ordinary command processing is suspended. Keep a session-owned copy of the black-hole mode and read it with READ_ONCE() in the TM path. Initialize it before admitting session work, retain the old mode while replacing LUNs, and publish the new mode when installing the new ACG. Update existing sessions on sysfs writes as well. All writers hold scst_mutex and use WRITE_ONCE(); the TM command already owns a session reference, so no additional locking or ACG reference is needed for this scalar policy read. Read the previous sysfs value under the same mutex so concurrent stores cannot mistake a real change for a no-op and leave session copies stale. Extend the private TM tests with sysfs mode transitions, rejected writes, and old/new drop-policy checks inside and after real reassignment. Remove the dedicated Ginkgo opt-in and Skip path now that the fix is in place, so both teardown scenarios run whenever their labels are selected, including full CI runs. Link: https://github.com/SCST-project/scst/issues/367
26 lines
543 B
JSON
26 lines
543 B
JSON
{
|
|
"admin_command": ["scstadmin"],
|
|
"disposable_host": false,
|
|
"report_dir": "results",
|
|
"command_timeout": "45s",
|
|
"cleanup_timeout": "3m",
|
|
"iscsi": {
|
|
"target_address": "192.0.2.10",
|
|
"port": 3260,
|
|
"login_timeout": "15s",
|
|
"initiator": {
|
|
"host": "192.0.2.20",
|
|
"user": "root",
|
|
"port": 22,
|
|
"identity_file": "/root/.ssh/id_ed25519",
|
|
"lock_file": "/tmp/scst-ginkgo.lock",
|
|
"disposable_host": false
|
|
}
|
|
},
|
|
"io": {
|
|
"block_device": "",
|
|
"region_mb": 64,
|
|
"timeout": "3m"
|
|
}
|
|
}
|