You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been experiencing this for some time but got away with it since isn't deterministic.
I took a moment and created this test case that could be used in /cli or somewhere to reproduce the problem.
func TestClientChainNotifyBlock(t *testing.T) {
api, closer, err := client.NewFullNodeRPC("ws://127.0.0.1:1234/rpc/v0", http.Header{"Authorization": []string{"Bearer <putyourauthtokenhere>"}})
if err != nil {
panic(err)
}
defer closer()
numchans := 5
chans := make([]<-chan []*store.HeadChange, 0)
for i := 0; i < numchans; i++ {
ch, err := api.ChainNotify(context.Background())
if err != nil {
panic(err)
}
chans = append(chans, ch)
}
for _, c := range chans {
<-c
}
}
Run with: go test ./cli -run TestClientChainNotifyBlock -count 1000 (or in whatever package it is)
This can show two problems:
If the command is run multiple times, it eventually blocks on some run. When gets blocked, the lotus node start seeing that things get queued:
2020-01-20T14:05:18.402-0300 WARN chainstore store/store.go:174 head change sub is slow, has 1 buffered entries
2020-01-20T14:05:18.402-0300 WARN chainstore store/store.go:174 head change sub is slow, has 1 buffered entries
2020-01-20T14:05:18.402-0300 WARN chainstore store/store.go:174 head change sub is slow, has 2 buffered entries
If you Ctrl+C, it makes the Lotus node panic (may need some retries to popup):
I've been experiencing this for some time but got away with it since isn't deterministic.
I took a moment and created this test case that could be used in
/cli
or somewhere to reproduce the problem.Run with:
go test ./cli -run TestClientChainNotifyBlock -count 1000
(or in whatever package it is)This can show two problems:
The text was updated successfully, but these errors were encountered: