Skip to content

Conversation

Liam-DeVoe
Copy link
Member

See pschanely/hypothesis-crosshair#41.

There are two problems here:

  • contro._events_to_strings was a cache which persisted symbolics. We disable this now under avoid_realization.
  • The pytest plugin could call describe_statistics even when observability is not enabled. Because we gated realization behind observability being enabled, data.events might be symbolic in the pytest plugin. This patch makes the realization unconditional. In the future I want to investigate unifying the pytest statistics reporting with observability, so we have the single observability path, and the pytest plugin simply adds an observability callback.

@Liam-DeVoe
Copy link
Member Author

(Unrelated crosshair tests are now newly non-deterministic, and I'm not sure how yet)

@Liam-DeVoe
Copy link
Member Author

I suspect CI uncovered a known bug in hypothesis-crosshair which was fixed in the newly-released 0.0.25:

Prevent internal crosshair errors from getting exposed while trying to recover from a user-level exception.

as it didn't reproduce locally once I bumped it. We'll see what CI says.

@Liam-DeVoe
Copy link
Member Author

@pschanely maybe you have some idea about this failure: https://github.com/HypothesisWorks/hypothesis/actions/runs/17025677909/job/48260729766?pr=4507. It seems that if crosshair raised PathTimeout on the current iteration, and is then asked to .realize symbolics, it's possible for it to raise NotDeterministic? Do you have a sense of if this is likely to be a Hypothesis-side misuse of crosshair or whether crosshair should catch NotDeterministic inside .realize and raise BackendCannotProceed instead?

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