Skip to content
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

evalv3: infinite work and OOM panic regression where evalv2 is very fast #3509

Closed
mvdan opened this issue Oct 14, 2024 · 0 comments
Closed

Comments

@mvdan
Copy link
Member

mvdan commented Oct 14, 2024

env CUE_EXPERIMENT=evalv3=0
exec cue export

env CUE_EXPERIMENT=evalv3=1
exec cue export

-- file.cue --
package p

out: #job.step & "foo"

#job: (#Workflow & {job: _}).job

#Workflow: {
	job: step: string

	#matrixConfig: [...#matrixConfig] | string
	matrix?: [string]: [...#matrixConfig]
}

As of 4e8e027, I cannot run this testscript, as it doesn't deal well with commands that never finish. Below is me running the same file.cue file with the old and new evaluator manually, with timings:

$ time CUE_EXPERIMENT=evalv3=0 cue export repro.cue; echo --; time CUE_EXPERIMENT=evalv3=1 cue export repro.cue
{
    "out": "foo"
}

real	0m0.014s
user	0m0.007s
sys	0m0.009s
--
^C
real	0m17.613s
user	0m52.158s
sys	0m3.985s

Note that I had to kill the new evaluator run at about 25GiB of memory used, so that it wouldn't start forcing my laptop to use swap memory.

vanhtuan0409 pushed a commit to anduintransaction/cue that referenced this issue Oct 15, 2024
We know from the cycle algorithm that inline and
non-rooted structs/lists should get the same treatment
as regular fields. This is a first step in removing
their discrepancies.

To avoid some test breakages, we had to move where
the unification of shared structures was done.
This indeed seems to be a more sensible spot.

Issue cue-lang#3476
Issue cue-lang#2850
Issue cue-lang#2854
Fixes cue-lang#3509

Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: Ic26cb31f207d7be0209d01bad5c6df3130251e2f
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1202269
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
Reviewed-by: Matthew Sackman <matthew@cue.works>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant