-
Notifications
You must be signed in to change notification settings - Fork 343
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
Panic: invalid pc-encoded table #310
Comments
Can you give me some usage codes? It seems being introduced by a corrupt memory pointer -- Is there any unsafe pointer in your decoded|encoded object? |
Sonic has widespread usage in our project. So it may be a little bit hard. But let's try. First , unsafe in our project: Only this one
About sonic usage, we are using it for marshaling big proto structures and also map[string]interface{} (some values are proto structures) |
Actually |
Hello again 👋🏻 So we dropped unsafe code from our project. The only unsafe that exists is unsafe in protobuf internals. So could you at least try to research this problem? |
Can u try to integrate your practical codes as a UT and run |
@AsterDY It's SIGPROF again, as shown in the stack backtrace. |
@OlegElizarov Do you have pprof of some kind of profiler attached to your program? It’s a known issue that Sonic is not very compatible with SIGPROF. We got a few reports, and still working on this. |
Hello again. Thank for your help guys. @AsterDY , we tried to add (-race -gcflags=-d=checkptr ) but there was no problems with sonic in this mode. @chenzhuoyu , yep , pprof is always on in our service.(some kind of rule in our corporation ) Is it possible to do something ? (some workaround) |
Go pprof won't make sonic crash which we have tried... Maybe it's introduce by other kind of profiling |
At present, since Go ASM doesn't support generating |
The root cause may be the output of
Since it may be difficult to ask Golang to improve its assembler, a possible solution is to use attribute Note that this still cannot prevent LLVM from generating instructions that adjust stacks.
Another potential issue is the stack alignment. In
The weird thing is that Go aligns stack to 8 bytes on amd64. Go realigns the stack when making call to c via cgo. Fortunately, there are only a few potential dangerous instructions in
|
fixed in #644 |
Hello guys.
We have a problem in our service and sonic appeared in trace. Unfortunately it happens only in production environment so I don't know how to reproduce this behavior.
Go version in our project - 1.18
Sonic version - 1.5.0
Can you help us to analyze the problem? If you need more information - just say it.
If it's not because of sonic than sorry. You project is really amazing and we love it! ❤️
Stack trace:
The text was updated successfully, but these errors were encountered: