-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fuzz vng roundtrip #4833
Fuzz vng roundtrip #4833
Conversation
I tracked the first failure down to a non-deterministic sort in |
The fuzzer now OOMs very quickly. I imagine this means a memory leak somewhere. |
Looks like the vng reader is leaving many goroutines behind?
|
Well, we hit this line twice. Called from:
|
425e203
to
4f537bb
Compare
@nwt With the most recent commit the fuzzer can reproduce something that looks similar to the crashes I'm seeing on real data.
|
@jamii: The root cause here is an underspecified total order for Zed types. Neither the specification nor zed.CompareTypes addresses the order of a named type relative to its underlying type or to another named type with the same underlying type. I'm working on a fix for that. |
#4837 should fix this. |
d77c4ff
to
7717d5a
Compare
I couldn't find a setting to mark a test as a known failure, so I stashed the testdata for these issues in jamii-fuzz-vng-repro. |
Co-authored-by: Noah Treuhaft <[email protected]>
Co-authored-by: Noah Treuhaft <[email protected]>
Co-authored-by: Noah Treuhaft <[email protected]>
Co-authored-by: Noah Treuhaft <[email protected]>
Co-authored-by: Noah Treuhaft <[email protected]>
Co-authored-by: Noah Treuhaft <[email protected]>
This reverts commit 98c1106.
zio/zngio/trailer.go
Outdated
@@ -125,7 +125,6 @@ func findCandidate(b []byte, off int) int { | |||
} | |||
} | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep me!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...I could have sworn I already removed that line from the diff, but apparently I just randomly added it.
Co-authored-by: Noah Treuhaft <[email protected]>
This reverts commit bd2645d.
Hooking up demand to vector.Read. * Use demand in vector.Read to avoid reading unneeded vectors. Also changes the type of the output value, removing any unused fields so that we can avoid having to materialize a bunch of nulls. * Add vngio.ReaderOpts, where opts.Demand defaults to demand.All{}. * Split the demand representation into a separate package to avoid import loops. * Pull the fuzzer code from #4833 into a fuzz package. (I've manually copied across the requested changes from that pr). * Add a fuzzer that runs random queries through both zng and vng paths and compares the results. (Found #4854). This uses a gross hack to get around the fact that readers are created before queries are analyzed. * Change the constants vector to hold []byte instead of zed.Value, since all we ever do is copy the bytes out. This doesn't yet actually do anything for `zq` or `zed query`. I can work on the latter, and @nwt is thinking about how to refactor to make `zq` possible.
This includes:
ZED_USE_DICT
is set.