Federation works, but unable to follow blog from other instances

Hoping I can get a little help with troubleshooting follow an issue i’m having following my blog from external instances.

I have my writefreely instance (https://wf.zoner.gay) up and running behind a Caddy reverse proxy and aimed at port 2000 (I have other services running on the machine too), and while federation works and I can find my blog and posts from other instances (fen — Garbage Engine), I can’t actually follow the blog - Mastodon, Glitch-soc, Akkoma, and Calckey have all been attempted without success and all those frontends give are their equivalent of the Follow Request Pending message, which tells me something’s up on receiving the WF response

Also, running it from terminal to add the debug flag, WF appears to crash after outputting the log (what is provided below) and has to be restarted, so I’m expecting it’s probably not responding at all. I normally have it running as a systemd service which restarts right away, so I only noticed this behavior when I ran to get the debug logs.

Here’s the relevant portion of my Caddyfile:

wf.zoner.gay {
        encode gzip
        reverse_proxy localhost:2000
}

Here’s my writefreely config.ini:

[server]
hidden_host          =
port                 = 2000
bind                 = localhost
tls_cert_path        =
tls_key_path         =
autocert             = false
templates_parent_dir =
static_parent_dir    =
pages_parent_dir     =
keys_parent_dir      =
hash_seed            =
gopher_port          = 0

[database]
type     = sqlite3
filename = writefreely.db
username =
password =
database = writefreely
host     = localhost
port     = 3306
tls      = false

[app]
site_name             = <title>
site_description      = <desc>
host                  = https://wf.zoner.gay
theme                 = write
editor                =
disable_js            = false
webfonts              = true
landing               = /read
simple_nav            = false
wf_modesty            = false
chorus                = false
forest                = false
disable_drafts        = false
single_user           = false
open_registration     = false
open_deletion         = true
min_username_len      = 3
max_blogs             = 3
federation            = true
public_stats          = true
monetization          = false
notes_only            = false
private               = false
local_timeline        = true
user_invites          = user
default_visibility    = public
update_checks         = false
disable_password_auth = false

And here’s the debug log from writefreely when the follow event occurs:

2023/08/10 22:20:42 "GET /api/collections/fen/following" 200 2.813884ms "Akkoma 3.9.3-28-g9d7c877d; https://zoner.gay <fencore@zoner.work>"
2023/08/10 22:20:42 "GET /api/collections/fen/following?page=1" 200 479.411µs "Akkoma 3.9.3-28-g9d7c877d; https://zoner.gay <fencore@zoner.work>"
2023/08/10 22:20:42 "GET /api/collections/fen/followers" 200 795.635µs "Akkoma 3.9.3-28-g9d7c877d; https://zoner.gay <fencore@zoner.work>"
2023/08/10 22:20:42 "GET /api/collections/fen/followers?page=1" 200 391.356µs "Akkoma 3.9.3-28-g9d7c877d; https://zoner.gay <fencore@zoner.work>"
2023/08/10 22:20:42 Rec'd! "POST /api/collections/fen/inbox HTTP/1.1\r\nHost: wf.zoner.gay\r\nAccept-Encoding: gzip\r\nContent-Length: 394\r\nContent-Type: application/activity+json\r\nDate: Thu, 10 Aug 2023 22:20:42 GMT\r\nDigest: SHA-256=jHzcc3ZkI+IjUW9HU7ElV+9v3Lp3jeiejrKB0jT5i38=\r\nSignature: keyId=\"https://zoner.gay/users/fen#main-key\",algorithm=\"rsa-sha256\",headers=\"(request-target) content-length date digest host\",signature=\"LoWuCkVGi97oG+pAUJNVMv+7SceaTyvqhjIUJVoPUlyngPoGdO3UgZkyULIM0HKTBDSnRQcdf2hyXEPVGFsMqb7j5PDIH16dSfoJQvDNB3vOrCPFpejTagvfmaohw80xHCHaolNBFvIO2UA61G6CY99L+HyjF6CYQVuIlmu4TTddbE+PVcvcu81dXrbd4nSpeCYLiL/KAHq+lPzf0b2GkUNnknsM1p8fX2yiJHrnvJABm28yXFxeu8JIrR0ldI9ZXtscras4zmMC1XGg1mYSBWCveXk27xemwyatXwIi006qdKj0qX58GOlB+URh2UzxPbkyvufWnYVRjqoWJ8y5oA==\"\r\nUser-Agent: Akkoma 3.9.3-28-g9d7c877d; https://zoner.gay <fencore@zoner.work>\r\nX-Forwarded-For: 172.19.0.3\r\nX-Forwarded-Host: wf.zoner.gay\r\nX-Forwarded-Proto: https\r\n\r\n{\"@context\":[\"https://www.w3.org/ns/activitystreams\",\"https://zoner.gay/schemas/litepub-0.1.jsonld\",{\"@language\":\"und\"}],\"actor\":\"https://zoner.gay/users/fen\",\"bcc\":[],\"bto\":[],\"cc\":[],\"id\":\"https://zoner.gay/activities/afdd3579-4cba-409d-a56f-13c7fe25c030\",\"object\":\"https://wf.zoner.gay/api/collections/fen\",\"state\":\"pending\",\"to\":[\"https://wf.zoner.gay/api/collections/fen\"],\"type\":\"Follow\"}"
2023/08/10 22:20:42 Follow: {"@context":["https://www.w3.org/ns/activitystreams"],"actor":"https://zoner.gay/users/fen","bcc":[],"bto":[],"cc":[],"id":"https://zoner.gay/activities/afdd3579-4cba-409d-a56f-13c7fe25c030","object":"https://wf.zoner.gay/api/collections/fen","state":"pending","to":["https://wf.zoner.gay/api/collections/fen"],"type":"Follow"}
2023/08/10 22:20:42 Fetching actor https://zoner.gay/users/fen locally
2023/08/10 22:20:42 Not found; fetching actor https://zoner.gay/users/fen remotely
2023/08/10 22:20:42 GET https://zoner.gay/users/fen
2023/08/10 22:20:42 GET /users/fen HTTP/1.1
Host: zoner.gay
User-Agent: Go (WriteFreely/0.13.2; +https://wf.zoner.gay)
Accept: application/activity+json
Date: Thu, 10 Aug 2023 22:20:42 GMT
Digest: SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
Signature: keyId="https://wf.zoner.gay/api/collections/wf.zoner.gay#main-key",algorithm="rsa-sha256",headers="(request-target) date host digest",signature="sAH7Q4DZM1xX5Are02inkL77wVhGAMhk8Y7sBq1o7p3iva3ZvF9cT7xP5e/mC7ibOkyTelfEOyJW5Z9UcUMwaJrLGD3yDlk8Sw58HfngpXRFVF3DT0BTQ6FQ+yZD4XHbgHwxsgqnOkWt/KOKMjLLBZK0Ml59DlKC47x890Vh+0i5Hh0GFrDrC1/rZLhdOZUBGOCWjkWI4PIcG00nJYPmveudgzLTnkF8D7Peh9oq/JFDXodmT/K+7CIvqD01Oett+gNG3hiBn6mjcKyzEGauqQGlGyEE82iZscp7eO+/4d72J8p2vwZDO32jhYF9xp9A9b1GOqlwBsOXtORlZhpBkg=="
Accept-Encoding: gzip

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x1d3560 pc=0x7ff08f6532f2]

runtime stack:
runtime.throw({0x164cafe?, 0x353?})
        /usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7ff08fffdfc8 sp=0x7ff08fffdf98 pc=0x43859d
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_unix.go:819 +0x369 fp=0x7ff08fffe018 sp=0x7ff08fffdfc8 pc=0x44e249

goroutine 249 [syscall]:
runtime.cgocall(0x1334f30, 0xc00098c598)
        /usr/local/go/src/runtime/cgocall.go:158 +0x5c fp=0xc00098c570 sp=0xc00098c538 pc=0x405bfc
net._C2func_getaddrinfo(0xc000a4a886, 0x0, 0xc000612c60, 0xc000823528)
        _cgo_gotypes.go:94 +0x56 fp=0xc00098c598 sp=0xc00098c570 pc=0x679e96
net.cgoLookupIPCNAME.func1({0xc000a4a886, 0x0?, 0x8?}, 0xc000a4a8a0?, 0xc00007ddb0?)
        /usr/local/go/src/net/cgo_unix.go:160 +0x9f fp=0xc00098c5f0 sp=0xc00098c598 pc=0x67b73f
net.cgoLookupIPCNAME({0x1620523, 0x3}, {0xc000a4a8a0, 0x9})
        /usr/local/go/src/net/cgo_unix.go:160 +0x173 fp=0xc00098c738 sp=0xc00098c5f0 pc=0x67af93
net.cgoIPLookup(0xc00007ddb0?, {0x1620523?, 0xc00098c7d0?}, {0xc000a4a8a0?, 0xc0005ca1e0?})
        /usr/local/go/src/net/cgo_unix.go:217 +0x3b fp=0xc00098c7a8 sp=0xc00098c738 pc=0x67b7fb
net.cgoLookupIP.func1()
        /usr/local/go/src/net/cgo_unix.go:227 +0x36 fp=0xc00098c7e0 sp=0xc00098c7a8 pc=0x67bc36
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00098c7e8 sp=0xc00098c7e0 pc=0x4691a1
created by net.cgoLookupIP
        /usr/local/go/src/net/cgo_unix.go:227 +0x12a

goroutine 1 [IO wait]:
runtime.gopark(0xc0009277a8?, 0x4194f3?, 0x0?, 0x20?, 0xc0009277c0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000927750 sp=0xc000927730 pc=0x43b1b6
runtime.netpollblock(0x41980d?, 0x4?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc000927788 sp=0xc000927750 pc=0x433cd7
internal/poll.runtime_pollWait(0x7ff094a6a058, 0x72)
        /usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc0009277a8 sp=0xc000927788 pc=0x463b69
internal/poll.(*pollDesc).wait(0xc000204080?, 0xc000927818?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc0009277d0 sp=0xc0009277a8 pc=0x4cd772
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc000204080)
        /usr/local/go/src/internal/poll/fd_unix.go:614 +0x234 fp=0xc000927868 sp=0xc0009277d0 pc=0x4d29f4
net.(*netFD).accept(0xc000204080)
        /usr/local/go/src/net/fd_unix.go:172 +0x35 fp=0xc000927920 sp=0xc000927868 pc=0x65e695
net.(*TCPListener).accept(0xc000776048)
        /usr/local/go/src/net/tcpsock_posix.go:142 +0x28 fp=0xc000927950 sp=0xc000927920 pc=0x673828
net.(*TCPListener).Accept(0xc000776048)
        /usr/local/go/src/net/tcpsock.go:288 +0x3d fp=0xc000927980 sp=0xc000927950 pc=0x6729fd
net/http.(*onceCloseListener).Accept(0xc00098e140?)
        <autogenerated>:1 +0x2a fp=0xc000927998 sp=0xc000927980 pc=0x78b4ca
net/http.(*Server).Serve(0xc00097c0f0, {0x17a3a98, 0xc000776048})
        /usr/local/go/src/net/http/server.go:3070 +0x385 fp=0xc000927ac8 sp=0xc000927998 pc=0x7664e5
net/http.(*Server).ListenAndServe(0xc00097c0f0)
        /usr/local/go/src/net/http/server.go:2999 +0x7d fp=0xc000927af8 sp=0xc000927ac8 pc=0x76611d
net/http.ListenAndServe(...)
        /usr/local/go/src/net/http/server.go:3255
github.com/writefreely/writefreely.Serve(0xc000072120, 0xc0001ea000)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/app.go:508 +0xb12 fp=0xc000927c78 sp=0xc000927af8 pc=0x11eeef2
main.legacyActions(0xc00033fcc0?)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/cmd/writefreely/main.go:172 +0x385 fp=0xc000927d08 sp=0xc000927c78 pc=0x126c0e5
github.com/urfave/cli/v2.(*App).RunContext(0xc0000851e0, {0x17a41f0?, 0xc000098000}, {0xc0000a6000, 0x2, 0x2})
        /home/matt/projects/go/pkg/mod/github.com/urfave/cli/v2@v2.5.1/app.go:322 +0x97c fp=0xc000927e98 sp=0xc000927d08 pc=0x57ec3c
github.com/urfave/cli/v2.(*App).Run(...)
        /home/matt/projects/go/pkg/mod/github.com/urfave/cli/v2@v2.5.1/app.go:224
main.main()
        /home/matt/projects/go/src/github.com/writefreely/writefreely/cmd/writefreely/main.go:118 +0x7dc fp=0xc000927f80 sp=0xc000927e98 pc=0x126bcfc
runtime.main()
        /usr/local/go/src/runtime/proc.go:250 +0x212 fp=0xc000927fe0 sp=0xc000927f80 pc=0x43adf2
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000927fe8 sp=0xc000927fe0 pc=0x4691a1

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000048fb0 sp=0xc000048f90 pc=0x43b1b6
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc000048fe0 sp=0xc000048fb0 pc=0x43b04d
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000048fe8 sp=0xc000048fe0 pc=0x4691a1
created by runtime.init.6
        /usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000049790 sp=0xc000049770 pc=0x43b1b6
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
        /usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc0000497c8 sp=0xc000049790 pc=0x426d37
runtime.gcenable.func1()
        /usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000497e0 sp=0xc0000497c8 pc=0x41b9a6
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000497e8 sp=0xc0000497e0 pc=0x4691a1
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x2198260?, 0x179d6b0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000049f70 sp=0xc000049f50 pc=0x43b1b6
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x2198260)
        /usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000049fa0 sp=0xc000049f70 pc=0x424d93
runtime.bgscavenge(0x0?)
        /usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc000049fc8 sp=0xc000049fa0 pc=0x425385
runtime.gcenable.func2()
        /usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000049fe0 sp=0xc000049fc8 pc=0x41b946
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000049fe8 sp=0xc000049fe0 pc=0x4691a1
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 18 [finalizer wait]:
runtime.gopark(0x2198d40?, 0xc0000841a0?, 0x0?, 0x0?, 0xc000048770?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000048628 sp=0xc000048608 pc=0x43b1b6
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc0000487e0 sp=0xc000048628 pc=0x41aaaf
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000487e8 sp=0xc0000487e0 pc=0x4691a1
created by runtime.createfing
        /usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 19 [GC worker (idle)]:
runtime.gopark(0x834e720f895d?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000044750 sp=0xc000044730 pc=0x43b1b6
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000447e0 sp=0xc000044750 pc=0x41daf1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000447e8 sp=0xc0000447e0 pc=0x4691a1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 5 [GC worker (idle)]:
runtime.gopark(0x834e71eeb436?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00004a750 sp=0xc00004a730 pc=0x43b1b6
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00004a7e0 sp=0xc00004a750 pc=0x41daf1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00004a7e8 sp=0xc00004a7e0 pc=0x4691a1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 243 [syscall]:
runtime.notetsleepg(0x0?, 0x0?)
        /usr/local/go/src/runtime/lock_futex.go:236 +0x34 fp=0xc000045fa0 sp=0xc000045f68 pc=0x40dff4
os/signal.signal_recv()
        /usr/local/go/src/runtime/sigqueue.go:152 +0x2f fp=0xc000045fc0 sp=0xc000045fa0 pc=0x465b8f
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x19 fp=0xc000045fe0 sp=0xc000045fc0 pc=0x7fa759
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000045fe8 sp=0xc000045fe0 pc=0x4691a1
created by os/signal.Notify.func1.1
        /usr/local/go/src/os/signal/signal.go:151 +0x2a

goroutine 242 [select, locked to thread]:
runtime.gopark(0xc0000457a8?, 0x2?, 0xa0?, 0x61?, 0xc0000457a4?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000045618 sp=0xc0000455f8 pc=0x43b1b6
runtime.selectgo(0xc0000457a8, 0xc0000457a0, 0x0?, 0x0, 0x8?, 0x1)
        /usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000045758 sp=0xc000045618 pc=0x44a61c
runtime.ensureSigM.func1()
        /usr/local/go/src/runtime/signal_unix.go:991 +0x1b0 fp=0xc0000457e0 sp=0xc000045758 pc=0x44e6f0
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000457e8 sp=0xc0000457e0 pc=0x4691a1
created by runtime.ensureSigM
        /usr/local/go/src/runtime/signal_unix.go:974 +0xbd

goroutine 235 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00098b6e0 sp=0xc00098b6c0 pc=0x43b1b6
runtime.chanrecv(0xc000910660, 0x0, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc00098b770 sp=0xc00098b6e0 pc=0x408bfb
runtime.chanrecv1(0x0?, 0x0?)
        /usr/local/go/src/runtime/chan.go:442 +0x18 fp=0xc00098b798 sp=0xc00098b770 pc=0x4086f8
github.com/writefreely/writefreely.Serve.func1()
        /home/matt/projects/go/src/github.com/writefreely/writefreely/app.go:437 +0x28 fp=0xc00098b7e0 sp=0xc00098b798 pc=0x11ef448
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00098b7e8 sp=0xc00098b7e0 pc=0x4691a1
created by github.com/writefreely/writefreely.Serve
        /home/matt/projects/go/src/github.com/writefreely/writefreely/app.go:436 +0x16a

goroutine 238 [select]:
runtime.gopark(0xc0009226f0?, 0x4?, 0x18?, 0x0?, 0xc000922598?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0009223f0 sp=0xc0009223d0 pc=0x43b1b6
runtime.selectgo(0xc0009226f0, 0xc000922590, 0xc0005b49a0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000922530 sp=0xc0009223f0 pc=0x44a61c
net/http.(*Transport).getConn(0x2132400, 0xc0009677c0, {{}, 0x0, {0xc0002bc270, 0x5}, {0xc000a4a8a0, 0xd}, 0x0})
        /usr/local/go/src/net/http/transport.go:1376 +0x5c6 fp=0xc000922748 sp=0xc000922530 pc=0x776506
net/http.(*Transport).roundTrip(0x2132400, 0xc000444f00)
        /usr/local/go/src/net/http/transport.go:582 +0x75e fp=0xc000922970 sp=0xc000922748 pc=0x77219e
net/http.(*Transport).RoundTrip(0xc000444f00?, 0x17a07a0?)
        /usr/local/go/src/net/http/roundtrip.go:17 +0x19 fp=0xc000922990 sp=0xc000922970 pc=0x759d99
net/http.send(0xc00088dd00, {0x17a07a0, 0x2132400}, {0x15318c0?, 0x488401?, 0x2198140?})
        /usr/local/go/src/net/http/client.go:251 +0x5f7 fp=0xc000922b88 sp=0xc000922990 pc=0x7167f7
net/http.(*Client).send(0xc0005e9b30, 0xc00088dd00, {0x0?, 0xc0008c9140?, 0x2198140?})
        /usr/local/go/src/net/http/client.go:175 +0x9b fp=0xc000922c00 sp=0xc000922b88 pc=0x71607b
net/http.(*Client).do(0xc0005e9b30, 0xc00088dd00)
        /usr/local/go/src/net/http/client.go:715 +0x8fc fp=0xc000922df0 sp=0xc000922c00 pc=0x7183fc
net/http.(*Client).Do(...)
        /usr/local/go/src/net/http/client.go:581
github.com/writefreely/writefreely.resolveIRI({0xc00002cb88, 0x14}, {0xc0002bc270, 0x1b})
        /home/matt/projects/go/src/github.com/writefreely/writefreely/activitypub.go:596 +0x6f5 fp=0xc000923058 sp=0xc000922df0 pc=0x11e38b5
github.com/writefreely/writefreely.getActor(0xc000072120, {0xc0002bc270, 0x1b})
        /home/matt/projects/go/src/github.com/writefreely/writefreely/activitypub.go:806 +0x1ad fp=0xc0009230f0 sp=0xc000923058 pc=0x11e5eed
github.com/writefreely/writefreely.handleFetchCollectionInbox.func1(0xc00067ec70)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/activitypub.go:372 +0x618 fp=0xc000923280 sp=0xc0009230f0 pc=0x11e2598
github.com/writeas/activity/streams.(*Resolver).Deserialize(0xc0009236b0, 0x0?)
        /home/matt/projects/go/pkg/mod/github.com/writeas/activity@v0.1.2/streams/gen_streams.go:1337 +0x10bb fp=0xc000923500 sp=0xc000923280 pc=0x108c33b
github.com/writefreely/writefreely.handleFetchCollectionInbox(0xc000072120, {0x17a3ca8, 0xc0009bc0e0}, 0xc00088db00)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/activitypub.go:411 +0x709 fp=0xc000923888 sp=0xc000923500 pc=0x11e0c29
github.com/writefreely/writefreely.(*Handler).All.func1.1({0x17a3ca8, 0xc0009bc0e0}, 0xc0008d3a10, 0xc00088db00, 0x16aad78)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/handle.go:563 +0x13e fp=0xc000923928 sp=0xc000923888 pc=0x121b4fe
github.com/writefreely/writefreely.(*Handler).All.func1({0x17a3ca8, 0xc0009bc0e0}, 0xc0005cdb30?)
        /home/matt/projects/go/src/github.com/writefreely/writefreely/handle.go:573 +0x3b fp=0xc000923978 sp=0xc000923928 pc=0x121b35b
net/http.HandlerFunc.ServeHTTP(0xc00088da00?, {0x17a3ca8?, 0xc0009bc0e0?}, 0xc000a379e0?)
        /usr/local/go/src/net/http/server.go:2109 +0x2f fp=0xc0009239a0 sp=0xc000923978 pc=0x762b8f
github.com/gorilla/mux.(*Router).ServeHTTP(0xc0001ea000, {0x17a3ca8, 0xc0009bc0e0}, 0xc000444100)
        /home/matt/projects/go/pkg/mod/github.com/gorilla/mux@v1.8.0/mux.go:210 +0x1cf fp=0xc000923ac8 sp=0xc0009239a0 pc=0x7b3fef
net/http.serverHandler.ServeHTTP({0x17a2af0?}, {0x17a3ca8, 0xc0009bc0e0}, 0xc000444100)
        /usr/local/go/src/net/http/server.go:2947 +0x30c fp=0xc000923b78 sp=0xc000923ac8 pc=0x765f8c
net/http.(*conn).serve(0xc00098e140, {0x17a4260, 0xc0005a90e0})
        /usr/local/go/src/net/http/server.go:1991 +0x607 fp=0xc000923fb8 sp=0xc000923b78 pc=0x761667
net/http.(*Server).Serve.func3()
        /usr/local/go/src/net/http/server.go:3102 +0x2e fp=0xc000923fe0 sp=0xc000923fb8 pc=0x7668ce
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000923fe8 sp=0xc000923fe0 pc=0x4691a1
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:3102 +0x4db

goroutine 240 [IO wait]:
runtime.gopark(0x8?, 0xb?, 0x0?, 0x0?, 0x8?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00098bde8 sp=0xc00098bdc8 pc=0x43b1b6
runtime.netpollblock(0x47afa5?, 0x4cd465?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc00098be20 sp=0xc00098bde8 pc=0x433cd7
internal/poll.runtime_pollWait(0x7ff094a69f68, 0x72)
        /usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc00098be40 sp=0xc00098be20 pc=0x463b69
internal/poll.(*pollDesc).wait(0xc000204200?, 0xc0005ca1f1?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc00098be68 sp=0xc00098be40 pc=0x4cd772
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000204200, {0xc0005ca1f1, 0x1, 0x1})
        /usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a fp=0xc00098bee8 sp=0xc00098be68 pc=0x4ceada
net.(*netFD).Read(0xc000204200, {0xc0005ca1f1?, 0xc0009675d8?, 0xc00098bf68?})
        /usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc00098bf30 sp=0xc00098bee8 pc=0x65c589
net.(*conn).Read(0xc00067e300, {0xc0005ca1f1?, 0xc000a1e4b0?, 0x0?})
        /usr/local/go/src/net/net.go:183 +0x45 fp=0xc00098bf78 sp=0xc00098bf30 pc=0x66ab85
net/http.(*connReader).backgroundRead(0xc0005ca1e0)
        /usr/local/go/src/net/http/server.go:678 +0x3f fp=0xc00098bfc8 sp=0xc00098bf78 pc=0x75b3ff
net/http.(*connReader).startBackgroundRead.func2()
        /usr/local/go/src/net/http/server.go:674 +0x26 fp=0xc00098bfe0 sp=0xc00098bfc8 pc=0x75b326
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00098bfe8 sp=0xc00098bfe0 pc=0x4691a1
created by net/http.(*connReader).startBackgroundRead
        /usr/local/go/src/net/http/server.go:674 +0xca

goroutine 248 [select]:
runtime.gopark(0xc00052cc28?, 0x2?, 0x4b?, 0x8e?, 0xc00052cc0c?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00052ca98 sp=0xc00052ca78 pc=0x43b1b6
runtime.selectgo(0xc00052cc28, 0xc00052cc08, 0xc0001a0965?, 0x0, 0xc00098e028?, 0x1)
        /usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc00052cbd8 sp=0xc00052ca98 pc=0x44a61c
net.cgoLookupIP({0x17a41b8, 0xc000967840}, {0x1620523, 0x3}, {0xc000a4a8a0, 0x9})
        /usr/local/go/src/net/cgo_unix.go:228 +0x1aa fp=0xc00052ccc8 sp=0xc00052cbd8 pc=0x67ba4a
net.(*Resolver).lookupIP(0x2197460, {0x17a41b8, 0xc000967840}, {0x1620523, 0x3}, {0xc000a4a8a0, 0x9})
        /usr/local/go/src/net/lookup_unix.go:74 +0x128 fp=0xc00052ce18 sp=0xc00052ccc8 pc=0x66a608
net.(*Resolver).lookupIP-fm({0x17a41b8?, 0xc000967840?}, {0x1620523?, 0x0?}, {0xc000a4a8a0?, 0xc00098dd47?})
        <autogenerated>:1 +0x5b fp=0xc00052ce60 sp=0xc00052ce18 pc=0x67ec7b
net.glob..func1({0x17a41b8?, 0xc000967840?}, 0x0?, {0x1620523?, 0xc00098dfb8?}, {0xc000a4a8a0?, 0x777190?})
        /usr/local/go/src/net/hook.go:23 +0x3d fp=0xc00052cea0 sp=0xc00052ce60 pc=0x65ebdd
net.(*Resolver).lookupIPAddr.func1()
        /usr/local/go/src/net/lookup.go:321 +0x9f fp=0xc00052cf38 sp=0xc00052cea0 pc=0x669a7f
internal/singleflight.(*Group).doCall(0x2197470, 0xc00007dea0, {0xc000a4a8b0, 0xd}, 0xc000132d10?)
        /usr/local/go/src/internal/singleflight/singleflight.go:95 +0x3b fp=0xc00052cfa8 sp=0xc00052cf38 pc=0x64dbfb
internal/singleflight.(*Group).DoChan.func1()
        /usr/local/go/src/internal/singleflight/singleflight.go:88 +0x36 fp=0xc00052cfe0 sp=0xc00052cfa8 pc=0x64db96
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00052cfe8 sp=0xc00052cfe0 pc=0x4691a1
created by internal/singleflight.(*Group).DoChan
        /usr/local/go/src/internal/singleflight/singleflight.go:88 +0x315

goroutine 220 [select]:
runtime.gopark(0xc000747f88?, 0x2?, 0x78?, 0x7f?, 0xc000747f84?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000747e10 sp=0xc000747df0 pc=0x43b1b6
runtime.selectgo(0xc000747f88, 0xc000747f80, 0xc000747fa0?, 0x0, 0x20?, 0x1)
        /usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000747f50 sp=0xc000747e10 pc=0x44a61c
database/sql.(*DB).connectionOpener(0xc0008ca820, {0x17a41b8, 0xc0008c5840})
        /usr/local/go/src/database/sql/sql.go:1224 +0x8d fp=0xc000747fb8 sp=0xc000747f50 pc=0x7c7e6d
database/sql.OpenDB.func1()
        /usr/local/go/src/database/sql/sql.go:792 +0x2e fp=0xc000747fe0 sp=0xc000747fb8 pc=0x7c624e
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000747fe8 sp=0xc000747fe0 pc=0x4691a1
created by database/sql.OpenDB
        /usr/local/go/src/database/sql/sql.go:792 +0x18d

goroutine 247 [select]:
runtime.gopark(0xc000a394d8?, 0x2?, 0xe0?, 0x92?, 0xc000a3941c?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a39258 sp=0xc000a39238 pc=0x43b1b6
runtime.selectgo(0xc000a394d8, 0xc000a39418, 0xd?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a39398 sp=0xc000a39258 pc=0x44a61c
net.(*Resolver).lookupIPAddr(0x2197460, {0x17a4228?, 0xc000494960}, {0x1620523, 0x3}, {0xc000a4a8a0, 0x9})
        /usr/local/go/src/net/lookup.go:327 +0x51b fp=0xc000a395a8 sp=0xc000a39398 pc=0x6691db
net.(*Resolver).internetAddrList(0x17a4228?, {0x17a4228?, 0xc000494960?}, {0x1620523, 0x3}, {0xc000a4a8a0?, 0xd?})
        /usr/local/go/src/net/ipsock.go:288 +0x67a fp=0xc000a396c8 sp=0xc000a395a8 pc=0x666fda
net.(*Resolver).resolveAddrList(0x234f030?, {0x17a4228, 0xc000494960}, {0x1620da1, 0x4}, {0x1620523?, 0x432250?}, {0xc000a4a8a0, 0xd}, {0x0, ...})
        /usr/local/go/src/net/dial.go:222 +0x41b fp=0xc000a397d0 sp=0xc000a396c8 pc=0x65195b
net.(*Dialer).DialContext(0xc0000a41e0, {0x17a4228, 0xc000494960}, {0x1620523, 0x3}, {0xc000a4a8a0, 0xd})
        /usr/local/go/src/net/dial.go:410 +0x448 fp=0xc000a39920 sp=0xc000a397d0 pc=0x652908
net.(*Dialer).DialContext-fm({0x17a4228?, 0xc000494960?}, {0x1620523?, 0xc00052c9b0?}, {0xc000a4a8a0?, 0x17a41f0?})
        <autogenerated>:1 +0x5b fp=0xc000a39968 sp=0xc000a39920 pc=0x78c4db
net/http.(*Transport).dial(0xc000a18c60?, {0x17a4228?, 0xc000494960?}, {0x1620523?, 0x6ea01f?}, {0xc000a4a8a0?, 0x11?})
        /usr/local/go/src/net/http/transport.go:1170 +0xda fp=0xc000a399c0 sp=0xc000a39968 pc=0x77581a
net/http.(*Transport).dialConn(0x2132400, {0x17a4228, 0xc000494960}, {{}, 0x0, {0xc0002bc270, 0x5}, {0xc000a4a8a0, 0xd}, 0x0})
        /usr/local/go/src/net/http/transport.go:1608 +0x83f fp=0xc000a39ed8 sp=0xc000a399c0 pc=0x7788ff
net/http.(*Transport).dialConnFor(0x77a2e6?, 0xc000132d10)
        /usr/local/go/src/net/http/transport.go:1450 +0xb0 fp=0xc000a39fc0 sp=0xc000a39ed8 pc=0x777190
net/http.(*Transport).queueForDial.func1()
        /usr/local/go/src/net/http/transport.go:1419 +0x2a fp=0xc000a39fe0 sp=0xc000a39fc0 pc=0x7770aa
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a39fe8 sp=0xc000a39fe0 pc=0x4691a1
created by net/http.(*Transport).queueForDial
        /usr/local/go/src/net/http/transport.go:1419 +0x3f2

It looks like you might’ve run into the same issue with DNS resolution reported here: Segmentation fault from release binary · Issue #675 · writefreely/writefreely · GitHub

You could try the workaround mentioned in that comment / discussion, and it should fix things for now. Otherwise the next release will make sure this doesn’t happen.

I’ve updated my config.ini to explicitly use 127.0.0.1 and added the env variable and am now able to properly follow the blog from elsewhere. Thanks very much for your help!

1 Like

No problem – glad that helped!