Commit Graph

11300 Commits

Author SHA1 Message Date
Jack Grigg
2e839df328 ci-workers: Fail if Python is not version 2.7
Ansible works with Python 2.6 and 2.7, but Buildbot requires 2.7. Both have
at least preliminary Python 3 support, but until our RPC tests are migrated to
Python 3, we need to use Python 2 for testing, and so this requirement stands.
2017-08-08 00:19:23 +01:00
Jack Grigg
6dec2d0355 Rationalize currency unit to "ZEC" 2017-08-03 18:49:04 +01:00
Ross Nicoll
091b2116a0 Rationalize currency unit to "BTC"
Previously various user-facing strings have used inconsistent currency units "BTC",
"btc" and "bitcoins". This adds a single constant and uses it for each reference to
the currency unit.

Also adds a description of the unit for --maxtxfee, and adds the missing "amount"
field description to the (deprecated) move RPC command.
2017-08-03 16:32:41 +01:00
Jack Grigg
30cc2b846e Variable overrides for Arch Linux
Part of #2550
2017-08-03 14:36:51 +01:00
Jack Grigg
24d98cece0 Add libsnark compile flag to not copy DEPINST to PREFIX
This is useful for Zcash, where DEPINST is its depends folder, not libsnark's
internal dependency folder.
2017-08-02 15:53:51 +01:00
Sean Bowe
26a8f68ea8 Remove libsnark from depends system and integrate it into build system. 2017-08-02 15:49:30 +01:00
Jack Grigg
a06446408c Merge commit '51e448641d6cbcd582afa22cd8475f8c3086dad7' as 'src/snark' 2017-08-02 11:17:32 +01:00
Jack Grigg
51e448641d Squashed 'src/snark/' content from commit 9ada3f8
git-subtree-dir: src/snark
git-subtree-split: 9ada3f84ab484c57b2247c2f41091fd6a0916573
2017-08-02 11:17:25 +01:00
Homu
2a42478bff Auto merge of #2562 - arielgabizon:release-v1.0.11-rc1, r=daira
Release v1.0.11 rc1
2017-08-01 12:37:26 -07:00
Cory Fields
c98b91b7c5 httpserver: explicitly detach worker threads
When using std::thread in place of boost::thread, letting the threads destruct
results in a std::terminate. According to the docs, the same thing should be
be happening in later boost versions:
http://www.boost.org/doc/libs/1_55_0/doc/html/thread/thread_management.html#thread.thread_management.thread.destructor

I'm unsure why this hasn't blown up already, but explicitly detaching can't
hurt.

Zcash: cherry-picked from commit d3773ca9aeb0d2f12dc0c5a0726778050c8cb455
This fixes #2554 (zcash-cli stop during getblocktemplate long poll
causes 'Assertion `!pthread_mutex_unlock(&m)' failed.')
2017-08-01 20:24:27 +01:00
Wladimir J. van der Laan
c7f77e28f0 http: speed up shutdown
This continues/fixes #6719.

`event_base_loopbreak` was not doing what I expected it to, at least in
libevent 2.0.21.
What I expected was that it sets a timeout, given that no other pending
events it would exit in N seconds. However, what it does was delay the
event loop exit with 10 seconds, even if nothing is pending.

Solve it in a different way: give the event loop thread time to exit
out of itself, and if it doesn't, send loopbreak.

This speeds up the RPC tests a lot, each exit incurred a 10 second
overhead, with this change there should be no shutdown overhead in the
common case and up to two seconds if the event loop is blocking.

As a bonus this breaks dependency on boost::thread_group, as the HTTP
server minds its own offspring.

Zcash: cherry-picked from commit a264c32e3321ae909ca59cb8ce8bf5d812dbc4e1
2017-08-01 20:24:27 +01:00
Wladimir J. van der Laan
2abe8ef721 http: Force-exit event loop after predefined time
This makes sure that the event loop eventually terminates, even if an
event (like an open timeout, or a hanging connection) happens to be
holding it up.

Zcash: cherry-picked from commit ec908d5f7aa9ad7e3487018e06a24cb6449cc58b
2017-08-01 20:24:27 +01:00
Wladimir J. van der Laan
dbf7057f7a http: Wait for worker threads to exit
Add a WaitExit() call to http's WorkQueue to make it delete the work
queue only when all worker threads stopped.

This fixes a problem that was reproducable by pressing Ctrl-C during
AppInit2:
```
/usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!ret' failed.
/usr/include/boost/thread/pthread/mutex.hpp:108: boost::mutex::~mutex(): Assertion `!posix::pthread_mutex_destroy(&m)' failed.
```

I was assuming that `threadGroup->join_all();` would always have been
called when entering the Shutdown(). However this is not the case in
bitcoind's AppInit2-non-zero-exit case "was left out intentionally
here".

Zcash: cherry-picked from commit de9de2de361ab1355b976f17371d73e36fe3bf56
Fixes #2334 and #2214.
2017-08-01 20:24:27 +01:00
Wladimir J. van der Laan
c0fe29370a Make HTTP server shutdown more graceful
Shutting down the HTTP server currently breaks off all current requests.
This can create a race condition with RPC `stop` command, where the calling
process never receives confirmation.

This change removes the listening sockets on shutdown so that no new
requests can come in, but no longer breaks off requests in progress.

Meant to fix bitcoin/#6717.

Zcash: cherry-picked from commit 5e0c22135600fe36811da3b78216efc61ba765fb
2017-08-01 20:24:27 +01:00
Ariel Gabizon
1ea4df6826 make-release.py: Updated release notes and changelog for 1.0.11-rc1. 2017-08-01 17:12:52 +02:00
Ariel Gabizon
dc5d6d5f5d make-release.py: Updated manpages for 1.0.11-rc1. 2017-08-01 17:12:50 +02:00
Ariel Gabizon
fcf824e9f1 make-release.py: Versioning changes for 1.0.11-rc1. 2017-08-01 17:11:57 +02:00
Jack Grigg
8ebb299d40 ci-workers: Enable pipelining, and use root to set admin and host details
Workarounds for Ansible issues when becoming an unprivileged user:
https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user
2017-08-01 12:35:58 +01:00
Homu
10acd8a1fb Auto merge of #2484 - str4d:block-download-completion, r=daira
Add block download progress to metrics UI
2017-07-28 21:57:19 -07:00
Jack Grigg
92bfde0edf Improve network height estimation 2017-07-28 10:50:07 +00:00
Jack Grigg
4a651837be Correct and extend EstimateNetHeightInner tests
Corrections are to the median block times, which were generated by subtracting
CBlockIndex::nMedianTimeSpan / 2 from the block height and then multiplying by
the target spacing. GetMedianTimePast() takes an array sorted by std::sort() and
returns element CBlockIndex::nMedianTimeSpan / 2, meaning that if
CBlockIndex::nMedianTimeSpan is odd (which it is), there is an out-by-one error
in the subtraction.
2017-07-28 10:45:44 +00:00
Homu
d6e6f51724 Auto merge of #2526 - bitcartel:2480_segfault_zeroconf_from_zaddr, r=daira
Fixes #2480 where missing map entry would cause a segfault.

`wtxHeight = mapBlockIndex[wtx.hashBlock]->nHeight;` results in undefined behaviour when the block hash is not present in the map, returning a null value which is dereferenced via `->nHeight`.  This error is triggered by a zero-conf wallet transaction which has not been mined yet.  As discussed in #2480, on some systems there is a segfault whilst on others there is a silent exit.  This makes it difficult to write a test, but the fix has been tested empirically to confirm an exception is thrown.  This PR fixes the segfault and complements #2525 which prevents a user from sending from a zaddr with minconf 0.
2017-07-27 22:42:59 -07:00
Jack Grigg
047aec1e0e Add block download progress to metrics UI 2017-07-26 00:51:12 +00:00
Homu
e88ab1a920 Auto merge of #2529 - str4d:2444-rpc-www-authenticate, r=daira
[rpc] Add WWW-Authenticate header to 401 response

Fix cherry-picked from upstream PR bitcoin/bitcoin#7472.

Closes #2444.
2017-07-25 15:36:33 -07:00
Homu
eeac474228 Auto merge of #2543 - nathan-at-least:2499-specify-ci-worker-criteria, r=daira
Document our criteria for adding CI workers.

This is a doc improvement that came out of #2499.
2017-07-25 14:16:22 -07:00
Daira Hopwood
75401530d7 Document our criteria for adding CI workers. closes #2499
Author: Nathan Wilcox <nathan@z.cash>
Author: Daira Hopwood <daira@jacaranda.org>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-07-25 21:27:16 +01:00
Homu
a698116b28 Auto merge of #2478 - bitcartel:2477_send_alert_1.0.10, r=daira
Alert for 2017-06-23.a degraded networking (fixed in 1.0.10-1)

Alert 1004 (version 1.0.10 only) Issue #2477
2017-07-25 13:03:53 -07:00
Homu
95d18784ec Auto merge of #2525 - bitcartel:2519_no_zero_minconf_from_zaddr_zsendmany, r=daira
When sending from a zaddr, minconf cannot be zero.

Closes #2519.
2017-07-20 08:24:54 -07:00
Bjorn Hjortsberg
ecd04e914f Remove deprecated exception specification
Warns on a newer compiler that these are deprecated in C++11
2017-07-20 13:58:39 +02:00
Bjorn Hjortsberg
4272a1e2b1 Do not warn on built in declaration mismatch 2017-07-20 13:27:37 +02:00
Homu
d2627bc65d Auto merge of #2504 - daira:2501.remove-upnp, r=daira
Remove UPnP support. fixes #2500

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-07-16 03:43:54 -07:00
Homu
d3a976095f Auto merge of #2509 - str4d:ci-workers, r=str4d
Ansible playbook for configuring CI workers

The playbook in this PR can be used for configuring common Unix variants to run a Buildbot worker for the Zcash CI, starting from a fresh install (or a VM template provided by a hosting service).
2017-07-14 19:10:21 -07:00
Homu
1738e6957f Auto merge of #2458 - daira:2450.pyflakes-cleanup, r=str4d
pyflakes cleanup

Make the RPC tests pyflakes-clean. fixes #2450

Includes a fix that upstream had in https://github.com/bitcoin/bitcoin/pull/7802
2017-07-14 18:03:03 -07:00
Jack Grigg
e0c696a1e7 Add pyflakes to required Python modules
See #2494 for details.
2017-07-14 12:35:10 -05:00
Jack Grigg
e5f8e6185a Add a separate Buildbot host info template for EC2
Latent workers are not usually created on the instance type that will be used,
so memory and CPU info collected at AMI creation will likely be inaccurate.
2017-07-14 12:35:09 -05:00
Jack Grigg
8247fd954c Remove Buildbot version from host file
Buildbot master already obtains and publishes this in the UI.
2017-07-14 12:34:40 -05:00
Jack Grigg
3ba809b6d7 Add pyblake2 to required Python modules
See #2533 for details.
2017-07-14 12:34:40 -05:00
Jack Grigg
64363d1351 Add steps for setting up a latent worker on Amazon EC2 2017-07-14 12:34:37 -05:00
Jack Grigg
6ff5a13497 Add Buildbot worker setup to Ansible playbook
Currently assumes the host uses systemd
2017-07-14 12:33:55 -05:00
Homu
098e8139c5 Auto merge of #2535 - daira:zcash-is-experimental-wording, r=daira
Change wording in Security Warnings section of README.md.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-07-14 08:52:25 -07:00
Simon
9b5da42745 Fixes #2480. Null entry in map was dereferenced leading to a segfault. 2017-07-14 00:10:54 -07:00
Daira Hopwood
52ca5aac5b Change wording in Security Warnings section of README.md.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-07-14 05:18:08 +01:00
Homu
2c0fd9e5e4 Auto merge of #2522 - bitcartel:2446_coinbase_field_listunspent, r=daira
Add generated field to listunspent output

Closes #2446
2017-07-12 23:46:25 -07:00
Wladimir J. van der Laan
20fb708e6f rpc: Add WWW-Authenticate header to 401 response
A WWW-Authenticate header must be present in the 401
response to make clients know that they can authenticate,
and how.

    WWW-Authenticate: Basic realm="jsonrpc"

Fixes #7462.
2017-07-12 16:37:48 -05:00
Jack Grigg
689264bbff Add test for issue #2444
A WWW-Authenticate header must be present in the 401 response to make clients
know that they can authenticate, and how.
2017-07-12 16:34:58 -05:00
Simon
b639bb1eef Fixes #2519. When sending from a zaddr, minconf cannot be zero. 2017-07-11 11:29:43 -07:00
Simon
d77a0ac4a0 Closes #2446 by adding generated field to listunspent.
If generated is true, the unspent transaction output is from a
coinbase transaction and can only be sent to a shielded address.
2017-07-11 10:44:36 -07:00
Homu
5df11e9d8e Auto merge of #2460 - str4d:process-temp-release-notes, r=daira
Pull in temporary release notes during the release process

This PR assumes we always have at least one notable change in `doc/release-notes.md`, which should be the case for every release.
2017-07-10 11:44:00 -07:00
Homu
90a255a747 Auto merge of #2464 - str4d:torcontrol-rbf-resource-leak, r=daira
Net: Fix resource leak in ReadBinaryFile(...)

Introduced in 3290567bbd via PR #2177.

Cherry-picked from Bitcoin PR https://github.com/bitcoin/bitcoin/pull/10408
2017-07-10 10:43:22 -07:00
Jack Grigg
046c3d4f24 Simplify Python installation, inform user if they need to manually configure 2017-07-10 10:30:23 -05:00