You could actually make a stress test inside a main_test.go with a benchmark for example, run that locally and see.
It works over here btw. package main_test import ( "net/http" "net/http/httptest" "testing" "github.com/gorilla/mux" "github.com/stretchr/testify/assert" ) func pingServer(w http.ResponseWriter, r *http.Request) { w.Write([]byte("pong")) } func Router() *mux.Router { router := mux.NewRouter() router.HandleFunc("/ping", pingServer).Methods("GET") return router } func Test_Ping(t *testing.T) { r, _ := http.NewRequest("GET", "/ping", nil) w := httptest.NewRecorder() Router().ServeHTTP(w, r) assert.Equal(t, 200, w.Code, "OK response is expected") } func Benchmark_Ping(b *testing.B) { r, _ := http.NewRequest("GET", "/ping", nil) w := httptest.NewRecorder() b.ResetTimer() for i := 0; i < b.N; i++ { // use b.N for looping Router().ServeHTTP(w, r) assert.Equal(b, 200, w.Code, "OK response is expected") } } Op vr 10 feb. 2023 om 00:47 schreef James Dornan <jamesdor...@gmail.com>: > I did, with the same results. > > I've attached stack trace from docker logs and the files to recreate this > issue, Dockerfile and main.go. > > Steps to recreate > docker build -t pingtest . > > docker run -p 8001:80 pingtest > > ab -c 500 -n 50000 http://localhost:8001/ping > > The result for my, from ab, was this. > ab -c 500 -n 50000 http://10.1.1.101:8001/ping > > ─╯ > This is ApacheBench, Version 2.3 <$Revision: 1879490 $> > Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ > Licensed to The Apache Software Foundation, http://www.apache.org/ > > Benchmarking 10.1.1.101 (be patient) > > Test aborted after 10 failures > > apr_socket_connect(): Connection reset by peer (104) > Total of 366 requests completed > > On Thursday, February 9, 2023 at 3:02:08 AM UTC-5 Marcello H wrote: > >> I would trim down the problem, by making a very small program that gets >> the XML file from a local disk and then just do the XSLT on it. >> That would give you less environment to oversee and debug. >> Perhaps then, make the xml as small as possible. >> Also mention which libs you use or make a playground version of the >> problem, so people might be able to understand more about the problem. >> >> Op donderdag 9 februari 2023 om 00:03:03 UTC+1 schreef James Dornan: >> >>> I have a go web service that acts as a proxy that gets XML documents >>> from a remote system and processes them through XSLT, returning the result, >>> if any. I have tried a number of options over the last few days and cannot >>> seem to nail down the cause. >>> >>> Does anyone know how to address this or debug the issue? Thanks. >>> >>> Version 1.20 (on Alpine Linux 3.17) >>> >>> Build statement >>> >>> go build \ >>> -tags musl \ >>> -ldflags '-extldflags "-static -lz -llzma -lgcrypt -lgpg-error"' \ >>> -gcflags=all="-wb=false -d=checkptr" \ >>> -a main.go >>> >>> runtime: marked free object in span 0x7f58c3422308, elemsize=96 >>> freeindex=3 (bad use of unsafe.Pointer? try -d=checkptr) >>> 0xc000398000 alloc marked >>> 0xc000398060 alloc marked >>> 0xc0003980c0 alloc marked >>> 0xc000398120 free unmarked >>> 0xc000398180 free unmarked >>> 0xc0003981e0 free unmarked >>> 0xc000398240 alloc marked >>> 0xc0003982a0 alloc marked >>> 0xc000398300 free unmarked >>> 0xc000398360 alloc marked >>> 0xc0003983c0 alloc marked >>> 0xc000398420 alloc marked >>> 0xc000398480 free unmarked >>> 0xc0003984e0 free unmarked >>> 0xc000398540 free unmarked >>> 0xc0003985a0 free unmarked >>> 0xc000398600 free unmarked >>> 0xc000398660 free unmarked >>> 0xc0003986c0 free unmarked >>> 0xc000398720 free unmarked >>> 0xc000398780 free unmarked >>> 0xc0003987e0 alloc marked >>> 0xc000398840 alloc marked >>> 0xc0003988a0 free unmarked >>> 0xc000398900 free unmarked >>> 0xc000398960 free unmarked >>> 0xc0003989c0 free unmarked >>> 0xc000398a20 free unmarked >>> 0xc000398a80 free unmarked >>> 0xc000398ae0 free unmarked >>> 0xc000398b40 free unmarked >>> 0xc000398ba0 free unmarked >>> 0xc000398c00 free unmarked >>> 0xc000398c60 free unmarked >>> 0xc000398cc0 free unmarked >>> 0xc000398d20 free unmarked >>> 0xc000398d80 free unmarked >>> 0xc000398de0 free unmarked >>> 0xc000398e40 free unmarked >>> 0xc000398ea0 free unmarked >>> 0xc000398f00 alloc marked >>> 0xc000398f60 free unmarked >>> 0xc000398fc0 alloc marked >>> 0xc000399020 alloc marked >>> 0xc000399080 free unmarked >>> 0xc0003990e0 free unmarked >>> 0xc000399140 alloc marked >>> 0xc0003991a0 alloc marked >>> 0xc000399200 alloc marked >>> 0xc000399260 free unmarked >>> 0xc0003992c0 free unmarked >>> 0xc000399320 free unmarked >>> 0xc000399380 free unmarked >>> 0xc0003993e0 free unmarked >>> 0xc000399440 free unmarked >>> 0xc0003994a0 free unmarked >>> 0xc000399500 free unmarked >>> 0xc000399560 free unmarked >>> 0xc0003995c0 free unmarked >>> 0xc000399620 alloc marked >>> 0xc000399680 free unmarked >>> 0xc0003996e0 free marked zombie >>> 0x000000c0003996e0: 0x000000c000104b60 0x0000000000000000 >>> 0x000000c0003996f0: 0x0000000000000000 0x0000000000000000 >>> 0x000000c000399700: 0x0000000000000000 0x0000000000000000 >>> 0x000000c000399710: 0x0000010000000000 0x0000000000000000 >>> 0x000000c000399720: 0x0000000000000000 0x0000000000000000 >>> 0x000000c000399730: 0x0000000000000000 0x0000000000000000 >>> 0xc000399740 free unmarked >>> 0xc0003997a0 alloc marked >>> 0xc000399800 alloc marked >>> 0xc000399860 free unmarked >>> 0xc0003998c0 free unmarked >>> 0xc000399920 free unmarked >>> 0xc000399980 free unmarked >>> 0xc0003999e0 free unmarked >>> 0xc000399a40 free unmarked >>> 0xc000399aa0 free unmarked >>> 0xc000399b00 free unmarked >>> 0xc000399b60 free unmarked >>> 0xc000399bc0 free unmarked >>> 0xc000399c20 free unmarked >>> 0xc000399c80 free unmarked >>> 0xc000399ce0 free unmarked >>> 0xc000399d40 free unmarked >>> 0xc000399da0 free unmarked >>> 0xc000399e00 free unmarked >>> 0xc000399e60 free unmarked >>> 0xc000399ec0 free unmarked >>> 0xc000399f20 free unmarked >>> 0xc000399f80 free unmarked >>> fatal error: found pointer to free object >>> >>> runtime stack: >>> runtime.throw({0x84f468?, 0xc000399740?}) >>> /usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7f589bc43780 >>> sp=0x7f589bc43750 pc=0x4357fd >>> runtime.(*mspan).reportZombies(0x7f58c3422308) >>> /usr/local/go/src/runtime/mgcsweep.go:846 +0x2e5 >>> fp=0x7f589bc43800 sp=0x7f589bc43780 pc=0x424d25 >>> runtime.(*sweepLocked).sweep(0x7f589bc43928?, 0x0) >>> /usr/local/go/src/runtime/mgcsweep.go:634 +0x9f6 >>> fp=0x7f589bc438f0 sp=0x7f589bc43800 pc=0x424696 >>> runtime.(*mcentral).uncacheSpan(0x7f589bdf73b8?, 0xc00029a000?) >>> /usr/local/go/src/runtime/mcentral.go:228 +0xa5 >>> fp=0x7f589bc43918 sp=0x7f589bc438f0 pc=0x416da5 >>> runtime.(*mcache).releaseAll(0x7f58c34173c8) >>> /usr/local/go/src/runtime/mcache.go:291 +0x145 fp=0x7f589bc43980 >>> sp=0x7f589bc43918 pc=0x416805 >>> runtime.(*mcache).prepareForSweep(0x7f58c34173c8) >>> /usr/local/go/src/runtime/mcache.go:328 +0x39 fp=0x7f589bc439a8 >>> sp=0x7f589bc43980 pc=0x4168f9 >>> runtime.gcMarkTermination.func4.1(0x7f589bc43a30?) >>> /usr/local/go/src/runtime/mgc.go:1110 +0x1d fp=0x7f589bc439c0 >>> sp=0x7f589bc439a8 pc=0x46181d >>> runtime.forEachP(0x8798d8) >>> /usr/local/go/src/runtime/proc.go:1685 +0xfd fp=0x7f589bc43a28 >>> sp=0x7f589bc439c0 pc=0x43afbd >>> runtime.gcMarkTermination.func4() >>> /usr/local/go/src/runtime/mgc.go:1109 +0x25 fp=0x7f589bc43a40 >>> sp=0x7f589bc43a28 pc=0x461865 >>> runtime.systemstack() >>> /usr/local/go/src/runtime/asm_amd64.s:496 +0x49 >>> fp=0x7f589bc43a48 sp=0x7f589bc43a40 pc=0x466049 >>> >>> goroutine 61 [running]: >>> runtime.systemstack_switch() >>> /usr/local/go/src/runtime/asm_amd64.s:463 fp=0xc0001b2520 >>> sp=0xc0001b2518 pc=0x465fe0 >>> runtime.gcMarkTermination() >>> /usr/local/go/src/runtime/mgc.go:1108 +0x577 fp=0xc0001b26f0 >>> sp=0xc0001b2520 pc=0x41a0d7 >>> runtime.gcMarkDone() >>> /usr/local/go/src/runtime/mgc.go:918 +0x277 fp=0xc0001b2750 >>> sp=0xc0001b26f0 pc=0x419a57 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1407 +0x305 fp=0xc0001b27e0 >>> sp=0xc0001b2750 pc=0x41ac25 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b27e8 >>> sp=0xc0001b27e0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 1 [IO wait]: >>> runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000161b40 >>> sp=0xc000161b20 pc=0x4384c5 >>> runtime.netpollblock(0x7f589bdf4578?, 0x4040af?, 0x0?) >>> /usr/local/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc000161b78 >>> sp=0xc000161b40 pc=0x431457 >>> internal/poll.runtime_pollWait(0x7f589be66098, 0x72) >>> /usr/local/go/src/runtime/netpoll.go:306 +0x89 fp=0xc000161b98 >>> sp=0xc000161b78 pc=0x462d09 >>> internal/poll.(*pollDesc).wait(0xc000164d80?, 0x4?, 0x0) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 >>> fp=0xc000161bc0 sp=0xc000161b98 pc=0x4ae392 >>> internal/poll.(*pollDesc).waitRead(...) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 >>> internal/poll.(*FD).Accept(0xc000164d80) >>> /usr/local/go/src/internal/poll/fd_unix.go:614 +0x2bd >>> fp=0xc000161c68 sp=0xc000161bc0 pc=0x4afb7d >>> net.(*netFD).accept(0xc000164d80) >>> /usr/local/go/src/net/fd_unix.go:172 +0x35 fp=0xc000161d20 >>> sp=0xc000161c68 pc=0x4e4a75 >>> net.(*TCPListener).accept(0xc00011a408) >>> /usr/local/go/src/net/tcpsock_posix.go:148 +0x25 fp=0xc000161d48 >>> sp=0xc000161d20 pc=0x4f4e45 >>> net.(*TCPListener).Accept(0xc00011a408) >>> /usr/local/go/src/net/tcpsock.go:297 +0x3d fp=0xc000161d78 >>> sp=0xc000161d48 pc=0x4f41bd >>> net/http.(*onceCloseListener).Accept(0xc0003e8090?) >>> <autogenerated>:1 +0x2a fp=0xc000161d90 sp=0xc000161d78 >>> pc=0x652d4a >>> net/http.(*Server).Serve(0xc000198000, {0x8ccc70, 0xc00011a408}) >>> /usr/local/go/src/net/http/server.go:3059 +0x334 fp=0xc000161ec0 >>> sp=0xc000161d90 pc=0x635cb4 >>> net/http.(*Server).ListenAndServe(0xc000198000) >>> /usr/local/go/src/net/http/server.go:2988 +0x7d fp=0xc000161ef0 >>> sp=0xc000161ec0 pc=0x63593d >>> net/http.ListenAndServe(...) >>> /usr/local/go/src/net/http/server.go:3242 >>> main.main() >>> /app/persondoc.go:327 +0x39d fp=0xc000161f80 sp=0xc000161ef0 >>> pc=0x6b099d >>> runtime.main() >>> /usr/local/go/src/runtime/proc.go:250 +0x1f2 fp=0xc000161fe0 >>> sp=0xc000161f80 pc=0x4380d2 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000161fe8 >>> sp=0xc000161fe0 pc=0x468201 >>> >>> goroutine 2 [force gc (idle), 1 minutes]: >>> runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000044fb0 >>> sp=0xc000044f90 pc=0x4384c5 >>> runtime.goparkunlock(...) >>> /usr/local/go/src/runtime/proc.go:387 >>> runtime.forcegchelper() >>> /usr/local/go/src/runtime/proc.go:305 +0x91 fp=0xc000044fe0 >>> sp=0xc000044fb0 pc=0x438331 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000044fe8 >>> sp=0xc000044fe0 pc=0x468201 >>> created by runtime.init.6 >>> /usr/local/go/src/runtime/proc.go:293 +0x25 >>> >>> goroutine 18 [runnable]: >>> runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000040780 >>> sp=0xc000040760 pc=0x4384c5 >>> runtime.goparkunlock(...) >>> /usr/local/go/src/runtime/proc.go:387 >>> runtime.bgsweep(0x0?) >>> /usr/local/go/src/runtime/mgcsweep.go:319 +0xbe fp=0xc0000407c8 >>> sp=0xc000040780 pc=0x42377e >>> runtime.gcenable.func1() >>> /usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000407e0 >>> sp=0xc0000407c8 pc=0x418d86 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000407e8 >>> sp=0xc0000407e0 pc=0x468201 >>> created by runtime.gcenable >>> /usr/local/go/src/runtime/mgc.go:178 +0x52 >>> >>> goroutine 19 [GC scavenge wait]: >>> runtime.gopark(0x56b9b795bc9d?, 0x138421?, 0x0?, 0x0?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000040f70 >>> sp=0xc000040f50 pc=0x4384c5 >>> runtime.goparkunlock(...) >>> /usr/local/go/src/runtime/proc.go:387 >>> runtime.(*scavengerState).park(0xb2df20) >>> /usr/local/go/src/runtime/mgcscavenge.go:400 +0x53 >>> fp=0xc000040fa0 sp=0xc000040f70 pc=0x421693 >>> runtime.bgscavenge(0x0?) >>> /usr/local/go/src/runtime/mgcscavenge.go:633 +0x65 >>> fp=0xc000040fc8 sp=0xc000040fa0 pc=0x421c85 >>> runtime.gcenable.func2() >>> /usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000040fe0 >>> sp=0xc000040fc8 pc=0x418d26 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000040fe8 >>> sp=0xc000040fe0 pc=0x468201 >>> created by runtime.gcenable >>> /usr/local/go/src/runtime/mgc.go:179 +0x76 >>> >>> goroutine 34 [finalizer wait]: >>> runtime.gopark(0x0?, 0xc00011a870?, 0x0?, 0xc0?, 0x1000000010?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000044628 >>> sp=0xc000044608 pc=0x4384c5 >>> runtime.runfinq() >>> /usr/local/go/src/runtime/mfinal.go:193 +0xe7 fp=0xc0000447e0 >>> sp=0xc000044628 pc=0x417ee7 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000447e8 >>> sp=0xc0000447e0 pc=0x468201 >>> created by runtime.createfing >>> /usr/local/go/src/runtime/mfinal.go:163 +0x45 >>> >>> goroutine 1120 [select]: >>> runtime.gopark(0xc00007bf90?, 0x2?, 0x0?, 0x40?, 0xc00007bf34?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc00007bdc0 >>> sp=0xc00007bda0 pc=0x4384c5 >>> runtime.selectgo(0xc00007bf90, 0xc00007bf30, 0xc0001d6880?, 0x0, 0x0?, >>> 0x1) >>> /usr/local/go/src/runtime/select.go:327 +0x58e fp=0xc00007bef0 >>> sp=0xc00007bdc0 pc=0x447c6e >>> net/http.(*persistConn).writeLoop(0xc000430000) >>> /usr/local/go/src/net/http/transport.go:2410 +0xf2 >>> fp=0xc00007bfc8 sp=0xc00007bef0 pc=0x64a1b2 >>> net/http.(*Transport).dialConn.func6() >>> /usr/local/go/src/net/http/transport.go:1766 +0x26 >>> fp=0xc00007bfe0 sp=0xc00007bfc8 pc=0x646f06 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00007bfe8 >>> sp=0xc00007bfe0 pc=0x468201 >>> created by net/http.(*Transport).dialConn >>> /usr/local/go/src/net/http/transport.go:1766 +0x1385 >>> >>> goroutine 66 [GC worker (idle), 1 minutes]: >>> runtime.gopark(0x47c2b7?, 0xc000197550?, 0x60?, 0x2e?, 0xc0001b07b8?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001b0750 >>> sp=0xc0001b0730 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0001b07e0 >>> sp=0xc0001b0750 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b07e8 >>> sp=0xc0001b07e0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 67 [GC worker (idle)]: >>> runtime.gopark(0x56b9b720a2ab?, 0x3?, 0x98?, 0x2e?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001b3750 >>> sp=0xc0001b3730 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0001b37e0 >>> sp=0xc0001b3750 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b37e8 >>> sp=0xc0001b37e0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 62 [GC worker (idle)]: >>> runtime.gopark(0x56bac65159b5?, 0x3?, 0x20?, 0x3?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000041f50 >>> sp=0xc000041f30 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc000041fe0 >>> sp=0xc000041f50 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000041fe8 >>> sp=0xc000041fe0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 49 [GC worker (idle), 1 minutes]: >>> runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001b2f50 >>> sp=0xc0001b2f30 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0001b2fe0 >>> sp=0xc0001b2f50 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b2fe8 >>> sp=0xc0001b2fe0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 1119 [IO wait]: >>> runtime.gopark(0x0?, 0xb?, 0x0?, 0x0?, 0x8?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000079628 >>> sp=0xc000079608 pc=0x4384c5 >>> runtime.netpollblock(0x4989a5?, 0x4040af?, 0x0?) >>> /usr/local/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc000079660 >>> sp=0xc000079628 pc=0x431457 >>> internal/poll.runtime_pollWait(0x7f589be65dc8, 0x72) >>> /usr/local/go/src/runtime/netpoll.go:306 +0x89 fp=0xc000079680 >>> sp=0xc000079660 pc=0x462d09 >>> internal/poll.(*pollDesc).wait(0xc000165600?, 0xc0000b9300?, 0x0) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 >>> fp=0xc0000796a8 sp=0xc000079680 pc=0x4ae392 >>> internal/poll.(*pollDesc).waitRead(...) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 >>> internal/poll.(*FD).Read(0xc000165600, {0xc0000b9300, 0x1980, 0x1980}) >>> /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 >>> fp=0xc000079740 sp=0xc0000796a8 pc=0x4aef79 >>> net.(*netFD).Read(0xc000165600, {0xc0000b9300?, 0xc0f11d716dafd30f?, >>> 0x1e27bf1e53?}) >>> /usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc000079788 >>> sp=0xc000079740 pc=0x4e39a9 >>> net.(*conn).Read(0xc000120280, {0xc0000b9300?, 0xc0f11d716dafd30f?, >>> 0x1e27bf1e53?}) >>> /usr/local/go/src/net/net.go:183 +0x45 fp=0xc0000797d0 >>> sp=0xc000079788 pc=0x4edfa5 >>> net.(*TCPConn).Read(0xc000079868?, {0xc0000b9300?, 0xc00011ab70?, 0x18?}) >>> <autogenerated>:1 +0x29 fp=0xc000079800 sp=0xc0000797d0 >>> pc=0x4f8d49 >>> crypto/tls.(*atLeastReader).Read(0xc00011ab70, {0xc0000b9300?, >>> 0xc00011ab70?, 0xc000082ea0?}) >>> /usr/local/go/src/crypto/tls/conn.go:788 +0x3d fp=0xc000079848 >>> sp=0xc000079800 pc=0x5a84fd >>> bytes.(*Buffer).ReadFrom(0xc0002b2d10, {0x8ca360, 0xc00011ab70}) >>> /usr/local/go/src/bytes/buffer.go:202 +0x98 fp=0xc0000798a0 >>> sp=0xc000079848 pc=0x4c28f8 >>> crypto/tls.(*Conn).readFromUntil(0xc0002b2a80, {0x8ca6c0?, >>> 0xc000120280}, 0x89e1759192b6b0e2?) >>> /usr/local/go/src/crypto/tls/conn.go:810 +0xc9 fp=0xc0000798e0 >>> sp=0xc0000798a0 pc=0x5a86c9 >>> crypto/tls.(*Conn).readRecordOrCCS(0xc0002b2a80, 0x0) >>> /usr/local/go/src/crypto/tls/conn.go:617 +0x1c5 fp=0xc000079c20 >>> sp=0xc0000798e0 pc=0x5a6805 >>> crypto/tls.(*Conn).readRecord(...) >>> /usr/local/go/src/crypto/tls/conn.go:583 >>> crypto/tls.(*Conn).Read(0xc0002b2a80, {0xc00024e000, 0x1000, 0x0?}) >>> /usr/local/go/src/crypto/tls/conn.go:1288 +0x16f fp=0xc000079c90 >>> sp=0xc000079c20 pc=0x5ab30f >>> net/http.(*persistConn).Read(0xc000430000, {0xc00024e000?, 0x406465?, >>> 0x60?}) >>> /usr/local/go/src/net/http/transport.go:1943 +0x4e >>> fp=0xc000079cf0 sp=0xc000079c90 pc=0x64790e >>> bufio.(*Reader).fill(0xc000398060) >>> /usr/local/go/src/bufio/bufio.go:106 +0xff fp=0xc000079d28 >>> sp=0xc000079cf0 pc=0x5ce1df >>> bufio.(*Reader).Peek(0xc000398060, 0x1) >>> /usr/local/go/src/bufio/bufio.go:144 +0x5d fp=0xc000079d48 >>> sp=0xc000079d28 pc=0x5ce2fd >>> net/http.(*persistConn).readLoop(0xc000430000) >>> /usr/local/go/src/net/http/transport.go:2107 +0x1ac >>> fp=0xc000079fc8 sp=0xc000079d48 pc=0x64870c >>> net/http.(*Transport).dialConn.func5() >>> /usr/local/go/src/net/http/transport.go:1765 +0x26 >>> fp=0xc000079fe0 sp=0xc000079fc8 pc=0x646f66 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000079fe8 >>> sp=0xc000079fe0 pc=0x468201 >>> created by net/http.(*Transport).dialConn >>> /usr/local/go/src/net/http/transport.go:1765 +0x1345 >>> >>> goroutine 8 [GC worker (idle)]: >>> runtime.gopark(0x56b92c578e67?, 0x64a3c0?, 0x40?, 0x11?, 0x415701?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001b1f50 >>> sp=0xc0001b1f30 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0001b1fe0 >>> sp=0xc0001b1f50 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b1fe8 >>> sp=0xc0001b1fe0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 9 [GC worker (idle)]: >>> runtime.gopark(0x56bac6514ba5?, 0x1?, 0xaa?, 0xe5?, 0x1?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc000043750 >>> sp=0xc000043730 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0000437e0 >>> sp=0xc000043750 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000437e8 >>> sp=0xc0000437e0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 82 [GC worker (idle)]: >>> runtime.gopark(0x56bac651511d?, 0x3?, 0x68?, 0x10?, 0x0?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001ac750 >>> sp=0xc0001ac730 pc=0x4384c5 >>> runtime.gcBgMarkWorker() >>> /usr/local/go/src/runtime/mgc.go:1275 +0xac fp=0xc0001ac7e0 >>> sp=0xc0001ac750 pc=0x41a9cc >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001ac7e8 >>> sp=0xc0001ac7e0 pc=0x468201 >>> created by runtime.gcBgMarkStartWorkers >>> /usr/local/go/src/runtime/mgc.go:1199 +0x25 >>> >>> goroutine 1094 [IO wait]: >>> runtime.gopark(0x7f589c018548?, 0xb?, 0x0?, 0x0?, 0x7?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0001b15a0 >>> sp=0xc0001b1580 pc=0x4384c5 >>> runtime.netpollblock(0x4989a5?, 0x4040af?, 0x0?) >>> /usr/local/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc0001b15d8 >>> sp=0xc0001b15a0 pc=0x431457 >>> internal/poll.runtime_pollWait(0x7f589be65fa8, 0x72) >>> /usr/local/go/src/runtime/netpoll.go:306 +0x89 fp=0xc0001b15f8 >>> sp=0xc0001b15d8 pc=0x462d09 >>> internal/poll.(*pollDesc).wait(0xc0003ea080?, 0xc0001dc6a1?, 0x0) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 >>> fp=0xc0001b1620 sp=0xc0001b15f8 pc=0x4ae392 >>> internal/poll.(*pollDesc).waitRead(...) >>> /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 >>> internal/poll.(*FD).Read(0xc0003ea080, {0xc0001dc6a1, 0x1, 0x1}) >>> /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 >>> fp=0xc0001b16b8 sp=0xc0001b1620 pc=0x4aef79 >>> net.(*netFD).Read(0xc0003ea080, {0xc0001dc6a1?, 0x7eb540?, >>> 0xc0001b1748?}) >>> /usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc0001b1700 >>> sp=0xc0001b16b8 pc=0x4e39a9 >>> net.(*conn).Read(0xc0000140b8, {0xc0001dc6a1?, 0xc0001d6310?, >>> 0xc00007e320?}) >>> /usr/local/go/src/net/net.go:183 +0x45 fp=0xc0001b1748 >>> sp=0xc0001b1700 pc=0x4edfa5 >>> net.(*TCPConn).Read(0xc00041cfc0?, {0xc0001dc6a1?, 0xc00007e320?, >>> 0xc00009d8c0?}) >>> <autogenerated>:1 +0x29 fp=0xc0001b1778 sp=0xc0001b1748 >>> pc=0x4f8d49 >>> net/http.(*connReader).backgroundRead(0xc0001dc690) >>> /usr/local/go/src/net/http/server.go:674 +0x3f fp=0xc0001b17c8 >>> sp=0xc0001b1778 pc=0x62c0bf >>> net/http.(*connReader).startBackgroundRead.func2() >>> /usr/local/go/src/net/http/server.go:670 +0x26 fp=0xc0001b17e0 >>> sp=0xc0001b17c8 pc=0x62bfe6 >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001b17e8 >>> sp=0xc0001b17e0 pc=0x468201 >>> created by net/http.(*connReader).startBackgroundRead >>> /usr/local/go/src/net/http/server.go:670 +0xc5 >>> >>> goroutine 1093 [select]: >>> runtime.gopark(0xc0000b2f00?, 0x6?, 0x25?, 0xd2?, 0xc0000b2d14?) >>> /usr/local/go/src/runtime/proc.go:381 +0xa5 fp=0xc0000b2b88 >>> sp=0xc0000b2b68 pc=0x4384c5 >>> runtime.selectgo(0xc0000b2f00, 0xc0000b2d08, 0xc000016f80?, 0x0, >>> 0xc0000b2dc0?, 0x1) >>> /usr/local/go/src/runtime/select.go:327 +0x58e fp=0xc0000b2cb8 >>> sp=0xc0000b2b88 pc=0x447c6e >>> net/http.(*persistConn).roundTrip(0xc000430000, 0xc000197700) >>> /usr/local/go/src/net/http/transport.go:2638 +0x8d4 >>> fp=0xc0000b2f70 sp=0xc0000b2cb8 pc=0x64af94 >>> net/http.(*Transport).roundTrip(0xc000155900, 0xc0002b6700) >>> /usr/local/go/src/net/http/transport.go:603 +0x77f >>> fp=0xc0000b31a8 sp=0xc0000b2f70 pc=0x6401df >>> net/http.(*Transport).RoundTrip(0xc0002b6700?, 0x8ca7a0?) >>> /usr/local/go/src/net/http/roundtrip.go:17 +0x19 fp=0xc0000b31c8 >>> sp=0xc0000b31a8 pc=0x62ad39 >>> net/http.send(0xc0002b6600, {0x8ca7a0, 0xc000155900}, {0x8?, 0x831780?, >>> 0xb2dea0?}) >>> /usr/local/go/src/net/http/client.go:252 +0x4fe fp=0xc0000b33c0 >>> sp=0xc0000b31c8 pc=0x5f6b7e >>> net/http.(*Client).send(0xc0001dc8d0, 0xc0002b6600, {0xc0000b3470?, >>> 0x57836a?, 0xb2dea0?}) >>> /usr/local/go/src/net/http/client.go:176 +0x9b fp=0xc0000b3438 >>> sp=0xc0000b33c0 pc=0x5f64fb >>> net/http.(*Client).do(0xc0001dc8d0, 0xc0002b6600) >>> /usr/local/go/src/net/http/client.go:716 +0x7c6 fp=0xc0000b3640 >>> sp=0xc0000b3438 pc=0x5f8326 >>> net/http.(*Client).Do(...) >>> /usr/local/go/src/net/http/client.go:582 >>> main.getXML({0xc0002d4290, 0x20}) >>> /app/persondoc.go:230 +0x27d fp=0xc0000b3740 sp=0xc0000b3640 >>> pc=0x6af71d >>> main.docHandler({0x7f589be67a38, 0xc0001976c0}, 0xc0000623e0?) >>> /app/persondoc.go:104 +0x129 fp=0xc0000b3818 sp=0xc0000b3740 >>> pc=0x6aeb29 >>> net/http.HandlerFunc.ServeHTTP(0x7e3220?, {0x7f589be67a38?, >>> 0xc0001976c0?}, 0xc0002d4284?) >>> /usr/local/go/src/net/http/server.go:2122 +0x2f fp=0xc0000b3840 >>> sp=0xc0000b3818 pc=0x63304f >>> github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc00011e360, >>> {0x7f589be67a38, 0xc0001976c0}, 0xc0002b6500) >>> /go/pkg/mod/github.com/go-chi/chi/v...@v5.0.8/mux.go:444 >>> <http://github.com/go-chi/chi/v5@v5.0.8/mux.go:444> +0x1fe >>> fp=0xc0000b3890 sp=0xc0000b3840 pc=0x6a43fe >>> github.com/go-chi/chi/v5.(*Mux).routeHTTP-fm({0x7f589be67a38 >>> <http://github.com/go-chi/chi/v5.(*Mux).routeHTTP-fm(%7B0x7f589be67a38>?, >>> 0xc0001976c0?}, 0xdf8475801?) >>> <autogenerated>:1 +0x3c fp=0xc0000b38c0 sp=0xc0000b3890 >>> pc=0x6a7b7c >>> net/http.HandlerFunc.ServeHTTP(0x8cd138?, {0x7f589be67a38?, >>> 0xc0001976c0?}, 0xc0001e8800?) >>> /usr/local/go/src/net/http/server.go:2122 +0x2f fp=0xc0000b38e8 >>> sp=0xc0000b38c0 pc=0x63304f >>> github.com/go-chi/chi/v5/middleware.Timeout.func1.1({0x7f589be67a38 >>> <http://github.com/go-chi/chi/v5/middleware.Timeout.func1.1(%7B0x7f589be67a38>, >>> 0xc0001976c0}, 0xc0002b6400) >>> /go/pkg/mod/ >>> github.com/go-chi/chi/v...@v5.0.8/middleware/timeout.go:45 >>> <http://github.com/go-chi/chi/v5@v5.0.8/middleware/timeout.go:45> >>> +0x179 fp=0xc0000b3978 sp=0xc0000b38e8 pc=0x6aa919 >>> net/http.HandlerFunc.ServeHTTP(0xc0002b6300?, {0x7f589be67a38?, >>> 0xc0001976c0?}, 0x30?) >>> /usr/local/go/src/net/http/server.go:2122 +0x2f fp=0xc0000b39a0 >>> sp=0xc0000b3978 pc=0x63304f >>> github.com/go-chi/chi/v5/middleware.RequestLogger.func1.1({0x8cce50 >>> <http://github.com/go-chi/chi/v5/middleware.RequestLogger.func1.1(%7B0x8cce50>, >>> 0xc00042e000}, 0xc0002b6300) >>> /go/pkg/mod/ >>> github.com/go-chi/chi/v...@v5.0.8/middleware/logger.go:54 >>> <http://github.com/go-chi/chi/v5@v5.0.8/middleware/logger.go:54> +0x17d >>> fp=0xc0000b3a58 sp=0xc0000b39a0 pc=0x6a891d >>> net/http.HandlerFunc.ServeHTTP(0x8cd090?, {0x8cce50?, 0xc00042e000?}, >>> 0xaebf40?) >>> /usr/local/go/src/net/http/server.go:2122 +0x2f fp=0xc0000b3a80 >>> sp=0xc0000b3a58 pc=0x63304f >>> github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc00011e360, {0x8cce50, >>> 0xc00042e000}, 0xc0002b6200) >>> /go/pkg/mod/github.com/go-chi/chi/v...@v5.0.8/mux.go:90 >>> <http://github.com/go-chi/chi/v5@v5.0.8/mux.go:90> +0x20d >>> fp=0xc0000b3ad8 sp=0xc0000b3a80 pc=0x6a344d >>> net/http.serverHandler.ServeHTTP({0xc0001dc690?}, {0x8cce50, >>> 0xc00042e000}, 0xc0002b6200) >>> /usr/local/go/src/net/http/server.go:2936 +0x2a9 fp=0xc0000b3b80 >>> sp=0xc0000b3ad8 pc=0x6357a9 >>> net/http.(*conn).serve(0xc0003e8090, {0x8cd138, 0xc0001137a0}) >>> /usr/local/go/src/net/http/server.go:1995 +0x4d9 fp=0xc0000b3fb8 >>> sp=0xc0000b3b80 pc=0x631e79 >>> net/http.(*Server).Serve.func3() >>> /usr/local/go/src/net/http/server.go:3089 +0x2e fp=0xc0000b3fe0 >>> sp=0xc0000b3fb8 pc=0x63602e >>> runtime.goexit() >>> /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000b3fe8 >>> sp=0xc0000b3fe0 pc=0x468201 >>> created by net/http.(*Server).Serve >>> /usr/local/go/src/net/http/server.go:3089 +0x526 >> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "golang-nuts" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/golang-nuts/QG0pNJAxQUA/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/e6028f9b-b9d7-48a3-a001-11b323dda2c6n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/e6028f9b-b9d7-48a3-a001-11b323dda2c6n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CADBSaR2TPzx%3DFN2KUm8j8Z%2Bd%2BtHM4a9Zt9-2tWsneRqV3iZF6A%40mail.gmail.com.