Observed this segfault running all tests on mater, occurring
in around 2-3 out of 10 test runs.
```
FAIL: //beacon-chain/sync:go_default_test (shard 3 of 4, run 1 of 10) (see /home/j/.cache/bazel/_bazel_j/1ba834ca9d49f27aeb8f0bbb6f28fdf3/execroot/prysm/bazel-out/k8-fastbuild/testlogs/beacon-chain/sync/go_default_test/shard_3_of_4_run_1_of_10/test.log)
INFO: From Testing //beacon-chain/sync:go_default_test (shard 3 of 4, run 1 of 10):
==================== Test output for //beacon-chain/sync:go_default_test (shard 3 of 4, run 1 of 10):
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x138eea6]
goroutine 1660 [running]:
github.com/prysmaticlabs/prysm/shared/abool.(*AtomicBool).IsSet(...)
shared/abool/abool.go:39
github.com/prysmaticlabs/prysm/beacon-chain/sync.(*Service).subscribeStaticWithSubnets.func1(0xc002dd4400, 0xc002990940, 0x17bca26, 0x1e)
beacon-chain/sync/subscriber.go:207 +0xe6
created by github.com/prysmaticlabs/prysm/beacon-chain/sync.(*Service).subscribeStaticWithSubnets
beacon-chain/sync/subscriber.go:200 +0x172
================================================================================
```
TestStaticSubnets was testing a Service with an uninitialized
chainStarted value. This commit initializes chainStarted explicitly
in all tests that construct a Service. This reduces the observed flake
rate to 0/10 runs. This was verified with:
```
./bazel.sh test //beacon-chain/sync:go_default_test --runs_per_test 10
```
* use atomic bool in tests as well
* gaz
* wrapped up tests
* fix test
* shadowing fix
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* fix build from source
* clean up
* update again
* change everything
* workaround for now
* fix versioning
* all passing now
* fix build issues
* clean up
* revert use of MulVerify
* gaz
* stub
* Apply suggestions from code review
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* fix all
* fix test
* todo
* fix stub
* revert back
* make deep source happy
* Update shared/bls/herumi/public_key.go
* Update shared/bls/blst/signature.go
* Update shared/bls/blst/signature_test.go
* imports
* move iface to common, export errors
* rm iface build
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Check attestation target checkpoint is within current or previous epoch
* reject bad att where slot does not match target
* Add test, reduce redundant check
* remove unused cache states map
* correct typo
* Remove unused array
* Add lock around deposits cache chainstart pubkeys
* Copy attestation before grabbing lock. This may reduce lock contention time as other callers wanting the lock do not need to wait as long for the lock to become available.
* Copy attestation before grabbing lock. This may reduce lock contention time as other callers wanting the lock do not need to wait as long for the lock to become available.
* Set capacity to 1 since it is known that the slice will be 1 after insertion
* require validatorSlashingPreconditionCheck caller to hold lock
* Add lock for voluntary exits pool HasBeenIncluded
* Require rate limiter retrieveCollector to hold lock
* Add lock requirement assertions in sync
* Remove unused struct
* remove ClearCachedStates API
* field initSyncState is unused
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update pubsub and fix topicIDs
* WIP filter
* Add suggested code from @bidlocode
* add tests and fix bugs
* more tests
* Wait until state initialized to accept pubsub filtering
* rename for clarity and clarify comment
* fix test builds
* Autofix issues in 2 files
Resolved issues in the following files via DeepSource Autofix:
1. beacon-chain/p2p/pubsub_filter.go
2. beacon-chain/p2p/pubsub_filter_test.go
* @nisdas pr feedback
* pr feedback and fuzz fix
* Update beacon-chain/p2p/pubsub_filter.go
* Must have protocol suffix
* Must have protocol suffix
* gofmt
* rm test, fix panic
* Fix tests
* Add isInitialized check
* Add a few more tests for better coverage
* cache fork digest, make pubsub filter part of the p2p service
* rename service
* gofmt
* Add comment
* fix
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Delete disable state lock and init sync verbose flags
* Delete disable slashing broadcast
* Remove disable wait for sync, noise, eth1 cache, static subnet
* Remove enable broadcast recovery attemp and make it as default
* Remove disable head update on per attestation
* Revert disable att braodcast discovery attempt
* gazelle
* Fixed an anti pattern
* Add enableAttBroadcastDiscoveryAttempts back
* Add back WaitForSync
* Remove extra lines
* Use DisableDynamicCommitteeSubnets path per @prestonvanloon feedback
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Allow slashing pools to retrieve all items
* Add functionality to exits too to retrieve all exits
* Rename to noLimit
* ndo err
* Fix tests
* Fix test
* Fix test again
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>