Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
These are (afaik) all long-standing races or concurrent accesses. Going
forward, we can clean these up so that they're not all individual atomic
accesses.
- Reintroduce cs_vRecv to guard receive-specific vars
- Lock vRecv/vSend for CNodeStats
- Make some vars atomic.
- Only set the connection time in CNode's constructor so that it doesn't change
|
|
9a0b784 net: add a lock around hSocket (Cory Fields)
45e2e08 net: rearrange so that socket accesses can be grouped together (Cory Fields)
|
|
|
|
a9baa6d Bugfix: Qt/Intro: Pruned nodes never require *more* space (Luke Dashjr)
93ffba7 Bugfix: Qt/Intro: Chain state needs to be stored even with the full blockchain (Luke Dashjr)
c8cee26 Qt/Intro: Update block chain size (Luke Dashjr)
|
|
|
|
|
|
|
|
618ee92 Further-enforce lockordering by enforcing directly after TRY_LOCKs (Matt Corallo)
2a962d4 Fixup style a bit by moving { to the same line as if statements (Matt Corallo)
8465631 Always enforce lock strict lock ordering (try or not) (Matt Corallo)
fd13eca Lock cs_vSend and cs_inventory in a consistent order even in TRY (Matt Corallo)
|
|
|
|
The initialization order of global data structures in different
implementation units is undefined. Making use of this is essentially
gambling on what the linker does, the so-called [Static initialization
order fiasco](https://isocpp.org/wiki/faq/ctors#static-init-order).
In this case it apparently worked on Linux but failed on OpenBSD and
FreeBSD.
To create it on first use, make the registration structure local to
a function.
Fixes #8910.
|
|
90fd29b Remove unused int64_t nSinceLastSeen (practicalswift)
ac4a095 Remove unused Python variables (practicalswift)
|
|
dd5b011 [Trivial] add comment about setting peer as HB peer. (John Newbery)
|
|
|
|
|
|
d63ff62 Make nWalletDBUpdated atomic to avoid a potential race. (Patrick Strateman)
|
|
39c77b0 Add documentation for CWalletTx::fFromMe member. (Russell Yanofsky)
|
|
6dbfe08 [qa] test signrawtransaction merge with missing inputs (Matt Corallo)
ec4f7e4 [qa] Add second input to signrawtransaction test case (Matt Corallo)
691710a [qa] Test that decoderawtransaction throws with extra data appended (Matt Corallo)
922bea9 Better handle invalid parameters to signrawtransaction (Matt Corallo)
7ea0ad5 Fail in DecodeHexTx if there is extra data at the end (Matt Corallo)
|
|
0729102 Net: pass interruptMsgProc as const where possible (Jorge Timón)
fc7f2ff Net: Make CNetMsgMaker more const (Jorge Timón)
d45955f Net: CConnman: Make some methods const (Jorge Timón)
|
|
5f62e3e Fix typos (practicalswift)
|
|
4ec057d [wallet] Set correct metadata on bumpfee wallet transactions (Russell Yanofsky)
|
|
ac719c9 Init ECC context for test_bitcoin_fuzzy. (Gregory Maxwell)
|
|
003cd60 Add missing mempool lock for CalculateMemPoolAncestors (Matt Corallo)
|
|
This avoids calling things like pubkey_parse with a null context argument.
|
|
|
|
885cfdd Fix super-unlikely race introduced in 236618061a445d2cb11e72 (Matt Corallo)
|
|
08bb6f4 net: log an error rather than asserting if send version is misused (Cory Fields)
7a8c251 net: Disallow sending messages until the version handshake is complete (Cory Fields)
12752af net: don't run callbacks on nodes that haven't completed the version handshake (Cory Fields)
2046617 net: deserialize the entire version message locally (Cory Fields)
80ff034 Dont deserialize nVersion into CNode, should fix #9212 (Matt Corallo)
|
|
This removes a "race" between Interrupt() and Run(), though it
should not effect any of our supported platforms.
|
|
|
|
|
|
Preserve comment, order form, and account strings from the original wallet
transaction. Also set fTimeReceivedIsTxTime and fFromMe fields for consistency
with CWallet::CreateTransaction. The latter two fields don't influence current
wallet behavior, but do record that the transaction originated in the wallet
instead of coming from the network or sendrawtransaction.
|
|
This silently skips trying to merge signatures from inputs which
do not exist from transactions provided to signrawtransaction,
instead of hitting an assert.
|
|
|
|
Also cleaned up the comments and moved from the header to the .cpp so that
logging headers aren't needed from net.h
|
|
This is a change in behavior, though it's much more sane now than before.
|
|
Since ForEach* are can be used to send messages to all nodes, the caller may
end up sending a message before the version handshake is complete. To limit
this, filter out these nodes. While we're at it, may as well filter out
disconnected nodes as well.
Delete unused methods rather than updating them.
|
|
This avoids having some vars set if the version negotiation fails.
Also copy it all into CNode at the same site. nVersion and
fSuccessfullyConnected are set last, as they are the gates for the other vars.
Make them atomic for that reason.
|
|
|
|
Once the CNode has been added to vNodes, it is possible that it is
disconnected+deleted in the socket handler thread. However, after
that we now call InitializeNode, which accesses the pnode.
helgrind managed to tickle this case (somehow), but I suspect it
requires in immensely braindead scheduler.
|
|
8fc6989 Remove redundant semicolons (practicalswift)
|
|
3eba88d clarify listunspent amount description (Gregory Sanders)
|
|
|
|
29fb311 Increase minimum debug.log size to 10MB after shrink. (Alex Morcos)
|
|
|
|
More accurate than simply adding one byte per input, and properly handles the
case where the original transaction happened to have very small signatures
|