Scouttlo
All ideas/devtools/Plataforma SaaS que automatice la detección, diagnóstico y generación de configuraciones seguras para la interoperabilidad entre runtimes de lenguajes como Go y C#, incluyendo manejo avanzado de señales y gestión de memoria compartida.
GitHubB2Bdevtools

Plataforma SaaS que automatice la detección, diagnóstico y generación de configuraciones seguras para la interoperabilidad entre runtimes de lenguajes como Go y C#, incluyendo manejo avanzado de señales y gestión de memoria compartida.

Scouted 8 hours ago

6.5/ 10
Overall score

Turn this signal into an edge

We help you build it, validate it, and get there first.

Go from idea to plan: who buys, what MVP to launch, how to validate it, and what to measure before spending months.

Extra context

Learn more about this idea

Get a clearer explanation of what the opportunity means, the current problem behind it, how this idea solves it, and the key concepts involved.

Share your email to view this expanded analysis.

Score breakdown

Urgency7.0
Market size6.0
Feasibility7.0
Competition3.0
Pain point

Errores de segmentación (SIGSEGV) al integrar librerías Go compiladas con c-shared y llamadas desde C# debido a conflictos en la gestión de señales y memoria entre ambos runtimes.

Who'd pay for this

Equipos de desarrollo de software que integran componentes en Go y C# en aplicaciones críticas, especialmente en empresas de software que requieren alta estabilidad en sistemas híbridos.

Source signal

"We hit an SIGSEV when running building a Go library with c-shared and then calling it from C#."

Original post

runtime: `SIGSEGV` with a c-shared library and called from C#

Published: 8 hours ago

Repository: golang/go Author: egonelbre ### Go version go version go1.26.2 linux/amd64 ### Output of `go env` in your module/workspace: ```shell AR='ar' CC='gcc' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_ENABLED='1' CGO_FFLAGS='-O2 -g' CGO_LDFLAGS='-O2 -g' CXX='g++' GCCGO='gccgo' GO111MODULE='' GOAMD64='v1' GOARCH='amd64' GOAUTH='netrc' GOBIN='' GOCACHE='/home/egon/.cache/go-build' GOCACHEPROG='' GODEBUG='' GOENV='/home/egon/.config/go/env' GOEXE='' GOEXPERIMENT='' GOFIPS140='off' GOFLAGS='' GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2252078435=/tmp/go-build -gno-record-gcc-switches' GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' GOMOD='/home/egon/Code/gist/dotnet-repro/go.mod' GOMODCACHE='/home/egon/go/pkg/mod' GONOPROXY='' GONOSUMDB='' GOOS='linux' GOPATH='/home/egon/go' GOPRIVATE='' GOPROXY='https://proxy.golang.org,direct' GOROOT='/snap/go/11127' GOSUMDB='sum.golang.org' GOTELEMETRY='local' GOTELEMETRYDIR='/home/egon/.config/go/telemetry' GOTMPDIR='' GOTOOLCHAIN='auto' GOTOOLDIR='/snap/go/11127/pkg/tool/linux_amd64' GOVCS='' GOVERSION='go1.26.2' GOWORK='' PKG_CONFIG='pkg-config' ``` ### What did you do? We hit an SIGSEV when running building a Go library with c-shared and then calling it from C#. The issue seems difficult to trigger under normal workflows, but I've managed to narrow the issue down to a reproducer that heavily triggers C# GC and calls Go library in a busy loop. https://gist.github.com/egonelbre/18432be81e1a4e18887e1590ead6f496 AI analysis seems to point that the issue is that Go installs its own sigaltstack and then C# triggers a signal due to it's own GC, which then arrives at a sigaltstack that has been freed. I'm still trying to find a workaround, but I have not found one yet. Installing a custom larger sigaltstack seems to improve things, but it still seems to crash. ### What did you see happen? The failure looks like ``` [dotnet-repro] mode=signal workers=32 iters=1000000 interval=50µs gc=True pid=4300 timeout: the monitored command dumped core ./run.sh: line 35: 4299 Segmentation fault timeout 60 env LD_LIBRARY_PATH=. DOTNET_CLI_HOME=/tmp "$DOTNET_BIN" exit=139 === SIGSEGV on attempt 1 — reproduced ``` ### What did you expect to see? No SIGSEGV. Alternatively, if there's a workaround, it would be nice to have some documentation on how to correctly set it up.