Commit graph

748 commits

Author SHA1 Message Date
Thomas Waldmann
6c2c51939d Manifest: use limited unpacker 2017-06-25 23:36:28 +02:00
Ed Blackman
9c5425dda8 Split up interval parsing from filtering for --keep-within
Fixes #2610

Parse --keep-within argument early, via new validator method interval
passed to argparse type=, so that better error messages can be given.

Also swallows ValueError stacktrace per the comment in the old code that
including it wasn't desirable.
2017-06-25 12:10:13 -04:00
Thomas Waldmann
7ebad4f803 FUSE vs. fuse 2017-06-24 01:24:14 +02:00
Thomas Waldmann
49411d1c6c remove skipping the noatime tests on GNU/Hurd, fixes #2710
I recently installed GNU/Hurd 2017 and found the atime test works now.
2017-06-21 15:59:44 +02:00
Marian Beermann
771168a3af docs: extract: move cwd note to --help 2017-06-21 00:16:25 +02:00
Marian Beermann
09d0d566a5 docs: with-lock: convert to proper admonition 2017-06-21 00:16:06 +02:00
enkore
710ca196d8 Merge pull request #2715 from enkore/f/rare-opts2
delete: remove short option for --cache-only
2017-06-20 21:01:23 +02:00
Marian Beermann
6e5ae6dc04 delete: remove short option for --cache-only 2017-06-20 18:13:10 +02:00
Marian Beermann
82575dbfe5 argparse cleanup
- action='store_true' implies default=False
- missing metavars added
- minor code formatting
2017-06-20 18:09:00 +02:00
Marian Beermann
b1747873d9 docs: various formatting fixes 2017-06-20 15:23:52 +02:00
Marian Beermann
55e1a54385 AdHocCache: avoid divison by zero
0.01 ~ "one tick or less". ymmv.
2017-06-18 13:32:12 +02:00
Marian Beermann
c7dda0aca9 docs: assorted formatting fixes 2017-06-18 12:12:50 +02:00
TW
7df6597fa1 Merge pull request #2654 from enkore/f/no-cache-sync
create: --no-cache-sync
2017-06-18 03:22:06 +02:00
Marian Beermann
125b02c5c8 docs: list: fix unintended block quote 2017-06-18 02:10:10 +02:00
Marian Beermann
4689fd0c22 cache: explain fetch_missing_csize cost 2017-06-18 02:04:31 +02:00
Marian Beermann
0462a561c1 item: explicate csize isn't memorizable 2017-06-18 02:01:28 +02:00
Marian Beermann
2cbff48fd3 AdHocCache: explicate chunk_incref assertion 2017-06-18 02:01:27 +02:00
Marian Beermann
5eeca3493b TestAdHocCache 2017-06-18 02:01:27 +02:00
Marian Beermann
3c8257432a cache sync: fetch_missing_csize don't check ids against empty idx
This is always the case if self.do_cache is False.
2017-06-18 02:01:27 +02:00
Marian Beermann
fc7c560345 AdHocCache: fix size not propagating to incref 2017-06-18 02:01:27 +02:00
Marian Beermann
8aa745ddbd create: --no-cache-sync 2017-06-18 02:01:26 +02:00
Thomas Waldmann
726051b9d1 fix double delete in rebuild_refcounts
in case of the Manifest having an IntegrityError,
the entry for the manifest was already deleted.
2017-06-17 23:25:32 +02:00
Thomas Waldmann
72ef24cbc0 hashindex: implement KeyError 2017-06-17 23:25:32 +02:00
Thomas Waldmann
b7b6abca7a hashindex: more tests for basics
KeyError test failing due to bug.
2017-06-17 23:17:09 +02:00
Marian Beermann
3f72790b5d upgrade: remove short option for --inplace 2017-06-17 16:44:13 +02:00
Marian Beermann
28f944bd91 init: remove short option for --append-only 2017-06-17 16:40:56 +02:00
Marian Beermann
a04625cd13 nanorst: better inline formatting in tables 2017-06-17 12:39:26 +02:00
Marian Beermann
97089fe141 init: note possible denial of service with "none" mode 2017-06-17 12:39:26 +02:00
enkore
a013bd7d75 Merge pull request #2687 from enkore/docs/formatting-i2650
More consistent docs formatting
2017-06-17 12:38:48 +02:00
Marian Beermann
bd701e58c5 docs: backticks for option values 2017-06-17 12:20:25 +02:00
Marian Beermann
48642d787a docs: double backticks for --options 2017-06-17 12:18:52 +02:00
Marian Beermann
1f5ddb6572 document pattern denial of service 2017-06-17 11:59:56 +02:00
enkore
2b13607f46 init: shaext is supported in openssl and better on ryzen than b2 2017-06-16 11:44:23 +02:00
enkore
5eeaf7a67c Merge pull request #2660 from enkore/issue/2659
cache sync: check Operation.READ compatibility with manifest
2017-06-16 09:48:09 +02:00
enkore
b6a4cf19bc Merge pull request #2676 from enkore/f/fusecache
fuse: redo ItemCache
2017-06-16 09:43:51 +02:00
Marian Beermann
b2a4ae6bc2 lrucache: use explicit sentinel instead of None
just in case someone wants to cache a big pile of nothing
2017-06-16 00:41:38 +02:00
Marian Beermann
2766693706 fuse: update comments 2017-06-15 23:50:17 +02:00
Marian Beermann
faf2d0b537 chunker: fix invalid use of types
With the argument specified as unsigned char *, Cython emits
code in the Python wrapper to convert string-like objects to
unsigned char* (essentially PyBytes_AS_STRING).

Because the len(data) call is performed on a cdef'd string-ish type,
Cython emits a strlen() call, on the result of PyBytes_AS_STRING.

This is not correct, since embedded null bytes are entirely possible.

Incidentally, the code generated by Cython was also not correct,
since the Clang Static Analyzer found a path of execution where
passing arguments in a weird way from Python resulted in strlen(NULL).

Formulated like this, Cython emits essentially:

c_buzhash(
 PyBytes_AS_STRING(data),
 PyObject_Length(data),
 ...
)

which is correct.
2017-06-14 19:16:36 +02:00
Marian Beermann
3b928a4558 fuse: refactor ItemCache 2017-06-14 13:58:09 +02:00
Marian Beermann
9fd79a9e56 fuse: decrypted cache 2017-06-14 13:35:07 +02:00
Marian Beermann
f04119c246 fuse: ItemCache on top of object cache 2017-06-14 13:35:07 +02:00
Marian Beermann
ec532304d2 fuse: remove unnecessary normpaths 2017-06-14 13:34:34 +02:00
enkore
8e477414ee Merge pull request #2675 from enkore/f/fusecache
fuse: instrumentation
2017-06-14 09:31:55 +02:00
Marian Beermann
ff05895b7e fuse: don't keep all Archive() instances around
they're only needed inside process_archive, and not needed in general
for pending_archives.
2017-06-13 23:16:28 +02:00
Marian Beermann
879f72f227 fuse: log process_archive timing
the easier alternative to "/bin/time stat mountpoint/<archive>/..."
2017-06-13 23:16:28 +02:00
Marian Beermann
c791921951 fuse: instrument caches
note: signal processing can be arbitrarily delayed;
Python processes signals as soon as the code returns into the interpreter
loop, which doesn't happen unless libfuse returns control, i.e.
some request has been sent to the file system.
2017-06-13 23:16:28 +02:00
enkore
ae162307f7 Merge pull request #2672 from enkore/f/fastinfo
info: use CacheSynchronizer & HashIndex.stats_against
2017-06-13 22:51:03 +02:00
Thomas Waldmann
ccd066f0af FUSE: fix negative uid/gid crash, fixes #2674
they could come into archives e.g. when backing up
external drives under cygwin.
2017-06-13 19:51:37 +02:00
Marian Beermann
e189a4d302 info: use CacheSynchronizer & HashIndex.stats_against 2017-06-13 14:34:10 +02:00
enkore
fd1efbac90 Merge pull request #2671 from enkore/f/chunkerub
chunker: don't do uint32_t >> 32
2017-06-13 13:13:33 +02:00