zap
zap copied to clipboard
jsonEncoder.safeAddString panic
https://github.com/uber-go/zap/blob/845ca51d5b8d9fed9fe14f35ab13b6b160d5762d/zapcore/json_encoder.go#L488
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6e42f8]
goroutine 25244385 [running]: go.uber.org/zap/zapcore.(*jsonEncoder).safeAddString(0xc0012e5bf0, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:466 +0x58 go.uber.org/zap/zapcore.(*jsonEncoder).AppendString(0xc0012e5bf0, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:267 +0x1f2 go.uber.org/zap/zapcore.(*jsonEncoder).AddString(0xc0005d0ca8, {0x2067ce9, 0xc0012e5bf0}, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:182 +0x45 go.uber.org/zap/zapcore.Field.AddTo({{0x2067ce9, 0x7}, 0xf, 0x0, {0x0, 0x4}, {0x0, 0x0}}, {0x24f1be0, 0xc0012e5bf0}) /build/vendor/go.uber.org/zap/zapcore/field.go:149 +0x74c go.uber.org/zap/zapcore.addFields({0x24f1be0, 0xc0012e5bf0}, {0xc0012a6380, 0xe, 0x207236c}) /build/vendor/go.uber.org/zap/zapcore/field.go:210 +0xe6 go.uber.org/zap/zapcore.(*jsonEncoder).EncodeEntry(0xc000adbe30, {0x0, {0xc1005e92872d07da, 0x3e5dcd4601bd4, 0x3911600}, {0xc00029e0b0, 0xc}, {0x20a7c71, 0x19}, {0x0, ...}, ...}, ...) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:393 +0x671 gopkg.mihoyo.com/takumi/log.zapLogger.write({{0xc00029e0b0, 0xc}, {0xc0009856b0}, {0x24f2860, 0xc000adbe30}, {0x247a798, 0xc000adbe60}}, {0x0, {0xc1005e92872d07da, 0x3e5dcd4601bd4, ...}, ...}, ...)
zap version: v1.18.0
I cannot repeat this case, but this error occurs from time to time in our online environment. I hope to get help
Hey there,
- Does this happen with the latest Zap release?
- Is there any repro you can provide us with?
I'm also experiencing the same issue. I'm using version 1.16
I'm also experiencing the same issue.
I'm using version v1.21.0
https://github.com/uber-go/zap/blob/845ca51d5b8d9fed9fe14f35ab13b6b160d5762d/zapcore/json_encoder.go#L488
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6e42f8]
goroutine 25244385 [running]: go.uber.org/zap/zapcore.(*jsonEncoder).safeAddString(0xc0012e5bf0, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:466 +0x58 go.uber.org/zap/zapcore.(*jsonEncoder).AppendString(0xc0012e5bf0, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:267 +0x1f2 go.uber.org/zap/zapcore.(*jsonEncoder).AddString(0xc0005d0ca8, {0x2067ce9, 0xc0012e5bf0}, {0x0, 0x4}) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:182 +0x45 go.uber.org/zap/zapcore.Field.AddTo({{0x2067ce9, 0x7}, 0xf, 0x0, {0x0, 0x4}, {0x0, 0x0}}, {0x24f1be0, 0xc0012e5bf0}) /build/vendor/go.uber.org/zap/zapcore/field.go:149 +0x74c go.uber.org/zap/zapcore.addFields({0x24f1be0, 0xc0012e5bf0}, {0xc0012a6380, 0xe, 0x207236c}) /build/vendor/go.uber.org/zap/zapcore/field.go:210 +0xe6 go.uber.org/zap/zapcore.(*jsonEncoder).EncodeEntry(0xc000adbe30, {0x0, {0xc1005e92872d07da, 0x3e5dcd4601bd4, 0x3911600}, {0xc00029e0b0, 0xc}, {0x20a7c71, 0x19}, {0x0, ...}, ...}, ...) /build/vendor/go.uber.org/zap/zapcore/json_encoder.go:393 +0x671 gopkg.mihoyo.com/takumi/log.zapLogger.write({{0xc00029e0b0, 0xc}, {0xc0009856b0}, {0x24f2860, 0xc000adbe30}, {0x247a798, 0xc000adbe60}}, {0x0, {0xc1005e92872d07da, 0x3e5dcd4601bd4, ...}, ...}, ...)
zap version: v1.18.0
I cannot repeat this case, but this error occurs from time to time in our online environment. I hope to get help
hello,how do you fix this problem?update to the latest version?this error also occurs in our online environment sometimes
Hi! Any updates on this issue? Got the same panic in our production environment.
Details
go version: 1.22.0
zap version: v1.25.0
panic({0x1d3e9e0?, 0x34e37e0?})
runtime/panic.go:914 +0x21f
go.uber.org/zap/zapcore.(*jsonEncoder).safeAddString(0xc0376cd500, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:490 +0x54
go.uber.org/zap/zapcore.(*jsonEncoder).AppendString(0xc0376cd500, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:295 +0x1f9
go.uber.org/zap/zapcore.(*jsonEncoder).AddString(0xc037697ce0?, {0x20a22ee?, 0x30?}, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:197 +0x3b
go.uber.org/zap/zapcore.Field.AddTo({{0x20a22ee, 0x5}, 0xf, 0x0, {0x0, 0x5c}, {0x0, 0x0}}, {0x249a1d8, 0xc0376cd500})
go.uber.org/[email protected]/zapcore/field.go:149 +0x466
go.uber.org/zap/zapcore.addFields(...)
go.uber.org/[email protected]/zapcore/field.go:210
go.uber.org/zap/zapcore.(*ioCore).With(0xc037697a70, {0xc0376cd4c0, 0x1, 0x7facc1e28d40?})
go.uber.org/[email protected]/zapcore/core.go:83 +0x1a5
go.uber.org/zap/zapcore.(*sampler).With(0xc0376cd300, {0xc0376cd4c0?, 0x455de9?, 0x20?})
go.uber.org/[email protected]/zapcore/sampler.go:205 +0x2c
Hey, we're still looking for a repro case to help us debug and fix this issue. Any leads on one would be appreciated!
Okay, we're trying to reproduce this case locally. Also, as I see, the implementation of safeAddString
has already changed in v1.26.0
. Perhaps this problem is no longer relevant for new versions.
Got the same runtime error: invalid memory address or nil pointer dereference
with v1.27.0
:
panic({0x1de8420?, 0x36187d0?})
runtime/panic.go:914 +0x21f
go.uber.org/zap/zapcore.safeAppendStringLike[...](0x227cd38?, 0x227cdc0, 0xc00fd719e0, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:527 +0x54
go.uber.org/zap/zapcore.(*jsonEncoder).safeAddString(...)
go.uber.org/[email protected]/zapcore/json_encoder.go:489
go.uber.org/zap/zapcore.(*jsonEncoder).AppendString(0xc003f8d500, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:295 +0x219
go.uber.org/zap/zapcore.(*jsonEncoder).AddString(0xc00ad16810?, {0x215c17e?, 0x30?}, {0x0, 0x5c})
go.uber.org/[email protected]/zapcore/json_encoder.go:197 +0x3b
go.uber.org/zap/zapcore.Field.AddTo({{0x215c17e, 0x5}, 0xf, 0x0, {0x0, 0x5c}, {0x0, 0x0}}, {0x2570f98, 0xc003f8d500})
go.uber.org/[email protected]/zapcore/field.go:149 +0x466
go.uber.org/zap/zapcore.addFields(...)
go.uber.org/[email protected]/zapcore/field.go:210
go.uber.org/zap/zapcore.(*ioCore).With(0xc00ad16330, {0xc003f8d4c0, 0x1, 0x7f3883e4b4c8?})
go.uber.org/[email protected]/zapcore/core.go:83 +0x1a5
go.uber.org/zap/zapcore.(*sampler).With(0xc003f8cbc0, {0xc003f8d4c0?, 0x455e29?, 0x20?})
go.uber.org/[email protected]/zapcore/sampler.go:205 +0x2c
Still trying to catch this case locally.