Skip to content

feat: support forking of the dogd client#1240

Closed
sky-mart wants to merge 1 commit into
mainfrom
vlad/dogd-test
Closed

feat: support forking of the dogd client#1240
sky-mart wants to merge 1 commit into
mainfrom
vlad/dogd-test

Conversation

@sky-mart
Copy link
Copy Markdown
Contributor

"

@sky-mart sky-mart changed the title test: prove that dogd client doesn't function after forking feat: support forking of the dogd client May 29, 2026
@sky-mart sky-mart marked this pull request as ready for review May 29, 2026 12:20
@sky-mart sky-mart requested a review from a team as a code owner May 29, 2026 12:20
@github-actions
Copy link
Copy Markdown

  • Blocking: DogstatsdClient::sender() takes self.worker via std::sync::Mutex before it can check the PID and respawn the worker. If a multithreaded parent forks while another thread is emitting and holds that mutex, the child inherits the mutex locked by a thread that no longer exists, so the first post-fork emit deadlocks at orb-dogd/src/dd.rs:180 before reaching the fork-detection logic. The new tests avoid concurrent dogd emission during fork, so they do not cover this failure mode. This needs a design that does not rely on a fork-inherited mutex for recovery, or the supported contract must explicitly exclude concurrent emits around fork and test that boundary.

@sky-mart
Copy link
Copy Markdown
Contributor Author

sky-mart commented Jun 1, 2026

useless, because we always use fork+exec

@sky-mart sky-mart closed this Jun 1, 2026
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