• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

btcsuite / btcd
57%
master: 55%

Build:
Build:
LAST BUILD BRANCH: p2a
DEFAULT BRANCH: master
Repo Added 08 Jul 2020 04:54PM UTC
Token 65UIOKCVtiKf79lUbGhy4oTQ2nKiGIHv2 regen
Build 1268 Last
Files 282
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH 2024-02-27-no-panic-for-subscription-callback-errors
branch: 2024-02-27-no-panic-for-subscription-callback-errors
CHANGE BRANCH
x
Reset
Sync Branches
  • 2024-02-27-no-panic-for-subscription-callback-errors
  • #2106
  • 2020-10-06-wallet-rpcs
  • 2022-02-10-1587
  • 2022-04-30-decode-for-net
  • 2022-11-06-implement-getchaintips
  • 2023-05-16-run-gofmt
  • 2023-09-25-change-is-sync-candidate-behavior
  • 2023-10-12-add-integration-test-for-prune
  • 2023-12-update-pkt-dns-seed
  • 2024-01-03-add-last-flush-time-on-initconsistentstate
  • 2024-01-22-dont-update-mempool
  • 2024-02-15-dont-rely-on-height-fetching
  • 2024-02-15-no-utxocache-loading-on-reorgs
  • 2024-03-05-fix-intermittent-addrmgr-bug
  • 2024-03-07-make-duplicate-entries-on-mapslice-impossible
  • 2024-04-01-parallel-ibd
  • 2024-04-02-add-is-ancestor
  • 2024-04-02-invalidate-block
  • 2024-04-23-add-darwin-arm
  • 2024-04-23-update-dnsseeds
  • 2024-04-30-add-reconsiderblock
  • 2024-05-01-fix-logs
  • 2024-05-05-add-rpccalls-for-invalidate-and-reconsiderblock
  • 2024-07-01-close-blockfiles
  • 2024-07-17-increase-flush-time
  • 2024-08-06-execution-trace-flag
  • 2024-08-fix-unmarshaljson
  • 2024-10-29-dont-accept-txs-when-were-not-current
  • 2024-11-29-fix-ibd-not-working
  • 2024-12-10-meet-peer-query-interface
  • 2024-12-26-add-checkpointed-blocks-query
  • 2024-12-26-add-connected-peers
  • 2024-12-26-add-peer-subscribers
  • 2024-12-26-refactor-handle-block-msg
  • 2024-12-30-add-prune-to-sample-btcd.conf
  • 2025-01-16-dont-ask-for-blocks-from-same-height-peers
  • 2025-02-17-exit-when-running-out-of-disk-space
  • 2025-07-remove-alert
  • 2025-09-16-new-parallel-block-downloads
  • 2181_eugene
  • 2183_eugene
  • 2372-fix-bip32-derivation-overflow-bug
  • DecodeNoLimitVersioned
  • FixCoverallCoverage
  • LICENSE-btcsuite
  • TestGetBestBlockHashAsync
  • a-little-taproot
  • add-blockindex-parentskips
  • add-connections-in-out-field-to-getnetworkinforesult
  • add-gemini-style-guide
  • add-gettxspendingprevout
  • add-json-support
  • add-memory-profiling
  • add-msgtx-txid
  • add-nextavailableport
  • add-pruning
  • add-pubkey-serialized-type
  • add-signrawtransactionwithwallet
  • add-tests-witness-limits
  • add-tokenizer
  • addBIP0322SignedMessageTag
  • addGeminiCodeAssist
  • add_gettxfee
  • addr-rw-lock
  • base58-fix
  • bchd-retract
  • bg
  • bip-340-signing
  • bip-8-prep
  • bip-musig2-psbt
  • bip125-inherited-replacement
  • bip324-modules
  • bip340
  • bip340-schnorr-verification
  • bitcoind-v30-error
  • block-count
  • bloom-update
  • btcctl-config-error
  • btcd-24
  • btcd-24-0-2-rc1
  • btcd-calcsighash-optimizations
  • btcd_addrv2
  • btcec-fix
  • btcec-no-chainhash
  • btcec-v2-1-0
  • btcec-v2-no-circular-dep
  • btcec-v2.2-branch
  • btcec/v2.3.5
  • btcutil
  • btcutil-move
  • btcutil-psbt-update-dec-2023
  • btcutil-tag-updates
  • bugfix/rpctest_ports_race
  • build-improvements
  • bulk
  • bump-btcutils-versions
  • bump-go-version
  • bumpWithnessItemPerInputMax
  • catch-shutdown
  • chainhash-v-1-1-0-btcutil
  • chainhash_json
  • chainhash_json_unmarshal
  • changes-0.22
  • check-signature
  • chore/update_psbt_deps
  • config-disable-stall-handler
  • converttopsbt
  • create-rawtransaction-replaceable
  • create-wallet-functional-opts
  • ctrl-block-error
  • dcr-ec
  • deepCopyPk
  • derive-addresses-rpcclient
  • doc-link
  • dockerbuild
  • docs-update-go-version-contrib-guidelines
  • docupdate
  • dont-serialize-tx-for-txhash
  • ebiiim-patch-1
  • ellswift
  • encrypt-decrypt
  • error-matching
  • exportCheckStandardnessFunc
  • exportMuSigSignOptions
  • exportNumFuncs
  • export_header_funcs
  • expose-newfutureerror
  • external-peer-testing
  • extreme-tests
  • fallback-to-GOPATH-bin-dir
  • feat/add-testnet4-support
  • feature/bump-go-version
  • feature/fix-ci
  • feature/pebble
  • feature/utxocache-swissmap
  • feeRate-BTCkvB
  • fix
  • fix-batch-mem-leak
  • fix-config-doc
  • fix-docs-rfc6979
  • fix-err-match
  • fix-err-str
  • fix-mempool-estimatefee-bug
  • fix-minimalif-comment
  • fix-non-root-hosts
  • fix-protocol
  • fix-psbtopts-feerate-type
  • fix-readme-min-version
  • fix-shutdown-itest
  • fix-test-peer-listeners
  • fix-typos
  • fix/batch-data-race
  • fix/dockerfile-go-version
  • fix/err
  • fix/link
  • fixInvalidRpc
  • fix_comment
  • flag-types
  • fundrawtx-bech32m
  • fuzz-FuzzParsePubKey
  • getaddressinfo
  • getblocktemplate-server-update
  • getnetworkhashps-float64
  • getnetworkinfo-warnings
  • getnewaddress-rpcclient-revert
  • getnodeaddresses
  • getwalletinfo
  • gh-1651
  • go-1-18
  • go-mod-pain-relief
  • go1.15
  • go11modules
  • gogc
  • gogc-maxprocs-config
  • guiand888-Docker-doc-update
  • hash-unmarshal
  • hashcache-flake
  • http-retries
  • ignore_unknown_messages
  • implement-pool
  • improve-gc-isunspendable
  • improved-der-signature-validation
  • indexinfo
  • integration-harness-fixes
  • isDust_export_08022021
  • itest-fixes
  • jakesyl-patch-1
  • jcv_irc
  • jcv_nomsi
  • jcv_typo
  • jcv_version
  • jsonrpcerr
  • label_and_account_apis_for_wallet
  • log_compress_zstd
  • marco/wtxidrelay
  • martin/externalip-by-file
  • master
  • memory-efficient-txhash
  • mempool/check-p2wsh-standard
  • mempool_dust_threshold_08162021
  • merkle-calc-fast
  • miniscript
  • musig2
  • musig2-1-0
  • musig2-benchmark-fix
  • musig2Adaptor
  • musig2_0.3.0
  • musig2_fix_early_nonce_gen
  • musig2_update
  • naveen/feat/fix-github-action-permissions
  • naveen/feat/upgrade-docker
  • nb/include-unsafe
  • nested-witness-sign
  • neutrino-opt
  • notls4all
  • op_cat
  • op_txhash
  • opt_SignCompact
  • optimize_buffer
  • over-2-hours
  • p2a
  • patch-1
  • patch-2
  • pkg-update-checkmarx-cve
  • pledge
  • post-taproot-module-updates
  • pow-no-retargeting
  • pr/845
  • priority-queue
  • psbt-empty-deriv-path
  • psbt-export
  • psbt-global-xpub
  • psbt-nil-pointer-bug
  • psbt-serialization-fix
  • psbt-size-check
  • public-sendcmd
  • receive-tests
  • refactor
  • refactor/make-help
  • refactor/obyte-great-than-zero
  • refactor/parsefloat
  • refs/tags/btcec/v2.0.0
  • refs/tags/btcec/v2.1.0
  • refs/tags/btcec/v2.1.2
  • refs/tags/btcec/v2.1.3
  • refs/tags/btcec/v2.2.0
  • refs/tags/btcec/v2.2.1
  • refs/tags/btcec/v2.2.2
  • refs/tags/btcec/v2.3.0
  • refs/tags/btcec/v2.3.1
  • refs/tags/btcec/v2.3.2
  • refs/tags/btcec/v2.3.3
  • refs/tags/btcec/v2.3.4
  • refs/tags/btcutil/psbt/v1.0.0
  • refs/tags/btcutil/psbt/v1.1.0
  • refs/tags/btcutil/psbt/v1.1.1
  • refs/tags/btcutil/psbt/v1.1.10
  • refs/tags/btcutil/psbt/v1.1.2
  • refs/tags/btcutil/psbt/v1.1.3
  • refs/tags/btcutil/psbt/v1.1.4
  • refs/tags/btcutil/psbt/v1.1.5
  • refs/tags/btcutil/psbt/v1.1.6
  • refs/tags/btcutil/psbt/v1.1.7
  • refs/tags/btcutil/psbt/v1.1.8
  • refs/tags/btcutil/psbt/v1.1.9
  • refs/tags/btcutil/v1.1.0
  • refs/tags/btcutil/v1.1.1
  • refs/tags/btcutil/v1.1.2
  • refs/tags/btcutil/v1.1.3
  • refs/tags/btcutil/v1.1.4
  • refs/tags/btcutil/v1.1.5
  • refs/tags/btcutil/v1.1.6
  • refs/tags/chaincfg/chainhash/v1.0.1
  • refs/tags/chaincfg/chainhash/v1.0.2
  • refs/tags/chaincfg/chainhash/v1.0.3
  • refs/tags/chaincfg/chainhash/v1.1.0
  • refs/tags/v0.22.0-beta
  • refs/tags/v0.22.1
  • refs/tags/v0.23.0
  • refs/tags/v0.23.1
  • refs/tags/v0.23.2
  • refs/tags/v0.23.3
  • refs/tags/v0.23.4
  • refs/tags/v0.24.0
  • refs/tags/v0.24.2
  • refs/tags/v0.24.2-beta.rc1
  • remove-bip9-stray-logs
  • remove-err-match
  • reorg
  • replace-imports
  • replaceioutil
  • revive-1294
  • rm_trailing_continue
  • roylee/remove-deprecated-rpcs
  • roylee/update-gbt-to-return-witness-script
  • rpc-address-align
  • rpc-getblockstats
  • rpc-gettxoutsetinfo
  • rpc-jsonerror-msg
  • rpcbulk
  • rpcclient-GetChainTxStatsAsync-tests
  • rpcclient-fix
  • rpcclient-signet
  • rpccliet-fix2
  • run-the-numbers
  • safe-addr-accessors
  • safe-ka-accessors
  • santa5
  • schnorr
  • schnorrSig-simplify-r-bytes
  • script-builder-alloc
  • script-callback
  • script-template
  • scriptpubkeyresult-address
  • searchrawtransactionsverbose-null-test
  • segwit-rpc
  • sendaddrv2
  • sig_hash_type
  • sighash-taproot-keyspend-bug-fix
  • sighash-typos
  • sign-mutate
  • signet
  • signet-deployment
  • signet-forward-port
  • silent-payments
  • size_on_disk
  • standardness-cleanup
  • statusbytes_08062024
  • submitpackage
  • taproot-dev-net-activation
  • taproot-impl
  • taproot-psbt
  • taptweak-mutation
  • testmempoolaccept
  • testnet4-bip9
  • timeout-https-client
  • tor_ipv6
  • tor_resolver_fix
  • trailing-zeroes
  • tx-not-found-error-bug
  • tx-version-type
  • txid_string_check
  • txscript_alloc_cb_change
  • txscript_zero_alloc_optimization_refactor
  • txwithkey
  • unix
  • unmarshal-networkhashps
  • update-btcecv2-no-dep
  • update-btcutil
  • update-changes
  • update-checkpoints
  • update-ci
  • update-getmempoolentry-cmd
  • update-goleveldb
  • update-goleveldb-0
  • update-gomod-btcec
  • update-guides
  • update-isMainChain-according-to-orphan
  • uptime-fix
  • use-fqdn
  • utxocache-original
  • utxoview-use-slices
  • v-0-24-2
  • v-0-25-0-rc1
  • v0-23-2-branch
  • v0-23-3-branch
  • v0.22
  • v0.25.0-beta.rc1
  • v0_22_use_chainhash_module
  • v2-module-fix
  • v2-transport-module
  • v2_transport
  • v2transport/v0.0.1-alpha
  • v2transport/v1.0.0
  • v2transport/v1.0.1
  • v3-tx-standard
  • version-bump-23
  • version-bump-23-1
  • version_0_23_0
  • vinayakb/fix_empty_tx_in_GetBlockVerboseTx
  • wire-opts
  • wire-signet
  • wire/outpoint-parse-string
  • witness-commitment-rpctest
  • witness-wire-hot-fix

27 Feb 2024 05:32AM UTC coverage: 56.732% (+0.007%) from 56.725%
8060178922

Pull #2128

github

kcalvinalvin
blockchain: always relock chainLock for subscription callbacks

For various b.sendNotifcation() callbacks, if a runtime panic happens,
we don't get any useful debugging information since the error that
happens first is the "unlock of unlocked mutex" error.

This is because we temporarily unlock the chainLock for callbacks and
then relock them.  However, since the relocking code is executed after
the completion of the callback, if an error happens during that
callback, we never relock the chainLock.

Switching to an anonymous function and having the unlock code as a
defer will ensure that the lock always relocks.
Pull Request #2128: blockchain: always relock chainLock for subscription callbacks

15 of 15 new or added lines in 2 files covered. (100.0%)

29202 of 51474 relevant lines covered (56.73%)

456054.78 hits per line

Relevant lines Covered
Build:
Build:
51474 RELEVANT LINES 29202 COVERED LINES
456054.78 HITS PER LINE
Source Files on 2024-02-27-no-panic-for-subscription-callback-errors
  • Tree
  • List 234
  • Changed 43
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
8060178922 2024-02-27-no-panic-for-subscription-callback-errors blockchain: always relock chainLock for subscription callbacks For various b.sendNotifcation() callbacks, if a runtime panic happens, we don't get any useful debugging information since the error that happens first is the "unlock of unlocked mute... Pull #2128 27 Feb 2024 05:40AM UTC kcalvinalvin github
56.73
See All Builds (1020)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc