You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: HTML preview browsers are never stopped inside an LXC container after t3 browser setup, and pile up #27136
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
Server: HTML preview rendering (apps/server/src/htmlRender/headlessChrome.ts)
Steps to reproduce
Run the T3 Code server (t3 v0.1.1) on Ubuntu 24.04 inside an LXC container.
Run t3 browser setup. It writes /etc/apparmor.d/t3-chrome-headless-shell (flags=(unconfined), userns).
Use chats that render HTML previews for a few hours.
List chrome-headless-shell processes whose --user-data-dir is under /tmp/t3-html-preview-*.
Expected behavior
Each preview browser exits when its capture finishes.
Actual behavior
The t3-html-preview-* temp directory is removed, but the browser keeps running. After about 14 hours there were 7 orphaned browsers using 113 to 235 MB each, about 1.3 GB in total.
Every attempt to stop one returns EPERM:
kill as the same user
kill as root via sudo
systemctl --user stop on its scope, which logs Failed to kill control group ... Permission denied
aa-exec -p t3-chrome-headless-shell -- kill
A normal process started by the same user can be killed. The browsers run under the AppArmor label t3-chrome-headless-shell, and every sender was unconfined.
Impact
Each preview leaks a browser that can't be stopped, so memory grows until the container restarts.
Version or commit
t3 v0.1.1, chrome-headless-shell 154.0.8037.92
Environment
Ubuntu 24.04.4 LTS in an LXC container (systemd-detect-virt -c reports lxc), kernel 7.0.0-34-generic.
Logs or stack traces
systemd[3738]: app-org.chromium.Chromium-1051116.scope: Failed to kill control group /user.slice/user-1002.slice/user@1002.service/app.slice/app-org.chromium.Chromium-1051116.scope, ignoring: Permission denied
Guess at the cause (unconfirmed): AppArmor stacking in LXC blocks signals sent to a process under a different label, so the server's cleanup can't stop the browser.
Activity