-
Notifications
You must be signed in to change notification settings - Fork 571
Description
We're seeing a bunch of issues in our backend project (like this one) where the context line includes hard-coded values which change per invocation:
They're generally at the bottom of the stacktrace, and are always of the form from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=12, pipe_handle=28), where 12 and 28 are somehow hard-coded in rather than being variables, as you'd expect to see elsewhere.
As a result, every time these values change, we get a new issue.
It's not clear how this is happening. Is there something with how multiprocessing works (or how we're using it), which puts us in some sort of a "programmatically generate code and then evaluate it" situation? Is that even a thing in Python? (In JS, you could imagine a template string like `spawn_main(tracker_fd=${fd}, pipe_handle=${pipe_handle})` which then got its values filled in and got passed to eval or something, but not sure if there's a Python equivalent.)
We can add some custom grouping rules to help with this, but if it's a problem for us, it's likely a problem for other people, too, so it would be better if we could just fix the underlying problem.