Encoder panics in some cases when -buildmode=pie enabled on Linux #350
Closed
Description
Hey I'm having a really hard time making a simple reproduction case. But basically if you clone github.com/multiprocessio/dsq and run go build -buildmode=pie && ./scripts/test.py
it will show you this:
panic: runtime error: index out of range [576457833716731764] with length 117670
goroutine 1 [running]:
github.com/goccy/go-json/internal/encoder.CompileToGetCodeSet(0xc000f70f90?, 0x55b1294306cc?)
github.com/goccy/go-json@v0.9.4/internal/encoder/compiler_norace.go:11 +0x1df
github.com/goccy/go-json.encode(0xc001161ba0, {0xc0009540c0, 0xc00112a750})
github.com/goccy/go-json@v0.9.4/encode.go:224 +0xd0
github.com/goccy/go-json.marshal({0xc0009540c0, 0xc00112a750}, {0x0, 0x0, 0x1?})
github.com/goccy/go-json@v0.9.4/encode.go:148 +0xba
github.com/goccy/go-json.MarshalWithOption(...)
github.com/goccy/go-json@v0.9.4/json.go:186
github.com/goccy/go-json.Marshal({0xc0009540c0?, 0xc00112a750?})
github.com/goccy/go-json@v0.9.4/json.go:171 +0x2a
github.com/multiprocessio/go-json.(*StreamEncoder).EncodeRow(0xc000958060, {0xc0009540c0?, 0xc00112a750})
github.com/multiprocessio/go-json@v0.0.0-20220308002443-61d497dd7b9e/encoder.go:57 +0x1dd
github.com/multiprocessio/datastation/runner.transformParquet.func1(0x0?)
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/file.go:121 +0xc6
github.com/multiprocessio/datastation/runner.withJSONArrayOutWriter({0x55b12b25b338?, 0xc000011218}, 0xc000f71288)
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/json.go:36 +0xf6
github.com/multiprocessio/datastation/runner.withJSONArrayOutWriterFile(...)
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/json.go:51
github.com/multiprocessio/datastation/runner.transformParquet({0x55b12b26a2c0?, 0xc000c35788?}, {0x55b12b25b338, 0xc000011218})
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/file.go:106 +0xd8
github.com/multiprocessio/datastation/runner.transformParquetFile({0x7ffddb498a31?, 0x1b?}, {0x55b12b25b338, 0xc000011218})
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/file.go:143 +0xec
github.com/multiprocessio/datastation/runner.TransformFile({0x7ffddb498a31, 0x1b}, {{0x0?, 0x1ff?}, {0x0?, 0xc000aff440?}}, {0x55b12b25b338, 0xc000011218})
github.com/multiprocessio/datastation/runner@v0.0.0-20220311183454-aba843b46842/file.go:594 +0x1e5
main.evalFileInto({0x7ffddb498a31, 0x1b}, 0x0?)
github.com/multiprocessio/dsq/main.go:47 +0xc5
main._main()
github.com/multiprocessio/dsq/main.go:241 +0xaec
main.main()
github.com/multiprocessio/dsq/main.go:381 +0x19
This panic doesn't happen if -buildmode=pie
is not set.
Any idea what's happening here?
Metadata
Assignees
Labels
No labels