runtime icon indicating copy to clipboard operation
runtime copied to clipboard

Changing port spec on cue file with an improper definition results in huge stack trace

Open will-chan opened this issue 3 years ago • 1 comments

I modified the sample acorn.cue file from:

publish: "80/http"to publish: "80/8080" which is obviously wrong but it results in a big stack trade. We should clean this up to something friendly to consume.

Error: 0: conflicting values "80/8080" and >0 (mismatched types string and number):
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-2900008436/acorn.cue:4:12
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/app.cue:70:9
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:81:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:91:7
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0: conflicting values "80/8080" and {publish:(bool|*false),port:int,containerPort:(int|*port),protocol:(*"tcp"|"udp"|"http"|"https")} (mismatched types string and struct):
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-2900008436/acorn.cue:4:12
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/app.cue:70:71
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/spec.cue:169:12
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:81:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:91:7
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0: conflicting values "80/8080" and {publish:true} (mismatched types string and struct):
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-2900008436/acorn.cue:4:12
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:38
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0.protocol: conflicting values "http" and "8080":
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/spec.cue:173:34
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:13:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:92:15
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:93:3
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:94:14
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0.protocol: conflicting values "https" and "8080":
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/spec.cue:173:43
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:13:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:92:15
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:93:3
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:94:14
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0.protocol: conflicting values "tcp" and "8080":
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/spec.cue:173:18
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:13:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:92:15
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:93:3
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:94:14
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0.protocol: conflicting values "udp" and "8080":
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/spec.cue:173:26
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:13:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:14:11
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:92:15
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:93:3
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:94:14
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:398:6
0: 8 errors in empty disjunction::
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:380:10
0.protocol: 4 errors in empty disjunction::
    /var/folders/2h/d5nn5j4j283c8dgb3p5t5mlm0000gn/T/acorn-acorn.cue-3417117354/schema/v1/transform/normalize/normalize.cue:380:10

will-chan avatar Jun 07 '22 20:06 will-chan

The solution to this madness is usually to ensure the spec.cue enforces the schema better (this situation is a regexp for the string). If it passes spec.cue we go into the transformation phase and errors in transformation are much harder to understand.

ibuildthecloud avatar Jun 08 '22 16:06 ibuildthecloud

part of the AML work

cjellick avatar Oct 05 '22 16:10 cjellick