vocdoni-node icon indicating copy to clipboard operation
vocdoni-node copied to clipboard

Data race on libp2p and IPFS

Open p4u opened this issue 2 years ago • 1 comments

==================
WARNING: DATA RACE
Write at 0x00c002837e70 by goroutine 128:
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).UntagPeer()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:448 +0x20c
  github.com/libp2p/go-libp2p-kad-dht.makeRoutingTable.func3()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/dht.go:407 +0x95
  github.com/libp2p/go-libp2p-kbucket.(*RoutingTable).removePeer()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/table.go:341 +0x5ac
  github.com/libp2p/go-libp2p-kbucket.(*RoutingTable).addPeer()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/table.go:224 +0x9e4
  github.com/libp2p/go-libp2p-kbucket.(*RoutingTable).TryAddPeer()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/table.go:139 +0xea
  github.com/libp2p/go-libp2p-kad-dht.(*IpfsDHT).rtPeerLoop()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/dht.go:587 +0x371
  github.com/libp2p/go-libp2p-kad-dht.(*IpfsDHT).rtPeerLoop-fm()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/dht.go:571 +0x4d
  github.com/jbenet/goprocess.(*process).Go.func1()
      /home/vocdoni/go/pkg/mod/github.com/jbenet/[email protected]/impl-mutex.go:134 +0x4e

Previous read at 0x00c002837e70 by goroutine 73:
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).getConnsToClose.func1()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:357 +0x148
  sort.doPivot_func()
      /usr/local/go/src/sort/zfuncversion.go:87 +0x1fc
  sort.quickSort_func()
      /usr/local/go/src/sort/zfuncversion.go:143 +0xca
  sort.Slice()
      /usr/local/go/src/sort/slice.go:20 +0xc8
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).getConnsToClose()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:350 +0x4c4
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).trim()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:290 +0x1fd
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).background()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:256 +0x292
  github.com/libp2p/go-libp2p-connmgr.NewConnManager·dwrap·1()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:140 +0x39

Goroutine 128 (running) created at:
  github.com/jbenet/goprocess.(*process).Go()
      /home/vocdoni/go/pkg/mod/github.com/jbenet/[email protected]/impl-mutex.go:133 +0x518
  github.com/libp2p/go-libp2p-kad-dht.New()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/dht.go:230 +0xd79
  github.com/libp2p/go-libp2p-kad-dht/dual.New()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/dual/dual.go:124 +0x73c
  github.com/ipfs/go-ipfs/core/node/libp2p.constructDHTRouting.func1()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/node/libp2p/routingopt.go:37 +0x39e
  github.com/ipfs/go-ipfs/core/node/libp2p.Host.func1()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/node/libp2p/host.go:57 +0x127
  github.com/libp2p/go-libp2p/config.(*Config).NewNode()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/config/config.go:240 +0x461
  github.com/libp2p/go-libp2p.NewWithoutDefaults()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/libp2p.go:71 +0x104
  github.com/libp2p/go-libp2p.New()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/libp2p.go:57 +0x288
  github.com/ipfs/go-ipfs/core/node/libp2p.constructPeerHost()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/node/libp2p/hostopt.go:24 +0x289
  github.com/ipfs/go-ipfs/core/node/libp2p.Host()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/node/libp2p/host.go:67 +0x4dc
  runtime.call256()
      /usr/local/go/src/runtime/asm_amd64.s:629 +0x6d
  reflect.Value.Call()
      /usr/local/go/src/reflect/value.go:339 +0xd7
  go.uber.org/dig.defaultInvoker()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:284 +0x7e
  go.uber.org/dig.(*node).Call()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:710 +0x3c2
  go.uber.org/dig.paramSingle.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:245 +0x328
  go.uber.org/dig.(*paramSingle).Build()
      <autogenerated>:1 +0xcd
  go.uber.org/dig.paramList.BuildList()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:201 +0xfb
  go.uber.org/dig.(*node).Call()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:701 +0x134
  go.uber.org/dig.paramSingle.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:245 +0x328
  go.uber.org/dig.(*paramSingle).Build()
      <autogenerated>:1 +0xcd
  go.uber.org/dig.paramList.BuildList()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:201 +0xfb
  go.uber.org/dig.(*Container).Invoke()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:432 +0x39a
  go.uber.org/fx.(*App).executeInvokes()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/app.go:692 +0x299
  go.uber.org/fx.New()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/app.go:471 +0xbea
  github.com/ipfs/go-ipfs/core.NewNode()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/builder.go:41 +0x285
  go.vocdoni.io/dvote/ipfs.StartNode()
      /home/vocdoni/go-dvote/ipfs/ipfs.go:72 +0x23c
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x201
  github.com/syndtr/goleveldb/leveldb.openDB()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:136 +0x895
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x21d
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x16e
  fmt.(*ss).doScanf()
      /usr/local/go/src/fmt/scan.go:1230 +0x418
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:482 +0xac
  github.com/syndtr/goleveldb/leveldb.openDB()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:131 +0x87c
  github.com/syndtr/goleveldb/leveldb.Open()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:203 +0x364
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.fsParseNamePtr()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:666 +0x15a
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta.func1()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:332 +0xe6
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta.func2()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:356 +0x124
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:407 +0x57b
  github.com/syndtr/goleveldb/leveldb.(*session).recover()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:140 +0x105
  github.com/syndtr/goleveldb/leveldb.Open()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:189 +0x107
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:225 +0x84
  github.com/ipfs/go-ds-leveldb.NewDatastore()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/datastore.go:46 +0x1e4
  github.com/ipfs/go-ipfs/plugin/plugins/levelds.(*datastoreConfig).Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/plugin/plugins/levelds/levelds.go:85 +0x125
  github.com/ipfs/go-ipfs/repo/fsrepo.measureDatastoreConfig.Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/datastores.go:243 +0x77
  github.com/ipfs/go-ipfs/repo/fsrepo.(*measureDatastoreConfig).Create()
      <autogenerated>:1 +0x84
  github.com/ipfs/go-ipfs/repo/fsrepo.(*mountDatastoreConfig).Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/datastores.go:154 +0x145
  github.com/ipfs/go-ipfs/repo/fsrepo.(*FSRepo).openDatastore()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:440 +0x3de
  github.com/ipfs/go-ipfs/repo/fsrepo.open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:169 +0x3fa
  github.com/ipfs/go-ipfs/repo/fsrepo.Open.func1()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:113 +0x3e
  github.com/ipfs/go-ipfs/repo.(*OnlyOne).Open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/onlyone.go:35 +0x1d4
  github.com/ipfs/go-ipfs/repo/fsrepo.Open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:115 +0x84
  go.vocdoni.io/dvote/ipfs.StartNode()
      /home/vocdoni/go-dvote/ipfs/ipfs.go:53 +0x13c
  go.vocdoni.io/dvote/data.(*IPFSHandle).Init()
      /home/vocdoni/go-dvote/data/ipfs.go:68 +0x250
  go.vocdoni.io/dvote/data.Init()
      /home/vocdoni/go-dvote/data/data.go:57 +0xb9
  go.vocdoni.io/dvote/service.IPFS()
      /home/vocdoni/go-dvote/service/storage.go:23 +0x1b6
  main.main()
      /home/vocdoni/go-dvote/cmd/dvotenode/dvotenode.go:487 +0x1f6e

Goroutine 73 (running) created at:
  github.com/libp2p/go-libp2p-connmgr.NewConnManager()
      /home/vocdoni/go/pkg/mod/github.com/libp2p/[email protected]/connmgr.go:140 +0x6e7
  github.com/ipfs/go-ipfs/core/node/libp2p.ConnectionManager.func1()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/node/libp2p/libp2p.go:33 +0x86
  runtime.call16()
      /usr/local/go/src/runtime/asm_amd64.s:625 +0x48
  reflect.Value.Call()
      /usr/local/go/src/reflect/value.go:339 +0xd7
  go.uber.org/dig.defaultInvoker()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:284 +0x7e
  go.uber.org/dig.(*node).Call()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:710 +0x3c2
  go.uber.org/dig.paramGroupedSlice.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:446 +0x11a
  go.uber.org/dig.(*paramGroupedSlice).Build()
      <autogenerated>:1 +0x86
  go.uber.org/dig.paramObjectField.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:384 +0x188
  go.uber.org/dig.paramObject.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:311 +0x133
  go.uber.org/dig.(*paramObject).Build()
      <autogenerated>:1 +0xcd
  go.uber.org/dig.paramList.BuildList()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:201 +0xfb
  go.uber.org/dig.(*node).Call()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:701 +0x134
  go.uber.org/dig.paramSingle.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:245 +0x328
  go.uber.org/dig.(*paramSingle).Build()
      <autogenerated>:1 +0xcd
  go.uber.org/dig.paramList.BuildList()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:201 +0xfb
  go.uber.org/dig.(*node).Call()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:701 +0x134
  go.uber.org/dig.paramSingle.Build()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:245 +0x328
  go.uber.org/dig.(*paramSingle).Build()
      <autogenerated>:1 +0xcd
  go.uber.org/dig.paramList.BuildList()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/param.go:201 +0xfb
  go.uber.org/dig.(*Container).Invoke()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/dig.go:432 +0x39a
  go.uber.org/fx.(*App).executeInvokes()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/app.go:692 +0x299
  go.uber.org/fx.New()
      /home/vocdoni/go/pkg/mod/go.uber.org/[email protected]/app.go:471 +0xbea
  github.com/ipfs/go-ipfs/core.NewNode()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/core/builder.go:41 +0x285
  go.vocdoni.io/dvote/ipfs.StartNode()
      /home/vocdoni/go-dvote/ipfs/ipfs.go:72 +0x23c
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  github.com/syndtr/goleveldb/leveldb.(*DB).checkAndCleanFiles()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db_util.go:52 +0x201
  github.com/syndtr/goleveldb/leveldb.openDB()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:136 +0x895
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x21d
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:657 +0x16e
  fmt.(*ss).doScanf()
      /usr/local/go/src/fmt/scan.go:1230 +0x418
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  fmt.Fscanf()
      /usr/local/go/src/fmt/scan.go:143 +0xe9
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).List()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:458 +0x3ea
  github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:482 +0xac
  github.com/syndtr/goleveldb/leveldb.openDB()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:131 +0x87c
  github.com/syndtr/goleveldb/leveldb.Open()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:203 +0x364
  fmt.Sscanf()
      /usr/local/go/src/fmt/scan.go:114 +0x164
  github.com/syndtr/goleveldb/leveldb/storage.fsParseName()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:643 +0x26
  github.com/syndtr/goleveldb/leveldb/storage.fsParseNamePtr()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:666 +0x15a
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta.func1()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:332 +0xe6
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta.func2()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:356 +0x124
  github.com/syndtr/goleveldb/leveldb/storage.(*fileStorage).GetMeta()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/storage/file_storage.go:407 +0x57b
  github.com/syndtr/goleveldb/leveldb.(*session).recover()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/session.go:140 +0x105
  github.com/syndtr/goleveldb/leveldb.Open()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:189 +0x107
  github.com/syndtr/goleveldb/leveldb.OpenFile()
      /home/vocdoni/go/pkg/mod/github.com/syndtr/[email protected]/leveldb/db.go:225 +0x84
  github.com/ipfs/go-ds-leveldb.NewDatastore()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/datastore.go:46 +0x1e4
  github.com/ipfs/go-ipfs/plugin/plugins/levelds.(*datastoreConfig).Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/plugin/plugins/levelds/levelds.go:85 +0x125
  github.com/ipfs/go-ipfs/repo/fsrepo.measureDatastoreConfig.Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/datastores.go:243 +0x77
  github.com/ipfs/go-ipfs/repo/fsrepo.(*measureDatastoreConfig).Create()
      <autogenerated>:1 +0x84
  github.com/ipfs/go-ipfs/repo/fsrepo.(*mountDatastoreConfig).Create()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/datastores.go:154 +0x145
  github.com/ipfs/go-ipfs/repo/fsrepo.(*FSRepo).openDatastore()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:440 +0x3de
  github.com/ipfs/go-ipfs/repo/fsrepo.open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:169 +0x3fa
  github.com/ipfs/go-ipfs/repo/fsrepo.Open.func1()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:113 +0x3e
  github.com/ipfs/go-ipfs/repo.(*OnlyOne).Open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/onlyone.go:35 +0x1d4
  github.com/ipfs/go-ipfs/repo/fsrepo.Open()
      /home/vocdoni/go/pkg/mod/github.com/ipfs/[email protected]/repo/fsrepo/fsrepo.go:115 +0x84
  go.vocdoni.io/dvote/ipfs.StartNode()
      /home/vocdoni/go-dvote/ipfs/ipfs.go:53 +0x13c
  go.vocdoni.io/dvote/data.(*IPFSHandle).Init()
      /home/vocdoni/go-dvote/data/ipfs.go:68 +0x250
  go.vocdoni.io/dvote/data.Init()
      /home/vocdoni/go-dvote/data/data.go:57 +0xb9
  go.vocdoni.io/dvote/service.IPFS()
      /home/vocdoni/go-dvote/service/storage.go:23 +0x1b6
  main.main()
      /home/vocdoni/go-dvote/cmd/dvotenode/dvotenode.go:487 +0x1f6e
==================

p4u avatar Jan 29 '22 23:01 p4u

FWIW, i did investigate this a bit in #418

altergui avatar Feb 01 '22 13:02 altergui

Have we seen this recently? We've updated these versions a few times since, and I don't think we have seen the race again, so I'm inclined to close it for now until we run into it again.

mvdan avatar May 26 '23 21:05 mvdan