Skip to content

test: Check the memory estimation under every multiprocessing start method - #2264

Open
Pijukatel wants to merge 1 commit into
masterfrom
claude/fervent-curie-cwnadu
Open

Pijukatel wants to merge 1 commit into
masterfrom
claude/fervent-curie-cwnadu

Conversation

@Pijukatel

@Pijukatel Pijukatel commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Description

  • Parametrize the shared-memory estimation test over fork, forkserver and spawn, since the children share a different amount of memory under each and the Linux default changed to forkserver in Python 3.14.
  • The children move to module level so that every start method can pickle them, and the context is warmed up first, as the fork server started mid-round would inflate the baseline.

Issues

Testing

  • All three variants pass on Python 3.11 and 3.14.

Checklist

  • CI passed

@codecov

codecov Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.90%. Comparing base (df1178c) to head (7d4f24b).
⚠️ Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2264      +/-   ##
==========================================
+ Coverage   93.87%   93.90%   +0.02%     
==========================================
  Files         182      182              
  Lines       13130    13144      +14     
==========================================
+ Hits        12326    12343      +17     
+ Misses        804      801       -3     
Flag Coverage Δ
unit 93.90% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Pijukatel
Pijukatel force-pushed the claude/fervent-curie-cwnadu branch from 74195a7 to 9260a17 Compare October 1, 2026 12:51
…ethod

The shared-memory regression test for `get_memory_info()` ran its
children under an explicit `fork` context only. The start methods
differ in how much memory the children share with the rest of the
process tree, and the default changed from `fork` to `forkserver` in
Python 3.14, so the test is now parametrized over `fork`, `forkserver`
and `spawn`.

The children are module-level functions so that every start method can
pickle them. The measuring process stays a closure started by `fork`,
as before. Start methods that launch long-lived helper processes on
first use (the fork server, the resource tracker) get a warm-up before
the measurements, since those processes would otherwise land in the
first baseline reading and inflate it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TZuPLMf9Yf1NKZMqtGDS9J
@Pijukatel
Pijukatel force-pushed the claude/fervent-curie-cwnadu branch from 9260a17 to 7d4f24b Compare October 2, 2026 11:47
@Pijukatel
Pijukatel marked this pull request as ready for review October 2, 2026 12:06
@Pijukatel
Pijukatel requested a review from vdusek October 2, 2026 12:06
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Oct 2, 2026
@apify-service-account apify-service-account added the t-tooling Issues with this label are in the ownership of the tooling team. label Oct 2, 2026

This branch has not been deployed

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

Labels

t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Verify memory-usage estimation across multiprocessing start methods (fork → forkserver in Python 3.14)

3 participants