Skip to content

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

Open
timpalpant wants to merge 1 commit into
vmprof:masterfrom
timpalpant:flush-buffers
Open

Flush buffers before reading back in to construct all seen addresses#206
timpalpant wants to merge 1 commit into
vmprof:masterfrom
timpalpant:flush-buffers

Conversation

@timpalpant

Copy link
Copy Markdown
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

mattip commented Sep 26, 2024

Copy link
Copy Markdown
Contributor

Could you add a test that hits the new code?

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

Labels

None yet

3 participants