runtime: load two go so/DLLs in one c++ executable on Windows #36628
Labels
FrozenDueToAge
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
OS-Windows
Milestone
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
not sure
What operating system and processor architecture are you using (
go env
)?Windows 10 1903
CentOS 7.2
What did you do?
I wrote two different components in golang and compiled them into C dynamic libraries.
Then built a c++ executable with these two dynamic libraries.
Both these libraries have a running goroutine receiving msg from net and call back c++ functions(not the same one though) to notify events.
In the test environment with a light workload, everything works all right.
But when it comes to heavy load production env, it crashes randomly!
Sometimes I can get exception infomation from stderr saying runtime: unknown pc ,
other times it just simply crashes.
I've carefully checked c++ layer and didn't see any suspicious part (c++ layer is quite simple).
And I also notice that windows is more vulnerable. Rarely see it crashes on Linux.
So I wonder if the problem is coming from the go part.
Can two go shared libraries really coexist together in one process???
If not, How can I solve this?? I don't wanna rewrite everything!
What did you expect to see?
Running normally.
What did you see instead?
randomly crashes
sometimes get exception report like following one.
The text was updated successfully, but these errors were encountered: