diff options
| author | Wladimir J. van der Laan <[email protected]> | 2018-02-12 10:11:28 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2018-02-12 10:11:37 +0100 |
| commit | 79313d2e2040451ef98a7a921c53f7736208c934 (patch) | |
| tree | fd0db0a5107520d3c6158117a82ca4435d53f832 /src/httpserver.h | |
| parent | Merge #12394: gitian-builder.sh: fix --setup doc, since lxc is default (diff) | |
| parent | Reset pblocktree before deleting LevelDB file (diff) | |
| download | discoin-79313d2e2040451ef98a7a921c53f7736208c934.tar.xz discoin-79313d2e2040451ef98a7a921c53f7736208c934.zip | |
Merge #12401: Reset pblocktree before deleting LevelDB file
a8b5d20 Reset pblocktree before deleting LevelDB file (Sjors Provoost)
Pull request description:
#11043 repaced:
```
delete pblocktree;
pblocktree = new CBlockTreeDB(nBlockTreeDBCache, false, fReset);
```
With:
```
pblocktree.reset(new CBlockTreeDB(nBlockTreeDBCache, false, fReset));
```
This is problematic because `new CBlockTreeDB` tries to delete the existing file, which will fail with `LOCK: already held by process` if it's still open. That's the case for QT.
When QT finds a problem with the index it will ask the user if they want to reindex. At that point it has already opened `blocks/index`. It then runs this [while loop](https://github.com/bitcoin/bitcoin/blob/v0.16.0rc3/src/init.cpp#L1415) again with `fReset = 1`, resulting in the above error.
This change makes that error go away, presumably because `reset()` without an argument closes the file.
Tree-SHA512: fde8b546912f6773ac64da8476673cc270b125aa2d909212391d1a2001b35c8260a8772126b99dfd76b39faaa286feb7c43239185fe584bd4dc2bc04a64044ce
Diffstat (limited to 'src/httpserver.h')
0 files changed, 0 insertions, 0 deletions