Skip to content

session-child: use _exit in SIGTERM handler (#484) - #490

Open
Franklin-Qi wants to merge 1 commit into
ubuntu:mainfrom
Franklin-Qi:fix/484-session-child-sigterm-exit
Open

Franklin-Qi wants to merge 1 commit into
ubuntu:mainfrom
Franklin-Qi:fix/484-session-child-sigterm-exit

Conversation

@Franklin-Qi

@Franklin-Qi Franklin-Qi commented Oct 12, 2026 •

Copy link
Copy Markdown

Summary

  • signal_cb called exit() from a SIGTERM handler, which is not async-signal-safe and can deadlock in malloc when the arena lock is held (intermittent ~90s greeter stop hang).
  • Use _exit() instead so atexit/ELF destructors are skipped, matching the existing “just quit” intent.

Closes: #484

exit() is not async-signal-safe and can deadlock in malloc when SIGTERM
arrives while the arena lock is held, delaying greeter teardown.

Closes: ubuntu#484
@jpeisach

Copy link
Copy Markdown
Collaborator

does this work on BSD?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

session-child calls exit() from its SIGTERM handler and deadlocks in malloc; greeter scope then hangs until systemd SIGKILLs it (90 s login delay)

2 participants