Files
scst/tests/ginkgo/config.iscsi.example.json
Gleb Chesnokov 7dc98f5b29 scst: Cache the session black-hole mode for task management
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
2026-10-16 14:46:19 +03:00

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"
}
}