When did stack traces become the new user interface?

So I've been working of late with some Java programs. They substitute a ~10KB stack trace for an error message. If you have a typo in the config file you have to fish through that stack trace to find what file, what line, and why (and not because the stack trace has it, its just you can guestimate from the method names what it might be reading). Its beyond infuriating.

And now here's another. 'Kustomize'. Like all good Kubernetes things it starts with a 'K'. Makes it hard to use on KDE I can tell you. Cacophony. The jaws that bite, the claws that catch, the 'k''s that cough. That sort of thing.

I mean, seriously, how am I supposed to infer what line of what file might be wrong. I have to go find the source code to this program and add some printfs?

How is this progress, we let Yacc+Lex go and replaced it with a core dump?

$ <PACKAGE>/overlays/production$ kustomize build .
panic: interface conversion: interface {} is map[string]interface {}, not []interface {}

goroutine 1 [running]:
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).updateContainers(0xc00025cf20, 0xc0004e3710, 0x100b88b, 0xa, 0xc0003a6e08, 0x60000c0003a6301)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:78 +0x4fc
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findAndReplaceImage(0xc00025cf20, 0xc0004e3710, 0xc000364df0, 0x4)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:65 +0x13e
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findContainers(0xc00025cf20, 0xc0004e3650, 0x100e547, 0xe)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:112 +0x1f2
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findAndReplaceImage(0xc00025cf20, 0xc0004e3650, 0xc000364d38, 0x8)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:72 +0xe1
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findContainers(0xc00025cf20, 0xc0004e35c0, 0x100e547, 0xe)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:112 +0x1f2
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findAndReplaceImage(0xc00025cf20, 0xc0004e35c0, 0xc0003652dc, 0x4)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:72 +0xe1
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findContainers(0xc00025cf20, 0xc0004e3560, 0x100e547, 0xe)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:112 +0x1f2
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).findAndReplaceImage(0xc00025cf20, 0xc0004e3560, 0x0, 0x0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:72 +0xe1
sigs.k8s.io/kustomize/pkg/transformers.(*imageTransformer).Transform(0xc00025cf20, 0xc0003eca80, 0x0, 0x0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/image.go:45 +0xca
sigs.k8s.io/kustomize/pkg/transformers.(*multiTransformer).transform(0xc0003ed620, 0xc0003eca80, 0x0, 0xc0003641f0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/multitransformer.go:62 +0x6f
sigs.k8s.io/kustomize/pkg/transformers.(*multiTransformer).Transform(0xc0003ed620, 0xc0003eca80, 0xc0003eca80, 0xc0004e16c0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/transformers/multitransformer.go:58 +0x75
sigs.k8s.io/kustomize/pkg/target.(*ResAccumulator).Transform(0xc000030ea0, 0x1136fa0, 0xc0003ed620, 0x0, 0xc0001288f0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/target/resaccumulator.go:121 +0x3e
sigs.k8s.io/kustomize/pkg/target.(*KustTarget).AccumulateTarget(0xc000030e40, 0xc00030b540, 0xc00000e728, 0x113a680)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/target/kusttarget.go:209 +0x3b3
sigs.k8s.io/kustomize/pkg/target.(*KustTarget).accumulateBases(0xc00019fdd0, 0xc00035adc0, 0x30)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/target/kusttarget.go:254 +0x4b8
sigs.k8s.io/kustomize/pkg/target.(*KustTarget).AccumulateTarget(0xc00019fdd0, 0xc000202b00, 0xc0002c60f0, 0x42b522)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/target/kusttarget.go:155 +0x53
sigs.k8s.io/kustomize/pkg/target.(*KustTarget).MakeCustomizedResMap(0xc00019fdd0, 0xc00030b400, 0xc00000e728, 0x113a680)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/target/kusttarget.go:122 +0x2f
sigs.k8s.io/kustomize/pkg/commands/build.(*Options).RunBuild(0xc00035a100, 0x1136dc0, 0xc00000e018, 0x1157a60, 0x19df818, 0xc00000e728, 0x113a680, 0x19df818, 0x0, 0x0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/commands/build/build.go:115 +0x108
sigs.k8s.io/kustomize/pkg/commands/build.NewCmdBuild.func1(0xc000139b80, 0xc000210810, 0x1, 0x1, 0x0, 0x0)
	/home/don/go/src/sigs.k8s.io/kustomize/pkg/commands/build/build.go:78 +0x136
sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra.(*Command).execute(0xc000139b80, 0xc0002107b0, 0x1, 0x1, 0xc000139b80, 0xc0002107b0)
	/home/don/go/src/sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra/command.go:756 +0x473
sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc000139900, 0xc0001cc280, 0xc0002a0a00, 0xc0002a0f00)
	/home/don/go/src/sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra/command.go:846 +0x2fd
sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra.(*Command).Execute(0xc000139900, 0xc000139900, 0xc00056bf58)
	/home/don/go/src/sigs.k8s.io/kustomize/vendor/github.com/spf13/cobra/command.go:794 +0x2b
main.main()
	/home/don/go/src/sigs.k8s.io/kustomize/kustomize.go:27 +0x151

Leave a Reply

Your email address will not be published. Required fields are marked *

*