Open grubles opened 2 months ago
Can you share the snippet of code that is causing the crash? ie. /home/user/builds/peerswap/poll/service.go:98
Looks like that is referring to this function:
// Start the poll message loop and send the poll
// messages on every tick.
func (s *Service) Start() {
// Request fresh polls from all peers on startup
s.RequestAllPeerPolls()
// Start poll loop
go func() {
for {
select {
case now := <-s.clock.C:
// remove unseen
s.store.RemoveUnseen(now, s.removeDuration)
// poll
s.PollAllPeers()
case <-s.ctx.Done():
return
}
}
}()
}
For rpctxwatcher.go:209
:
func (l *BlockchainRpcTxWatcher) AddWaitForConfirmationTx(swapId, txId string, vout, startingBlockheight uint32, _ []byte) {
log.Infof("adding tx watcher for %s", swapId)
ctx, cancel := context.WithCancel(context.Background())
newBlock := make(chan uint32)
info := observerInfo{
cancel: cancel,
blockChan: newBlock,
}
go l.observationLoop(ctx, swapId, txId, vout, startingBlockheight, l.csv/2, newBlock)
l.Lock()
defer l.Unlock()
l.observerLoopList[swapId] = info
// Kick off first run manually, after that is only invoked on new blocks.
height, _ := l.blockchain.GetBlockHeight()
newBlock <- uint32(height)
}
Maybe relevant? make test
prints this error repeatedly:
$ pwd
/home/user/builds/peerswap
$ make test
PAYMENT_RETRY_TIME=5 go test -tags dev -tags fast_test -race -timeout=10m -v ./...
# github.com/elementsproject/peerswap/log.test
/usr/lib/go/pkg/tool/linux_ppc64le/link: running gcc failed: exit status 1
/usr/lib/gcc/powerpc64le-alpine-linux-musl/13.2.1/../../../../powerpc64le-alpine-linux-musl/bin/ld: /tm
p/go-link-3774122030/000002.o: in function `__sanitizer::WriteOneLineToSyslog(char const*)':
gotsan.cpp:(.text+0x81a8): undefined reference to `__syslog_chk'
collect2: error: ld returned 1 exit status
Anything else I can provide to help debug this?
In PeerSwap we use go-secp256k1-zkp. When attempting an L-BTC swap, a segmentation violation occurs. Here are the logs from PeerSwap's
peerswap-panic-log
. This seems to only happen on Alpine Linux. Opening a ticket here for now since I'm not sure where it should exist.