dash/src
Wladimir J. van der Laan 3dbc611e55 Merge #14993: rpc: Fix data race (UB) in InterruptRPC()
6c10037f72073eecc674c313580ef50a4f1e1e44 rpc: Fix data race (UB) in InterruptRPC() (practicalswift)

Pull request description:

  Fix data race (UB) in `InterruptRPC()`.

  Before:

  ```
  $ ./configure --with-sanitizers=thread
  $ make
  $ test/functional/test_runner.py feature_shutdown.py
  …
  SUMMARY: ThreadSanitizer: data race rpc/server.cpp:314 in InterruptRPC()
  …
  ALL                 | ✖ Failed  | 2 s (accumulated)
  ```

  After:

  ```
  $ ./configure --with-sanitizers=thread
  $ make
  $ test/functional/test_runner.py feature_shutdown.py
  …
  ALL                 | ✓ Passed  | 3 s (accumulated)
  ```

Tree-SHA512: b139ca1a0480258f8caa7730cabd7783a821d906630f51487750a6b15b7842675ed679747e1ff1bdade77d248807e9d77bae7bb88da54d1df84a179cd9b9b987
2022-05-23 02:15:51 -04:00
..
bench refactor: misc bls/llmq refactoring (#4834) 2022-05-13 00:11:39 +03:00
bls refactor: misc bls/llmq refactoring (#4834) 2022-05-13 00:11:39 +03:00
coinjoin fix(coinjoin): CreateDenominated crash (#4838) 2022-05-12 23:32:23 +03:00
compat merge bitcoin#17270: Feed environment data into RNG initializers 2022-04-25 15:29:51 +05:30
config
consensus feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
crc32c Merge bitcoin/bitcoin#23133: Update crc32c subtree 2022-03-13 14:52:24 -05:00
crypto Merge bitcoin/bitcoin#23761: build: use __SIZEOF_INT128__ for checking __int128 availability 2022-04-28 10:59:05 -05:00
evo trivial/lint: tweak lint-spelling.sh and fix typos (#4802) 2022-04-25 22:13:24 +03:00
governance merge bitcoin#17997: Remove mempool global from net 2022-04-20 00:25:14 +05:30
index merge bitcoin#19295: Use AbortError in FatalError 2022-04-07 11:28:43 -05:00
interfaces Merge pull request #4731 from vijaydasmp/bp2001 2022-04-20 14:08:24 -05:00
leveldb
llmq refactor: misc bls/llmq refactoring (#4834) 2022-05-13 00:11:39 +03:00
logging
masternode merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
node merge bitcoin#19145: Add hash_type MUHASH for gettxoutsetinfo 2022-04-27 20:05:13 +05:30
policy partial bitcoin#15639: Drop libbitcoin_server.a dependency 2022-04-20 00:20:30 +05:30
primitives Compressed headers implementation. (#4497) 2022-03-11 22:39:12 +03:00
qt Merge #13966: gui: When private key is disabled, only show watch-only balance 2022-05-23 02:15:51 -04:00
rpc Merge #14993: rpc: Fix data race (UB) in InterruptRPC() 2022-05-23 02:15:51 -04:00
script Merge #9572: Skip witness sighash cache for non-segwit transactions (#4814) 2022-04-28 20:56:40 +03:00
secp256k1
support Merge #14922: windows: Set _WIN32_WINNT to 0x0601 (Windows 7) 2022-03-04 23:38:33 -05:00
test Merge pull request #4817 from UdjinM6/drop_0 2022-04-28 18:40:08 +03:00
univalue merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
util trivial: bump immer to 9cb6a5a, fix irange to work on c++20 (#4827) 2022-05-09 09:49:33 -05:00
wallet feat(rpc/wallet): allow skipping/forcing blockchain rescan on upgradetohd (#4822) 2022-05-17 01:51:54 +03:00
zmq refactor(rpc): Mechanical/Manual RPC backports (#4734) 2022-05-12 15:29:17 -05:00
.clang-format Merge #17134: doc: Add switch on enum example to developer notes 2022-04-02 09:19:20 +05:30
addrdb.cpp
addrdb.h Merge #17297: refactor: Remove addrdb.h dependency from node.h 2022-03-07 09:36:17 -06:00
addressindex.h
addrman.cpp merge bitcoin#18512: Improve asmap checks and add sanity check 2022-03-25 00:58:20 +05:30
addrman.h Merge bitcoin/bitcoin#22455: addrman: detect on-disk corrupted nNew and nTried during unserialization 2022-03-07 09:42:58 -06:00
amount.h
arith_uint256.cpp
arith_uint256.h
attributes.h
banman.cpp merge bitcoin#16362: Add bilingual_str type 2022-04-06 00:08:01 +05:30
banman.h merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
base58.cpp
base58.h
batchedlogger.cpp
batchedlogger.h
bech32.cpp
bech32.h
bip39_english.h
bip39.cpp
bip39.h
blockencodings.cpp
blockencodings.h
blockfilter.cpp
blockfilter.h
bloom.cpp
bloom.h
cachemap.h
cachemultimap.h
chain.cpp
chain.h
chainparams.cpp Merge pull request #4731 from vijaydasmp/bp2001 2022-04-20 14:08:24 -05:00
chainparams.h Merge #17285: doc: Bip70 removal follow-up 2022-04-27 21:08:36 +03:00
chainparamsbase.cpp feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
chainparamsbase.h Merge #17285: doc: Bip70 removal follow-up 2022-04-27 21:08:36 +03:00
chainparamsseeds.h
checkqueue.h Merge bitcoin/bitcoin#23397: Avoid excessive lock contention in CCheckQueue::Add 2022-04-11 09:41:11 -07:00
clientversion.cpp Merge bitcoin/bitcoin#22685: clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE 2022-05-11 11:03:39 -05:00
clientversion.h Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
coins.cpp
coins.h
compat.h Merge #14922: windows: Set _WIN32_WINNT to 0x0601 (Windows 7) 2022-03-04 23:38:33 -05:00
compressor.cpp
compressor.h Merge #17917: tests: Add amount compression/decompression fuzzing to existing fuzzing harness 2022-03-07 09:40:31 -06:00
core_io.h
core_memusage.h
core_read.cpp
core_write.cpp
ctpl_stl.h Fix get_future data race in ctpl (#4690) 2022-02-15 19:28:29 +03:00
cuckoocache.h
cxxtimer.hpp
dash-cli-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dash-cli.cpp merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
dash-tx-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dash-tx.cpp merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
dash-wallet-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dash-wallet.cpp merge bitcoin#16362: Add bilingual_str type 2022-04-06 00:08:01 +05:30
dashd-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dashd.cpp merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
dbwrapper.cpp
dbwrapper.h
dsnotificationinterface.cpp Pass CConnman to function in place for global pointer access 2022-04-20 00:21:04 +05:30
dsnotificationinterface.h Pass CConnman to function in place for global pointer access 2022-04-20 00:21:04 +05:30
dummywallet.cpp merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
flat-database.h
flatfile.cpp
flatfile.h
fs.cpp Merge pull request #4735 from kittywhiskers/translation 2022-04-07 13:18:29 +03:00
fs.h
hash.cpp merge bitcoin#19601: Refactoring CHashWriter & Get{Prevouts,Sequence,Outputs}Hash to SHA256 2022-04-27 19:58:39 +05:30
hash.h merge bitcoin#19601: Refactoring CHashWriter & Get{Prevouts,Sequence,Outputs}Hash to SHA256 2022-04-27 19:58:39 +05:30
hdchain.cpp wallet: fix metadata updates on HD derivation (#4819) 2022-04-30 23:33:45 +03:00
hdchain.h Merge #14021: Import key origin data through descriptors in importmulti (+ changes from PRs partially merged earlier: 15368, 15749) 2022-02-18 03:42:05 +03:00
httprpc.cpp Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
httprpc.h
httpserver.cpp Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
httpserver.h
indirectmap.h merge bitcoin#17996: Add fuzzing harness for serialization/deserialization of floating-points and integrals 2022-03-25 00:58:20 +05:30
init.cpp Merge #15456: Enable PID file creation on WIN 2022-05-23 02:15:41 -04:00
init.h merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
key_io.cpp
key_io.h
key.cpp Merge bitcoin/bitcoin#23199: refactor: use {Read,Write}BE32 helpers for BIP32 nChild (de)serialization 2022-03-13 14:52:53 -05:00
key.h Merge bitcoin/bitcoin#22995: doc: Remove stale comment for CPrivKey 2022-03-13 14:52:24 -05:00
keystore.cpp
keystore.h
limitedmap.h
logging.cpp merge bitcoin#16540: Add ASSERT_DEBUG_LOG to unit test framework 2022-02-26 10:37:36 +05:30
logging.h merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
Makefile.am merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
Makefile.bench.include Merge #14212: build: Remove libssl from LDADD unless gui 2022-05-23 02:15:41 -04:00
Makefile.crc32c.include
Makefile.leveldb.include Merge bitcoin/bitcoin#23282: build: remove build stubs for external leveldb 2022-04-03 18:46:47 -05:00
Makefile.qt_locale.include
Makefile.qt.include partial bitcoin#21694: Use XLIFF file to provide more context to Transifex translators 2022-04-26 20:36:54 +05:30
Makefile.qttest.include merge bitcoin#17265: Remove OpenSSL 2022-04-25 15:29:52 +05:30
Makefile.test_util.include merge bitcoin#17542: Create test utility library from src/test/util 2022-02-26 10:45:13 +05:30
Makefile.test.include Merge #14092: tests: Dry run bench_bitcoin as part "make check" to allow for quick identification of assertion/sanitizer failures in benchmarking code 2022-05-23 02:15:41 -04:00
Makefile.univalue.include merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
mapport.cpp merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
mapport.h merge bitcoin#18077: Add NAT-PMP port forwarding support 2022-02-26 17:49:13 +05:30
memusage.h merge bitcoin#17996: Add fuzzing harness for serialization/deserialization of floating-points and integrals 2022-03-25 00:58:20 +05:30
merkleblock.cpp
merkleblock.h
messagesigner.cpp
messagesigner.h
miner.cpp Merge bitcoin/bitcoin#23692: mining, refactor: add m_mempool.cs thread safety lock assertions 2022-04-20 09:04:29 -05:00
miner.h merge bitcoin#17781: Remove mempool global from miner 2022-04-20 00:25:14 +05:30
net_permissions.cpp Merge bitcoin/bitcoin#21996: p2p: pass strings to NetPermissions::TryParse functions by const ref 2022-04-16 10:47:42 -06:00
net_permissions.h Merge bitcoin/bitcoin#21996: p2p: pass strings to NetPermissions::TryParse functions by const ref 2022-04-16 10:47:42 -06:00
net_processing.cpp merge bitcoin#17997: Remove mempool global from net 2022-04-20 00:25:14 +05:30
net_processing.h merge bitcoin#17997: Remove mempool global from net 2022-04-20 00:25:14 +05:30
net_types.h Merge #17297: refactor: Remove addrdb.h dependency from node.h 2022-03-07 09:36:17 -06:00
net.cpp Merge #17251: net: SocketHandler logs peer id for close and disconnect 2022-04-15 13:08:29 +05:30
net.h merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
netaddress.cpp merge bitcoin#18512: Improve asmap checks and add sanity check 2022-03-25 00:58:20 +05:30
netaddress.h merge bitcoin#18512: Improve asmap checks and add sanity check 2022-03-25 00:58:20 +05:30
netbase.cpp Merge #14922: windows: Set _WIN32_WINNT to 0x0601 (Windows 7) 2022-03-04 23:38:33 -05:00
netbase.h
netfulfilledman.cpp
netfulfilledman.h
netmessagemaker.h
noui.cpp merge bitcoin#18927: Pass bilingual_str argument to AbortNode() 2022-04-07 11:28:43 -05:00
noui.h Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
optional.h
pow.cpp
pow.h
prevector.h refactor: fix numerous compilation warnings (#4682) 2022-02-11 19:15:26 +03:00
protocol.cpp feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
protocol.h feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
psbt.cpp
psbt.h Merge pull request #4746 from vijaydasmp/bp2004 2022-04-07 13:17:34 +03:00
pubkey.cpp Merge bitcoin/bitcoin#23199: refactor: use {Read,Write}BE32 helpers for BIP32 nChild (de)serialization 2022-03-13 14:52:53 -05:00
pubkey.h
random.cpp Merge #18359: build: fix sysctl() detection on macOS 2022-04-25 14:02:48 -05:00
random.h Merge #17507: random: mark RandAddPeriodic and SeedPeriodic as noexcept 2022-04-25 14:02:43 -05:00
randomenv.cpp Merge #20358: src/randomenv.cpp: fix build on uclibc 2022-04-25 14:02:48 -05:00
randomenv.h merge bitcoin#17270: Feed environment data into RNG initializers 2022-04-25 15:29:51 +05:30
rest.cpp partial bitcoin#16240: JSONRPCRequest-aware RPCHelpMan 2022-03-12 19:14:59 +05:30
reverse_iterator.h
saltedhasher.cpp
saltedhasher.h
scheduler.cpp merge bitcoin#17270: Feed environment data into RNG initializers 2022-04-25 15:29:51 +05:30
scheduler.h merge bitcoin#18037: Allow scheduler to be mocked 2022-04-20 00:23:32 +05:30
serialize.h Merge #13719: Avoid creating a temporary vector for size-prefixed elements 2022-04-26 13:27:11 -04:00
shutdown.cpp
shutdown.h
span.h Merge #19367: doc: Span pitfalls 2022-04-03 18:09:07 -05:00
spentindex.h
spork.cpp merge bitcoin#17997: Remove mempool global from net 2022-04-20 00:25:14 +05:30
spork.h scripted-diff: Merge #18533 Replace strCommand with msg_type (#4761) 2022-04-18 11:47:26 -05:00
stacktraces.cpp merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
stacktraces.h
statsd_client.cpp
statsd_client.h
streams.h
sync.cpp merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
sync.h
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
timedata.h
tinyformat.h
torcontrol.cpp
torcontrol.h
txdb.cpp merge bitcoin#16362: Add bilingual_str type 2022-04-06 00:08:01 +05:30
txdb.h
txmempool.cpp Merge #17316: refactor: Replace all uses of boost::optional with our own Optional type 2022-04-07 07:22:08 +05:30
txmempool.h Merge #17316: refactor: Replace all uses of boost::optional with our own Optional type 2022-04-07 07:22:08 +05:30
ui_interface.cpp Merge #19256: gui: change combiner for signals to optional_last_value 2022-04-16 10:47:00 -06:00
ui_interface.h Merge #19309: refactor: Fix link error with --enable-debug 2022-04-16 10:46:58 -06:00
uint256.cpp
uint256.h
undo.h
unordered_lru_cache.h
validation.cpp partial bitcoin#15639: Drop libbitcoin_server.a dependency 2022-04-20 00:20:30 +05:30
validation.h Merge #15383: [rpc] mining: Omit uninitialized currentblockweight, currentblocktx 2022-02-27 13:33:36 -05:00
validationinterface.cpp Pass CConnman to function in place for global pointer access 2022-04-20 00:21:04 +05:30
validationinterface.h Pass CConnman to function in place for global pointer access 2022-04-20 00:21:04 +05:30
version.h feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
versionbits.cpp
versionbits.h
versionbitsinfo.cpp feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
versionbitsinfo.h
walletinitinterface.h merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local 2022-04-20 00:22:35 +05:30
warnings.cpp merge bitcoin#16362: Add bilingual_str type 2022-04-06 00:08:01 +05:30
warnings.h