Commit Graph

847 Commits

Author SHA1 Message Date
Joe Thornber
d17ad86a88 [*_restore] Use a little wrapper class for the expat XML_Parser to ensure it gets destroyed. 2014-08-26 11:23:29 +01:00
Joe Thornber
a7c96c0e1e [everything] Fix circular shared pointer references.
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.

This prevented objects being destroyed when various programs exited.

From now on we'll try and only use a shared ptr if ownership is
implied.  Otherwise a reference will be used (eg, for up pointers).
2014-08-26 11:14:49 +01:00
Joe Thornber
930cc9d412 [block-manager] Superblocks weren't being marked as DIRTY
Gulp
2014-08-21 14:25:02 +01:00
Joe Thornber
b493a30b65 [block-cache] tweak when validators are swapped
Makes it more consitent in the face of exceptions
2014-08-21 14:23:14 +01:00
Joe Thornber
6f760ccd87 [block-cache] When changing validators the new validator check fn was only being called if the block was dirty. 2014-08-21 14:22:14 +01:00
Joe Thornber
b5a9cd6043 [block-cache] Create just one noop_validator
No need to create a separate one for each block.
2014-08-21 14:20:36 +01:00
Joe Thornber
4799becb01 [block-cache] fix leaking validators
The memory for the blocks is explicitly managed, and the destructors
for the blocks wasn't being called.
2014-08-21 14:19:36 +01:00
Joe Thornber
0d3942cae8 [block-manager] ensure the superblock cannot be taken concurrently with any other lock. 2014-08-21 12:18:05 +01:00
Joe Thornber
3724f78a13 [block_t] Fix a validator test 2014-08-21 11:51:04 +01:00
Joe Thornber
e3d459a148 [era_restore] add some cucumber tests 2014-08-21 11:27:52 +01:00
Joe Thornber
feb8a03d5f [btree_damage_tracker] Initialise all path_tracker objects with a null path.
This fixes an insidious bug that took me ages to track down.  Without
it the non-existent front() of a list was sometimes being accessed.
2014-08-21 11:25:07 +01:00
Joe Thornber
1a632f9d53 [era/xml restorer] bug fixes 2014-08-21 11:22:12 +01:00
Joe Thornber
5465c95134 [era/xml format] bring in line with the Ruby library 2014-08-21 11:21:47 +01:00
Joe Thornber
85ab149685 [era/metadata.{h,cc}] Support creation of new metadata 2014-08-21 11:20:43 +01:00
Joe Thornber
bf1b65e62f Update gemfile.lock 2014-08-21 11:18:06 +01:00
Joe Thornber
6f804cab24 [block_manager] Track the number of superblocks, throw an exception if someone tries to open two a once. 2014-08-21 11:17:20 +01:00
Joe Thornber
94356a1648 [era_check] Was returning after just checking the superblock.
Presumably old debug.
2014-08-15 10:11:35 +01:00
Joe Thornber
157eca4dd0 [era_restore] tweak help message 2014-08-12 10:20:29 +01:00
Joe Thornber
75a797253e [build] build era_restore by default 2014-08-12 10:18:58 +01:00
Joe Thornber
ad38cfe9c9 [block cache] Comment out the statistics output for now 2014-08-12 10:15:14 +01:00
Joe Thornber
56e79676f3 update Gemfile.lock 2014-08-12 10:09:30 +01:00
Joe Thornber
283ab4ad99 first drop of era_restore 2014-08-07 15:43:01 +01:00
Joe Thornber
1d12d0ff8e remove empty destructor 2014-08-07 15:42:10 +01:00
Joe Thornber
936e14441f Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-08-06 16:32:04 +01:00
Joe Thornber
8f73241119 [era] parser for the XML format 2014-08-06 16:30:38 +01:00
Joe Thornber
3e5c02459c whitespace 2014-08-06 16:30:26 +01:00
Joe Thornber
efe597f097 [README] Add dep for libaio 2014-08-06 16:29:50 +01:00
Joe Thornber
7e2ea38534 [configure.ac] Make sure libaio.h is present, and remove deps for a couple of boost headers we're no longer using. 2014-08-06 16:27:18 +01:00
Joe Thornber
1d38b390b5 Factor common code out of the xml_format files. 2014-08-06 15:29:02 +01:00
Joe Thornber
d8f678b079 Rename configure.in to configure.ac to stop auto tools bleating 2014-08-06 15:20:40 +01:00
Joe Thornber
a75a2118a0 era_invalidate: update help to reflect --metadata-snapshot 2014-08-06 11:15:18 +01:00
Joe Thornber
aa08c8393a Man pages were being installed in a v. funny place. 2014-08-06 11:14:15 +01:00
Joe Thornber
672582b2a8 Install era manpages 2014-08-06 11:10:22 +01:00
Joe Thornber
bdec4b353c tweak some man pages 2014-08-06 10:33:23 +01:00
Joe Thornber
41ade2a259 Add era_invalidate manpage 2014-08-06 10:32:39 +01:00
Joe Thornber
a2d6e86c51 Add era_dump man page. 2014-08-05 15:43:54 +01:00
Joe Thornber
460c0ef8d2 era_check man page 2014-08-05 15:17:43 +01:00
Joe Thornber
48c6dc0762 Flush the block cache stats when they're complete 2014-08-05 14:53:03 +01:00
Joe Thornber
bf138c2a50 update gem lock file 2014-08-05 14:50:35 +01:00
Joe Thornber
ea62f6e06e add changes file 2014-08-05 12:21:06 +01:00
Joe Thornber
d00aef9219 [thini_restore] add a quiet option to turn off the progress monitor 2014-08-05 12:10:34 +01:00
Joe Thornber
fccc1dfcb0 [thin_restore] Add a progress monitor 2014-08-05 11:47:57 +01:00
Joe Thornber
8321bdcf59 Merge pull request #13 from bgilbert/fix-units
thin_metadata_size: Fix long names of units
2014-08-05 09:34:37 +01:00
Joe Thornber
f534664f96 Add stats to block cache and remove the info fn 2014-07-31 12:18:01 +01:00
Joe Thornber
eee9004354 whitespace 2014-07-30 12:27:33 +01:00
Joe Thornber
74de9a1a94 [btree_damage_visitor] some tweaks to stop constructing so many btree_paths. 2014-07-30 12:21:34 +01:00
Joe Thornber
a99d6896a8 Fix a bug in the block cache read path. 2014-07-29 13:41:45 +01:00
Joe Thornber
f06a2673c5 wip 2014-07-29 11:34:26 +01:00
Joe Thornber
d482a76bda Use placement new to initialise the blocks 2014-07-28 14:32:33 +01:00
Joe Thornber
5c82d50204 remove some debug 2014-07-28 14:32:20 +01:00