Skip to content

lua-lsm: reset dirty VMs on task exit#20

Open
chenzongyao200127 wants to merge 1 commit into
openanolis:lua-lsmfrom
chenzongyao200127:lua-lsm-dirty-vm-reset
Open

lua-lsm: reset dirty VMs on task exit#20
chenzongyao200127 wants to merge 1 commit into
openanolis:lua-lsmfrom
chenzongyao200127:lua-lsm-dirty-vm-reset

Conversation

@chenzongyao200127
Copy link
Copy Markdown
Collaborator

Lua-LSM reuses per-task Lua VMs through the LVM pool. A VM that lazily loads a policy module can keep module tables and registry state after the task exits, so reusing that VM for a later task can leave stale Lua module state reachable.

Track when a VM has been dirtied by lazy module loading and reset it from task_blob_free() before returning it to the pool. Clean VMs still take the existing fast path, while dirty VMs drop loaded modules and restore the registry state at task exit.

Validation:

  • ./scripts/checkpatch.pl --git origin/lua-lsm..lua-lsm-dirty-vm-reset
  • git diff --check origin/lua-lsm..lua-lsm-dirty-vm-reset

Signed-off-by: Zongyao Chen ZongYao.Chen@linux.alibaba.com

Lua VMs cached in the per-task pool can keep loaded module state
after a policy lookup dirties the VM. When such a VM is recycled for
another task, stale module tables may remain reachable unless the VM is
cleaned first.

Track dirty VMs and reset them from task_blob_free() before returning
them to the pool. This drops loaded modules and restores the registry
state at task exit, while leaving clean VMs on the fast reuse path.

Signed-off-by: Zongyao Chen <ZongYao.Chen@linux.alibaba.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant