ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.09k stars 3.01k forks source link

ipfs dht provide: Kubo daemon crash with v0.24.0 / v0.23.0 #10217

Open cachalots opened 10 months ago

cachalots commented 10 months ago

Checklist

Installation method

built from source

Version

Kubo version: 0.24.0-e70db65
Repo version: 15
System version: amd64/linux
Golang version: go1.21.3

Config

No response

Description

When I frequently call the provide, it will cause Kubo to crash. *rpc.HttpApi doesn't have Routing().Provide(), so I used Dht().Provide().

v0.24.0
unexpected fault address 0xde728dc
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x1 addr=0xde728dc pc=0x1af7f1a]

goroutine 1366540992 [running]:
runtime.throw({0x2a658de?, 0x2ff62d0?})
    runtime/panic.go:1077 +0x5c fp=0xc00b07bbc0 sp=0xc00b07bb90 pc=0xf7f85c
runtime.sigpanic()
    runtime/signal_unix.go:875 +0x285 fp=0xc00b07bc20 sp=0xc00b07bbc0 pc=0xf97d05
github.com/libp2p/go-libp2p/p2p/transport/quic.(*listener).Addr(...)
    github.com/libp2p/go-libp2p@v0.32.1/p2p/transport/quic/listener.go:146
github.com/libp2p/go-libp2p/p2p/transport/quic.(*virtualListener).Addr(0x10fb79c?)
    :1 +0x1a fp=0xc00b07bc38 sp=0xc00b07bc20 pc=0x1af7f1a
github.com/libp2p/go-libp2p/core/peer.AddrInfo.MarshalJSON({{0xc1817ccde0, 0x26}, {0xc187a7aa50, 0xe, 0x16}})
    github.com/libp2p/go-libp2p@v0.32.1/core/peer/addrinfo_serde.go:22 +0x106 fp=0xc00b07bcd0 sp=0xc00b07bc38 pc=0x13e3c86
github.com/libp2p/go-libp2p/core/peer.(*AddrInfo).MarshalJSON(0x27dae00?)
    :1 +0x54 fp=0xc00b07bd30 sp=0xc00b07bcd0 pc=0x13e6814
encoding/json.marshalerEncoder(0xc27c4a3040, {0x27dae00?, 0xc0c14bc8c0?, 0xc00b07be60?}, {0x85?, 0x29?})
    encoding/json/encode.go:442 +0xd2 fp=0xc00b07bde0 sp=0xc00b07bd30 pc=0x10f4352
encoding/json.arrayEncoder.encode({0xf521cd?}, 0xc27c4a3040, {0x25d5f80?, 0xc1b151d668?, 0x2634860?}, {0x67?, 0x1c?})
    encoding/json/encode.go:849 +0xd6 fp=0xc00b07be58 sp=0xc00b07bde0 pc=0x10f7d16
encoding/json.arrayEncoder.encode-fm(0xc00b07bf00?, {0x25d5f80?, 0xc1b151d668?, 0x30?}, {0xf0?, 0xbe?})
    :1 +0x3f fp=0xc00b07be98 sp=0xc00b07be58 pc=0x110435f
encoding/json.sliceEncoder.encode({0xc04286ea20?}, 0xc27c4a3040, {0x25d5f80?, 0xc1b151d668?, 0x25d5f80?}, {0x78?, 0x54?})
    encoding/json/encode.go:822 +0x30f fp=0xc00b07bfb8 sp=0xc00b07be98 pc=0x10f784f
encoding/json.sliceEncoder.encode-fm(0x25d5f80?, {0x25d5f80?, 0xc1b151d668?, 0xc35d2c0090?}, {0xb8?, 0xc1?})
    :1 +0x3f fp=0xc00b07bff8 sp=0xc00b07bfb8 pc=0x110441f
encoding/json.(*encodeState).reflectValue(0x269fc60?, {0x25d5f80?, 0xc1b151d668?, 0xa?}, {0xb8?, 0xc1?})
    encoding/json/encode.go:323 +0x73 fp=0xc00b07c058 sp=0xc00b07bff8 pc=0x10f3933
encoding/json.interfaceEncoder(0xc27c4a3040, {0x269fc60?, 0xc04286ec60?, 0xc035e3d600?}, {0xa1?, 0x15?})
    encoding/json/encode.go:660 +0xba fp=0xc00b07c0a0 sp=0xc00b07c058 pc=0x10f605a
encoding/json.mapEncoder.encode({0xc00b07c2e0?}, 0xc27c4a3040, {0x26ec480?, 0xc35d2c0060?, 0x26ec480?}, {0x0?, 0x0?})
    encoding/json/encode.go:759 +0x566 fp=0xc00b07c2c8 sp=0xc00b07c0a0 pc=0x10f6b86
encoding/json.mapEncoder.encode-fm(0x26ec480?, {0x26ec480?, 0xc35d2c0060?, 0x1?}, {0xe0?, 0xc3?})
    :1 +0x3f fp=0xc00b07c308 sp=0xc00b07c2c8 pc=0x11044df
encoding/json.(*encodeState).reflectValue(0xc00b07c3a0?, {0x26ec480?, 0xc35d2c0060?, 0xc00b07c430?}, {0x60?, 0x69?})
    encoding/json/encode.go:323 +0x73 fp=0xc00b07c368 sp=0xc00b07c308 pc=0x10f3933
encoding/json.(*encodeState).marshal(0x288a9e0?, {0x26ec480?, 0xc35d2c0060?}, {0xb8?, 0xa5?})
    encoding/json/encode.go:295 +0xb9 fp=0xc00b07c3e0 sp=0xc00b07c368 pc=0x10f3479
encoding/json.Marshal({0x26ec480, 0xc35d2c0060})
    encoding/json/encode.go:162 +0xd0 fp=0xc00b07c4a0 sp=0xc00b07c3e0 pc=0x10f2d70
github.com/libp2p/go-libp2p/core/routing.(*QueryEvent).MarshalJSON(0xc176286d00)
    github.com/libp2p/go-libp2p@v0.32.1/core/routing/query_serde.go:10 +0x1ec fp=0xc00b07c500 sp=0xc00b07c4a0 pc=0x15b038c
encoding/json.marshalerEncoder(0xc0feadcbc0, {0x27401c0?, 0xc176286d00?, 0xc21a64e240?}, {0x0?, 0x0?})
    encoding/json/encode.go:442 +0xd2 fp=0xc00b07c5b0 sp=0xc00b07c500 pc=0x10f4352
encoding/json.(*encodeState).reflectValue(0xc00b07c648?, {0x27401c0?, 0xc176286d00?, 0xc0d20d6460?}, {0x60?, 0x69?})
    encoding/json/encode.go:323 +0x73 fp=0xc00b07c610 sp=0xc00b07c5b0 pc=0x10f3933
encoding/json.(*encodeState).marshal(0xc00b07c6a0?, {0x27401c0?, 0xc176286d00?}, {0xb8?, 0xc6?})
    encoding/json/encode.go:295 +0xb9 fp=0xc00b07c688 sp=0xc00b07c610 pc=0x10f3479
encoding/json.(*Encoder).Encode(0xc2e81ebaa0, {0x27401c0, 0xc176286d00})
    encoding/json/stream.go:209 +0xdf fp=0xc00b07c730 sp=0xc00b07c688 pc=0x110015f
github.com/ipfs/go-ipfs-cmds/http.(*responseEmitter).Emit(0xc2ffb51ab0, {0x27401c0, 0xc176286d00})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/responseemitter.go:135 +0x382 fp=0xc00b07c820 sp=0xc00b07c730 pc=0x2429da2
github.com/ipfs/kubo/core/commands.glob..func140(0xc2ffb51a40, {0x7f7e38773468, 0xc2ffb51ab0}, {0x2855020?, 0xc004bca1e0?})
    github.com/ipfs/kubo/core/commands/routing.go:213 +0x4bb fp=0xc00b07c8f8 sp=0xc00b07c820 pc=0x240159b
github.com/ipfs/go-ipfs-cmds.(*Command).call(0xc00b07c9e0?, 0xc2ffb51a40, {0x7f7e38773468, 0xc2ffb51ab0}, {0x2855020, 0xc004bca1e0})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/command.go:189 +0x18f fp=0xc00b07c9b8 sp=0xc00b07c8f8 pc=0x210cd4f
github.com/ipfs/go-ipfs-cmds.(*Command).Call(0xc004bca1e0?, 0xc2ffb51a40?, {0x7f7e38773468, 0xc2ffb51ab0}, {0x2855020?, 0xc004bca1e0?})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/command.go:159 +0x3f fp=0xc00b07ca58 sp=0xc00b07c9b8 pc=0x210ca1f
github.com/ipfs/go-ipfs-cmds/http.(*handler).ServeHTTP(0xc004afe940, {0x2ff8770, 0xc2e81eba40}, 0xc14843bd00)
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/handler.go:192 +0xa4b fp=0xc00b07ccd8 sp=0xc00b07ca58 pc=0x24273ab
github.com/ipfs/go-ipfs-cmds/http.prefixHandler.ServeHTTP({{0x2a8d30a?, 0x30?}, {0x2fe5340?, 0xc004afe940?}}, {0x2ff8770, 0xc2e81eba40}, 0xc14843bd00)
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/apiprefix.go:24 +0x145 fp=0xc00b07cd40 sp=0xc00b07ccd8 pc=0x2423bc5
github.com/ipfs/go-ipfs-cmds/http.(*prefixHandler).ServeHTTP(0xc003f45ad0?, {0x2ff8770?, 0xc2e81eba40?}, 0xc14843bd00?)
    :1 +0x4f fp=0xc00b07cd88 sp=0xc00b07cd40 pc=0x242bf2f
github.com/ipfs/go-ipfs-cmds/http.NewHandler.(*Cors).Handler.func1({0x2ff8770, 0xc2e81eba40}, 0xc14843bd00)
    github.com/rs/cors@v1.7.0/cors.go:219 +0x17e fp=0xc00b07cde0 sp=0xc00b07cd88 pc=0x242691e
net/http.HandlerFunc.ServeHTTP(0x2ffce10?, {0x2ff8770?, 0xc2e81eba40?}, 0x2fd6328?)
    net/http/server.go:2136 +0x29 fp=0xc00b07ce08 sp=0xc00b07cde0 pc=0x147ade9
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*Handler).ServeHTTP(0xc0047efa40, {0x7f7e38773358?, 0xc1d0033860}, 0xc14843bc00)
    go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.42.0/handler.go:212 +0x1204 fp=0xc00b07d448 sp=0xc00b07ce08 pc=0x2443bc4
net/http.(*ServeMux).ServeHTTP(0xc029838c90?, {0x7f7e38773358, 0xc1d0033860}, 0xc14843bc00)
    net/http/server.go:2514 +0x142 fp=0xc00b07d498 sp=0xc00b07d448 pc=0x147ca62
main.serveHTTPApi.CheckVersionOption.func8.1({0x7f7e38773358, 0xc1d0033860}, 0xc14843bc00)
    github.com/ipfs/kubo/core/corehttp/commands.go:186 +0x265 fp=0xc00b07d528 sp=0xc00b07d498 pc=0x24a50a5
net/http.HandlerFunc.ServeHTTP(0x7f7e38773358?, {0x7f7e38773358?, 0xc1d0033860?}, 0xc0f6d02590?)
    net/http/server.go:2136 +0x29 fp=0xc00b07d550 sp=0xc00b07d528 pc=0x147ade9
net/http.(*ServeMux).ServeHTTP(0x7f7e38773358?, {0x7f7e38773358, 0xc1d0033860}, 0xc14843bc00)
    net/http/server.go:2514 +0x142 fp=0xc00b07d5a0 sp=0xc00b07d550 pc=0x147ca62
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerResponseSize.func1({0x7f7e38773358?, 0xc1d0033810?}, 0xc14843bc00)
    github.com/prometheus/client_golang@v1.17.0/prometheus/promhttp/instrument_server.go:296 +0xca fp=0xc00b07d6c0 sp=0xc00b07d5a0 pc=0x245ea6a
net/http.HandlerFunc.ServeHTTP(0xc2e46b7b80?, {0x7f7e38773358?, 0xc1d0033810?}, 0x2992f20?)
    net/http/server.go:2136 +0x29 fp=0xc00b07d6e8 sp=0xc00b07d6c0 pc=0x147ade9
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerRequestSize.func2({0x7f7e38773358?, 0xc1d0033810?}, 0xc14843bc00)
    github.com/prometheus/client_golang@v1.17.0/prometheus/promhttp/instrument_server.go:255 +0x7e fp=0xc00b07d7f0 sp=0xc00b07d6e8 pc=0x245e13e
net/http.HandlerFunc.ServeHTTP(0x48?, {0x7f7e38773358?, 0xc1d0033810?}, 0x7f7d05600740?)
    net/http/server.go:2136 +0x29 fp=0xc00b07d818 sp=0xc00b07d7f0 pc=0x147ade9
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x7f7e38773358, 0xc1d0033810}, 0xc14843bc00)
    github.com/prometheus/client_golang@v1.17.0/prometheus/promhttp/instrument_server.go:109 +0xc2 fp=0xc00b07d940 sp=0xc00b07d818 pc=0x245cde2
net/http.HandlerFunc.ServeHTTP(0x2ff5c30?, {0x7f7e38773358?, 0xc1d0033810?}, 0xc1a8ed8000?)
    net/http/server.go:2136 +0x29 fp=0xc00b07d968 sp=0xc00b07d940 pc=0x147ade9
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1({0x2ff5c30?, 0xc0d20d6460?}, 0xc14843bc00)
    github.com/prometheus/client_golang@v1.17.0/prometheus/promhttp/instrument_server.go:147 +0xb6 fp=0xc00b07da78 sp=0xc00b07d968 pc=0x245daf6
net/http.HandlerFunc.ServeHTTP(0x10?, {0x2ff5c30?, 0xc0d20d6460?}, 0x10?)
    net/http/server.go:2136 +0x29 fp=0xc00b07daa0 sp=0xc00b07da78 pc=0x147ade9
net/http.(*ServeMux).ServeHTTP(0xc0f6d02af8?, {0x2ff5c30, 0xc0d20d6460}, 0xc14843bc00)
    net/http/server.go:2514 +0x142 fp=0xc00b07daf0 sp=0xc00b07daa0 pc=0x147ca62
github.com/ipfs/kubo/core/corehttp.MakeHandler.func1({0x2ff5c30?, 0xc0d20d6460?}, 0xc2e46b7b80?)
    github.com/ipfs/kubo/core/corehttp/corehttp.go:54 +0x65 fp=0xc00b07db20 sp=0xc00b07daf0 pc=0x247bc25
net/http.HandlerFunc.ServeHTTP(0x435a320?, {0x2ff5c30?, 0xc0d20d6460?}, 0xc0f6d02b50?)
    net/http/server.go:2136 +0x29 fp=0xc00b07db48 sp=0xc00b07db20 pc=0x147ade9
net/http.serverHandler.ServeHTTP({0xc0a5dd9dd0?}, {0x2ff5c30?, 0xc0d20d6460?}, 0x6?)
    net/http/server.go:2938 +0x8e fp=0xc00b07db78 sp=0xc00b07db48 pc=0x147de2e
net/http.(*conn).serve(0xc05e99def0, {0x2ffce10, 0xc004e2cc00})
    net/http/server.go:2009 +0x5f4 fp=0xc00b07dfb8 sp=0xc00b07db78 pc=0x14799b4
net/http.(*Server).Serve.func3()
    net/http/server.go:3086 +0x28 fp=0xc00b07dfe0 sp=0xc00b07dfb8 pc=0x147e708
runtime.goexit()
    runtime/asm_amd64.s:1650 +0x1 fp=0xc00b07dfe8 sp=0xc00b07dfe0 pc=0xfb81c1
created by net/http.(*Server).Serve in goroutine 3380
    net/http/server.go:3086 +0x5cb
v0.23.0
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x14f96e4]

goroutine 69011700 [running]:
runtime.throw({0x27aa9b7?, 0xc026ccdc28?})
    runtime/panic.go:1077 +0x5c fp=0xc026ccdbd8 sp=0xc026ccdba8 pc=0xeba85c
runtime.sigpanic()
    runtime/signal_unix.go:875 +0x285 fp=0xc026ccdc38 sp=0xc026ccdbd8 pc=0xed2d05
github.com/libp2p/go-libp2p/core/peer.AddrInfo.MarshalJSON({{0xc06b819f20, 0x26}, {0xc13062a800, 0x10, 0x10}})
    github.com/libp2p/go-libp2p@v0.31.0/core/peer/addrinfo_serde.go:22 +0x104 fp=0xc026ccdcd0 sp=0xc026ccdc38 pc=0x14f96e4
github.com/libp2p/go-libp2p/core/peer.(*AddrInfo).MarshalJSON(0x254eac0?)
    <autogenerated>:1 +0x54 fp=0xc026ccdd30 sp=0xc026ccdcd0 pc=0x14fc354
encoding/json.marshalerEncoder(0xc13681bb40, {0x254eac0?, 0xc0ebf4b0c8?, 0xc026ccde60?}, {0x85?, 0xd9?})
    encoding/json/encode.go:442 +0xd2 fp=0xc026ccdde0 sp=0xc026ccdd30 pc=0x102e9f2
encoding/json.arrayEncoder.encode({0xe8d1cd?}, 0xc13681bb40, {0x2375ee0?, 0xc0ebf4b5c0?, 0x23cb2a0?}, {0x7?, 0xc3?})
    encoding/json/encode.go:849 +0xd6 fp=0xc026ccde58 sp=0xc026ccdde0 pc=0x10323b6
encoding/json.arrayEncoder.encode-fm(0xc026ccdf00?, {0x2375ee0?, 0xc0ebf4b5c0?, 0x30?}, {0xf0?, 0xde?})
    <autogenerated>:1 +0x3f fp=0xc026ccde98 sp=0xc026ccde58 pc=0x103e9ff
encoding/json.sliceEncoder.encode({0xc0554a8f70?}, 0xc13681bb40, {0x2375ee0?, 0xc0ebf4b5c0?, 0x2375ee0?}, {0x20?, 0xd5?})
    encoding/json/encode.go:822 +0x30f fp=0xc026ccdfb8 sp=0xc026ccde98 pc=0x1031eef
encoding/json.sliceEncoder.encode-fm(0x2375ee0?, {0x2375ee0?, 0xc0ebf4b5c0?, 0xc043e514a0?}, {0xb8?, 0xe1?})
    <autogenerated>:1 +0x3f fp=0xc026ccdff8 sp=0xc026ccdfb8 pc=0x103eabf
encoding/json.(*encodeState).reflectValue(0x242cd80?, {0x2375ee0?, 0xc0ebf4b5c0?, 0xa?}, {0xb8?, 0xe1?})
    encoding/json/encode.go:323 +0x73 fp=0xc026cce058 sp=0xc026ccdff8 pc=0x102dfd3
encoding/json.interfaceEncoder(0xc13681bb40, {0x242cd80?, 0xc0554a8fd0?, 0x0?}, {0x48?, 0x62?})
    encoding/json/encode.go:660 +0xba fp=0xc026cce0a0 sp=0xc026cce058 pc=0x10306fa
encoding/json.mapEncoder.encode({0x21ddf9e?}, 0xc13681bb40, {0x2473300?, 0xc043e51470?, 0x2473300?}, {0x30?, 0xe3?})
    encoding/json/encode.go:759 +0x566 fp=0xc026cce2c8 sp=0xc026cce0a0 pc=0x1031226
encoding/json.mapEncoder.encode-fm(0x2473300?, {0x2473300?, 0xc043e51470?, 0xc0809456b0?}, {0x0?, 0x0?})
    <autogenerated>:1 +0x3f fp=0xc026cce308 sp=0xc026cce2c8 pc=0x103eb7f
encoding/json.(*encodeState).reflectValue(0xc026cce3a0?, {0x2473300?, 0xc043e51470?, 0x4?}, {0x0?, 0x15?})
    encoding/json/encode.go:323 +0x73 fp=0xc026cce368 sp=0xc026cce308 pc=0x102dfd3
encoding/json.(*encodeState).marshal(0x25efb20?, {0x2473300?, 0xc043e51470?}, {0xc8?, 0xc3?})
    encoding/json/encode.go:295 +0xb9 fp=0xc026cce3e0 sp=0xc026cce368 pc=0x102db19
encoding/json.Marshal({0x2473300, 0xc043e51470})
    encoding/json/encode.go:162 +0xd0 fp=0xc026cce4a0 sp=0xc026cce3e0 pc=0x102d410
github.com/libp2p/go-libp2p/core/routing.(*QueryEvent).MarshalJSON(0xc0bd1fdec0)
    github.com/libp2p/go-libp2p@v0.31.0/core/routing/query_serde.go:10 +0x1ec fp=0xc026cce500 sp=0xc026cce4a0 pc=0x153592c
encoding/json.marshalerEncoder(0xc13681bac0, {0x24c1560?, 0xc0bd1fdec0?, 0xc0680e5380?}, {0x0?, 0x0?})
    encoding/json/encode.go:442 +0xd2 fp=0xc026cce5b0 sp=0xc026cce500 pc=0x102e9f2
encoding/json.(*encodeState).reflectValue(0xc026cce648?, {0x24c1560?, 0xc0bd1fdec0?, 0xc12c75c380?}, {0x0?, 0x15?})
    encoding/json/encode.go:323 +0x73 fp=0xc026cce610 sp=0xc026cce5b0 pc=0x102dfd3
encoding/json.(*encodeState).marshal(0xc026cce6a0?, {0x24c1560?, 0xc0bd1fdec0?}, {0xb8?, 0xe6?})
    encoding/json/encode.go:295 +0xb9 fp=0xc026cce688 sp=0xc026cce610 pc=0x102db19
encoding/json.(*Encoder).Encode(0xc080de78c0, {0x24c1560, 0xc0bd1fdec0})
    encoding/json/stream.go:209 +0xdf fp=0xc026cce730 sp=0xc026cce688 pc=0x103a7ff
github.com/ipfs/go-ipfs-cmds/http.(*responseEmitter).Emit(0xc037467420, {0x24c1560, 0xc0bd1fdec0})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/responseemitter.go:135 +0x382 fp=0xc026cce820 sp=0xc026cce730 pc=0x21e1422
github.com/ipfs/kubo/core/commands.glob..func140(0xc0374672d0, {0x7f89b4211210, 0xc037467420}, {0x25bdc80?, 0xc001215770?})
    github.com/ipfs/kubo/core/commands/routing.go:213 +0x4bb fp=0xc026cce8f8 sp=0xc026cce820 pc=0x21b8bbb
github.com/ipfs/go-ipfs-cmds.(*Command).call(0xc026cce9e0?, 0xc0374672d0, {0x7f89b4211210, 0xc037467420}, {0x25bdc80, 0xc001215770})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/command.go:189 +0x18f fp=0xc026cce9b8 sp=0xc026cce8f8 pc=0x1e9f22f
github.com/ipfs/go-ipfs-cmds.(*Command).Call(0xc001215770?, 0xc0374672d0?, {0x7f89b4211210, 0xc037467420}, {0x25bdc80?, 0xc001215770?})
    github.com/ipfs/go-ipfs-cmds@v0.10.0/command.go:159 +0x3f fp=0xc026ccea58 sp=0xc026cce9b8 pc=0x1e9eeff
github.com/ipfs/go-ipfs-cmds/http.(*handler).ServeHTTP(0xc0004c2c60, {0x2d0c190, 0xc080de7860}, 0xc11e50b000)
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/handler.go:192 +0xa4b fp=0xc026ccecd8 sp=0xc026ccea58 pc=0x21dea2b
github.com/ipfs/go-ipfs-cmds/http.prefixHandler.ServeHTTP({{0x27d228e?, 0x30?}, {0x2cf9da0?, 0xc0004c2c60?}}, {0x2d0c190, 0xc080de7860}, 0xc11e50b000)
    github.com/ipfs/go-ipfs-cmds@v0.10.0/http/apiprefix.go:24 +0x145 fp=0xc026cced40 sp=0xc026ccecd8 pc=0x21db245
github.com/ipfs/go-ipfs-cmds/http.(*prefixHandler).ServeHTTP(0xc000fe0580?, {0x2d0c190?, 0xc080de7860?}, 0xc11e50b000?)
    <autogenerated>:1 +0x4f fp=0xc026cced88 sp=0xc026cced40 pc=0x21e35af
github.com/ipfs/go-ipfs-cmds/http.NewHandler.(*Cors).Handler.func1({0x2d0c190, 0xc080de7860}, 0xc11e50b000)
    github.com/rs/cors@v1.7.0/cors.go:219 +0x17e fp=0xc026ccede0 sp=0xc026cced88 pc=0x21ddf9e
net/http.HandlerFunc.ServeHTTP(0x2d0fb48?, {0x2d0c190?, 0xc080de7860?}, 0x2ceb7e0?)
    net/http/server.go:2136 +0x29 fp=0xc026ccee08 sp=0xc026ccede0 pc=0x1387169
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*Handler).ServeHTTP(0xc000b9acc0, {0x7f89b4211100?, 0xc109347d10}, 0xc11e50af00)
    go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.42.0/handler.go:212 +0x1204 fp=0xc026ccf448 sp=0xc026ccee08 pc=0x21fb244
net/http.(*ServeMux).ServeHTTP(0xc11a912960?, {0x7f89b4211100, 0xc109347d10}, 0xc11e50af00)
    net/http/server.go:2514 +0x142 fp=0xc026ccf498 sp=0xc026ccf448 pc=0x1388de2
main.serveHTTPApi.CheckVersionOption.func8.1({0x7f89b4211100, 0xc109347d10}, 0xc11e50af00)
    github.com/ipfs/kubo/core/corehttp/commands.go:187 +0x24e fp=0xc026ccf528 sp=0xc026ccf498 pc=0x225bf2e
net/http.HandlerFunc.ServeHTTP(0x7f89b4211100?, {0x7f89b4211100?, 0xc109347d10?}, 0xc029f30590?)
    net/http/server.go:2136 +0x29 fp=0xc026ccf550 sp=0xc026ccf528 pc=0x1387169
net/http.(*ServeMux).ServeHTTP(0x7f89b4211100?, {0x7f89b4211100, 0xc109347d10}, 0xc11e50af00)
    net/http/server.go:2514 +0x142 fp=0xc026ccf5a0 sp=0xc026ccf550 pc=0x1388de2
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerResponseSize.func1({0x7f89b4211100?, 0xc109347cc0?}, 0xc11e50af00)
    github.com/prometheus/client_golang@v1.16.0/prometheus/promhttp/instrument_server.go:296 +0xca fp=0xc026ccf6c0 sp=0xc026ccf5a0 pc=0x221612a
net/http.HandlerFunc.ServeHTTP(0xea2e9c?, {0x7f89b4211100?, 0xc109347cc0?}, 0x7f88ec68e0f8?)
    net/http/server.go:2136 +0x29 fp=0xc026ccf6e8 sp=0xc026ccf6c0 pc=0x1387169
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerRequestSize.func2({0x7f89b4211100?, 0xc109347cc0?}, 0xc11e50af00)
    github.com/prometheus/client_golang@v1.16.0/prometheus/promhttp/instrument_server.go:255 +0x7e fp=0xc026ccf7f0 sp=0xc026ccf6e8 pc=0x22157fe
net/http.HandlerFunc.ServeHTTP(0x48?, {0x7f89b4211100?, 0xc109347cc0?}, 0x7f888ec19d80?)
    net/http/server.go:2136 +0x29 fp=0xc026ccf818 sp=0xc026ccf7f0 pc=0x1387169
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x7f89b4211100, 0xc109347cc0}, 0xc11e50af00)
    github.com/prometheus/client_golang@v1.16.0/prometheus/promhttp/instrument_server.go:109 +0xc2 fp=0xc026ccf940 sp=0xc026ccf818 pc=0x22144a2
net/http.HandlerFunc.ServeHTTP(0x2d09710?, {0x7f89b4211100?, 0xc109347cc0?}, 0xc0bc1b7290?)
    net/http/server.go:2136 +0x29 fp=0xc026ccf968 sp=0xc026ccf940 pc=0x1387169
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1({0x2d09710?, 0xc12c75c380?}, 0xc11e50af00)
    github.com/prometheus/client_golang@v1.16.0/prometheus/promhttp/instrument_server.go:147 +0xb6 fp=0xc026ccfa78 sp=0xc026ccf968 pc=0x22151b6
net/http.HandlerFunc.ServeHTTP(0x10?, {0x2d09710?, 0xc12c75c380?}, 0x10?)
    net/http/server.go:2136 +0x29 fp=0xc026ccfaa0 sp=0xc026ccfa78 pc=0x1387169
net/http.(*ServeMux).ServeHTTP(0xc029f30af8?, {0x2d09710, 0xc12c75c380}, 0xc11e50af00)
    net/http/server.go:2514 +0x142 fp=0xc026ccfaf0 sp=0xc026ccfaa0 pc=0x1388de2
github.com/ipfs/kubo/core/corehttp.MakeHandler.func1({0x2d09710?, 0xc12c75c380?}, 0xc0232a1ce0?)
    github.com/ipfs/kubo/core/corehttp/corehttp.go:54 +0x65 fp=0xc026ccfb20 sp=0xc026ccfaf0 pc=0x2232aa5
net/http.HandlerFunc.ServeHTTP(0x3f5e320?, {0x2d09710?, 0xc12c75c380?}, 0xc029f30b50?)
    net/http/server.go:2136 +0x29 fp=0xc026ccfb48 sp=0xc026ccfb20 pc=0x1387169
net/http.serverHandler.ServeHTTP({0xc1270d3410?}, {0x2d09710?, 0xc12c75c380?}, 0x6?)
    net/http/server.go:2938 +0x8e fp=0xc026ccfb78 sp=0xc026ccfb48 pc=0x138a1ae
net/http.(*conn).serve(0xc10f506cf0, {0x2d0fb48, 0xc000c75320})
    net/http/server.go:2009 +0x5f4 fp=0xc026ccffb8 sp=0xc026ccfb78 pc=0x1385d34
net/http.(*Server).Serve.func3()
    net/http/server.go:3086 +0x28 fp=0xc026ccffe0 sp=0xc026ccffb8 pc=0x138aa88
runtime.goexit()
    runtime/asm_amd64.s:1650 +0x1 fp=0xc026ccffe8 sp=0xc026ccffe0 pc=0xef3101
created by net/http.(*Server).Serve in goroutine 1577
    net/http/server.go:3086 +0x5cb
lidel commented 10 months ago

@marten-seemann @sukunrt does the panic in go-libp2p/core/peer.AddrInfo.MarshalJSON look familiar?

cachalots commented 10 months ago

https://github.com/libp2p/go-libp2p/blob/master/core/peer/addrinfo_serde.go#L18 In general, panic can be recovered, and there are also many recover logs in the code. The recover failure seems to be due to quic using the unsafe to create a wild pointer. I'm not sure if this is related to the reuse listener section.

cachalots commented 10 months ago

rare crash with v0.24.0

runtime: g 462458665: unexpected return pc for github.com/ipfs/kubo/routing.httpRoutingFromConfig called from 0xc04faa1e88
stack: frame={sp:0xc04faa1c30, fp:0xc04faa1e50} stack=[0xc04faa0000,0xc04faa4000)
0x000000c04faa1b30:  0x0000000000f50305   0x000000c04faa1c10 
0x000000c04faa1b40:  0x000000c00416bd40  0x0000000000000000 
0x000000c04faa1b50:  0x000000c04faa1c00  0x0000000000f7f1ca  
0x000000c04faa1b60:  0x0000000003fdab90  0x0000000000000001 
0x000000c04faa1b70:  0x000000c04faa1bd8  0x0000000000f52985  
0x000000c04faa1b80:  0x000000c1610c97a0  0x0000000000000030 
0x000000c04faa1b90:  0x00000000027396c0  0x00000000028cea60 
0x000000c04faa1ba0:  0x000000c000014278  0x00007fe76c05e738 
0x000000c04faa1bb0:  0x00007fe853bbd878  0x000000c00416bd40 
0x000000c04faa1bc0:  0x000000c1610c97a0  0x0000000000000000 
0x000000c04faa1bd0:  0x00000000027396c0  0x000000c1610c97a0 
0x000000c04faa1be0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1bf0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1c00:  0x000000c04faa1c20  0x0000000000f50305  
0x000000c04faa1c10:  0x00000000027396c0  0x000000c1610c97a0 
0x000000c04faa1c20:  0x000000c04faa1cc0  0x00000000018cba8a  
0x000000c04faa1c30: <0x0000000000dd41ff  0x000000c1610c9140 
0x000000c04faa1c40:  0x00000000018cba80   0x0000000002fe3cc0 
0x000000c04faa1c50:  0x010000c0359cc380  0x0000000000000003 
0x000000c04faa1c60:  0x0000000000000006  0x0000000000000006 
0x000000c04faa1c70:  0x000000c1610c9140  0x000000c167bd8600 
0x000000c04faa1c80:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1c90:  0x00000000013e3e00   0x000000c04faa1c80 
0x000000c04faa1ca0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1cb0:  0x0000000000000000  0x000000c04faa1c90 
0x000000c04faa1cc0:  0x000000c04faa1d20  0x00000000013e6814  
0x000000c04faa1cd0:  0x000000c0d7d4bc80  0x0000000000000026 
0x000000c04faa1ce0:  0x000000c1610c9110  0x0000000000000006 
0x000000c04faa1cf0:  0x0000000000000003  0x000000c0d7d4bc80 
0x000000c04faa1d00:  0x0000000000000026  0x000000c1610c9110 
0x000000c04faa1d10:  0x0000000000000006  0x0000000000000003 
0x000000c04faa1d20:  0x000000c04faa1dd0  0x00000000010f4352  
0x000000c04faa1d30:  0x00000000027dae00  0x00000000027dae00 
0x000000c04faa1d40:  0x000000c1610c90e0  0x000000c04fa766c0 
0x000000c04faa1d50:  0x0000000000000086  0x0000000000000090 
0x000000c04faa1d60:  0x000000c000255301  0x0100000000000005 
0x000000c04faa1d70:  0x0000000000000000  0x0000000000000086 
0x000000c04faa1d80:  0x0000000000000000  0x0000000000000090 
0x000000c04faa1d90:  0x0000000000000196  0x000000000209a2ab  
0x000000c04faa1da0:  0x0000000000000000  0x000000c04fa766c0 
0x000000c04faa1db0:  0x00000000027dae00  0x000000c06d5a5b40 
0x000000c04faa1dc0:  0x0000000000f5c0b3   0x0000000000002000 
0x000000c04faa1dd0:  0x000000c04faa1e48  0x00000000010f7d16  
0x000000c04faa1de0:  0x000000c1060c5dc0  0x00000000027dae00 
0x000000c04faa1df0:  0x000000c06d5a5b40  0x00000000043543a0 
0x000000c04faa1e00:  0x00007fe7a8539a70  0x0100000000000000 
0x000000c04faa1e10:  0x0000000000000015  0x000000000000000e 
0x000000c04faa1e20:  0x0000000000000017  0x0000000000000097 
0x000000c04faa1e30:  0x00000000025d5f80  0x0000000002d7e940 
0x000000c04faa1e40:  0x000000c019aab788  0x000000c04faa1e88 
0x000000c04faa1e50: >0x000000000110435f   0x0000000000f521cd  
0x000000c04faa1e60:  0x000000c1060c5dc0  0x00000000025d5f80 
0x000000c04faa1e70:  0x000000c019aab788  0x0000000000000080 
0x000000c04faa1e80:  0x0000000001101c67   0x000000c04faa1fa8 
0x000000c04faa1e90:  0x00000000010f784f   0x000000c04faa1f00 
0x000000c04faa1ea0:  0x00000000025d5f80  0x000000c019aab788 
0x000000c04faa1eb0:  0x0000000000000030  0x000000c04faa1ef0 
0x000000c04faa1ec0:  0x0000000000f48348   0x000000c04faa1ef0 
0x000000c04faa1ed0:  0x0000000000f488cd   0x0000000000000017 
0x000000c04faa1ee0:  0x0000000000000033  0x000000c04faa1f30 
0x000000c04faa1ef0:  0x000000c04faa1f30  0x0000000000f5418c  
0x000000c04faa1f00:  0x0000000000000035  0x00000000010f7007  
0x000000c04faa1f10:  0x540000c092620011  0x0000000000000004 
0x000000c04faa1f20:  0x000000c0065feb60  0x000000c04faa1f88 
0x000000c04faa1f30:  0x000000c04faa1f70  0x0000000000fc4cf0  
0x000000c04faa1f40:  0x00000000026ec180  0x000000c03fa692f0 
fatal error: unknown caller pc

runtime stack:
runtime.throw({0x2b0e3e8?, 0x0?})
    runtime/panic.go:1077 +0x5c fp=0x7fe76effcc08 sp=0x7fe76effcbd8 pc=0xf7f85c
runtime.(*unwinder).next(0x7fe76effccb0)
    runtime/traceback.go:475 +0x249 fp=0x7fe76effcc80 sp=0x7fe76effcc08 pc=0xfa79c9
runtime.addOneOpenDeferFrame.func1()
    runtime/panic.go:648 +0x85 fp=0x7fe76effce50 sp=0x7fe76effcc80 pc=0xf7ea05
traceback: unexpected SPWRITE function runtime.systemstack
runtime.systemstack()
    runtime/asm_amd64.s:509 +0x4a fp=0x7fe76effce60 sp=0x7fe76effce50 pc=0xfb624a

goroutine 462458665 [running]:
runtime.systemstack_switch()
    runtime/asm_amd64.s:474 +0x8 fp=0xc04faa1b20 sp=0xc04faa1b10 pc=0xfb61e8
runtime.addOneOpenDeferFrame(0x3fdab90?, 0x1?, 0xc04faa1bd8?)
    runtime/panic.go:645 +0x65 fp=0xc04faa1b60 sp=0xc04faa1b20 pc=0xf7e925
panic({0x27396c0?, 0xc1610c97a0?})
    runtime/panic.go:874 +0x14a fp=0xc04faa1c10 sp=0xc04faa1b60 pc=0xf7f1ca
runtime.panicdottypeE(0xdd41ff, 0xc1610c9140, 0x18cba80)
    runtime/iface.go:263 +0x65 fp=0xc04faa1c30 sp=0xc04faa1c10 pc=0xf50305
github.com/ipfs/kubo/routing.httpRoutingFromConfig({{0x110435f?, 0xf521cd?}, {0xc1060c5dc0?, 0x25d5f80?}}, 0xc019aab788?)
    github.com/ipfs/kubo/routing/delegated.go:174 +0x8ca fp=0xc04faa1e50 sp=0xc04faa1c30 pc=0x18cba8a
runtime: g 462458665: unexpected return pc for github.com/ipfs/kubo/routing.httpRoutingFromConfig called from 0xc04faa1e88
stack: frame={sp:0xc04faa1c30, fp:0xc04faa1e50} stack=[0xc04faa0000,0xc04faa4000)
0x000000c04faa1b30:  0x0000000000f50305   0x000000c04faa1c10 
0x000000c04faa1b40:  0x000000c00416bd40  0x0000000000000000 
0x000000c04faa1b50:  0x000000c04faa1c00  0x0000000000f7f1ca  
0x000000c04faa1b60:  0x0000000003fdab90  0x0000000000000001 
0x000000c04faa1b70:  0x000000c04faa1bd8  0x0000000000f52985  
0x000000c04faa1b80:  0x000000c1610c97a0  0x0000000000000030 
0x000000c04faa1b90:  0x00000000027396c0  0x00000000028cea60 
0x000000c04faa1ba0:  0x000000c000014278  0x00007fe76c05e738 
0x000000c04faa1bb0:  0x00007fe853bbd878  0x000000c00416bd40 
0x000000c04faa1bc0:  0x000000c1610c97a0  0x0000000000000000 
0x000000c04faa1bd0:  0x00000000027396c0  0x000000c1610c97a0 
0x000000c04faa1be0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1bf0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1c00:  0x000000c04faa1c20  0x0000000000f50305  
0x000000c04faa1c10:  0x00000000027396c0  0x000000c1610c97a0 
0x000000c04faa1c20:  0x000000c04faa1cc0  0x00000000018cba8a  
0x000000c04faa1c30: <0x0000000000dd41ff  0x000000c1610c9140 
0x000000c04faa1c40:  0x00000000018cba80   0x0000000002fe3cc0 
0x000000c04faa1c50:  0x010000c0359cc380  0x0000000000000003 
0x000000c04faa1c60:  0x0000000000000006  0x0000000000000006 
0x000000c04faa1c70:  0x000000c1610c9140  0x000000c167bd8600 
0x000000c04faa1c80:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1c90:  0x00000000013e3e00   0x000000c04faa1c80 
0x000000c04faa1ca0:  0x0000000000000000  0x0000000000000000 
0x000000c04faa1cb0:  0x0000000000000000  0x000000c04faa1c90 
0x000000c04faa1cc0:  0x000000c04faa1d20  0x00000000013e6814  
0x000000c04faa1cd0:  0x000000c0d7d4bc80  0x0000000000000026 
0x000000c04faa1ce0:  0x000000c1610c9110  0x0000000000000006 
0x000000c04faa1cf0:  0x0000000000000003  0x000000c0d7d4bc80 
0x000000c04faa1d00:  0x0000000000000026  0x000000c1610c9110 
0x000000c04faa1d10:  0x0000000000000006  0x0000000000000003 
0x000000c04faa1d20:  0x000000c04faa1dd0  0x00000000010f4352  
0x000000c04faa1d30:  0x00000000027dae00  0x00000000027dae00 
0x000000c04faa1d40:  0x000000c1610c90e0  0x000000c04fa766c0 
0x000000c04faa1d50:  0x0000000000000086  0x0000000000000090 
0x000000c04faa1d60:  0x000000c000255301  0x0100000000000005 
0x000000c04faa1d70:  0x0000000000000000  0x0000000000000086 
0x000000c04faa1d80:  0x0000000000000000  0x0000000000000090 
0x000000c04faa1d90:  0x0000000000000196  0x000000000209a2ab  
0x000000c04faa1da0:  0x0000000000000000  0x000000c04fa766c0 
0x000000c04faa1db0:  0x00000000027dae00  0x000000c06d5a5b40 
0x000000c04faa1dc0:  0x0000000000f5c0b3   0x0000000000002000 
0x000000c04faa1dd0:  0x000000c04faa1e48  0x00000000010f7d16  
0x000000c04faa1de0:  0x000000c1060c5dc0  0x00000000027dae00 
0x000000c04faa1df0:  0x000000c06d5a5b40  0x00000000043543a0 
0x000000c04faa1e00:  0x00007fe7a8539a70  0x0100000000000000 
0x000000c04faa1e10:  0x0000000000000015  0x000000000000000e 
0x000000c04faa1e20:  0x0000000000000017  0x0000000000000097 
0x000000c04faa1e30:  0x00000000025d5f80  0x0000000002d7e940 
0x000000c04faa1e40:  0x000000c019aab788  0x000000c04faa1e88 
0x000000c04faa1e50: >0x000000000110435f   0x0000000000f521cd  
0x000000c04faa1e60:  0x000000c1060c5dc0  0x00000000025d5f80 
0x000000c04faa1e70:  0x000000c019aab788  0x0000000000000080 
0x000000c04faa1e80:  0x0000000001101c67   0x000000c04faa1fa8 
0x000000c04faa1e90:  0x00000000010f784f   0x000000c04faa1f00 
0x000000c04faa1ea0:  0x00000000025d5f80  0x000000c019aab788 
0x000000c04faa1eb0:  0x0000000000000030  0x000000c04faa1ef0 
0x000000c04faa1ec0:  0x0000000000f48348   0x000000c04faa1ef0 
0x000000c04faa1ed0:  0x0000000000f488cd   0x0000000000000017 
0x000000c04faa1ee0:  0x0000000000000033  0x000000c04faa1f30 
0x000000c04faa1ef0:  0x000000c04faa1f30  0x0000000000f5418c  
0x000000c04faa1f00:  0x0000000000000035  0x00000000010f7007  
0x000000c04faa1f10:  0x540000c092620011  0x0000000000000004 
0x000000c04faa1f20:  0x000000c0065feb60  0x000000c04faa1f88 
0x000000c04faa1f30:  0x000000c04faa1f70  0x0000000000fc4cf0  
0x000000c04faa1f40:  0x00000000026ec180  0x000000c03fa692f0 
created by net/http.(*Server).Serve in goroutine 1423
    net/http/server.go:3086 +0x5cb