Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Flush buffers before reading back in to construct all seen addresses #206

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

timpalpant
Copy link
Contributor

When disabling profiling, the log of samples written is read back in by LogReaderDumpNative to construct a deduplicated set of all code addresses that were recorded during sampling. This set is then passed to _vmprof.write_all_code_objects to write out the address and file/symbol info.

However if the last call to commit_buffer is a short write (for example because it was interrupted by a signal), then the LogReader may not be able to parse the tail of the file because we may still have pending un-flushed buffers (see: _write_single_ready_buffer).

This change adds a function to ensure all pending buffers are flushed to disk before attempting to reread them with the LogReader.

@mattip
Copy link
Contributor

mattip commented Sep 26, 2024

Could you add a test that hits the new code?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants