diff options
author | Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com> | 2021-03-06 00:59:22 +0300 |
---|---|---|
committer | Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com> | 2021-03-06 00:59:22 +0300 |
commit | 51c6935efd8e358a32e82a98149075c940555635 (patch) | |
tree | 3acf1ed2d6a081fe462c7b65866ac5357849294a /test | |
parent | a74411eddb6401ab884c5f92cccc24b9a64a9e6f (diff) |
Fix lots of bugs due to newer kernel 5.8 in Ubuntu 20.04, and OpenZFS v0.8:
1. clone_extents_to() didn't handle partial clones, and now it does.
2. OpenZFS has a bug in SEEK_DATA which caused empty clones, we use a hacky
workaround to fix it.
3. mapped_file_handle now fails loudly if it fails to allocate the map due
to VMA exhaustion. This closes off a ton of unpleasant surprise in heavily
loaded applications.
4. If your Linux kernel was old enough, or you are on ZFS, renaming a
mapped_file_handle caused internal state corruption which led to lots of
bad things, including `bad_file_descriptor` errors.
5. On Windows, renaming a mapped_file_handle now tears down and restores
the maps, as you cannot rename a file with open maps.
Diffstat (limited to 'test')
-rw-r--r-- | test/tests/mapped.cpp | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/test/tests/mapped.cpp b/test/tests/mapped.cpp index d865f71d..f978a372 100644 --- a/test/tests/mapped.cpp +++ b/test/tests/mapped.cpp @@ -73,7 +73,6 @@ static inline void TestMappedView2() filesystem::remove("testfile", ec); } mapped_file_handle mfh = mapped_file_handle::mapped_file(1024 * 1024, {}, "testfile", file_handle::mode::write, file_handle::creation::if_needed, file_handle::caching::all, file_handle::flag::unlink_on_first_close).value(); - BOOST_CHECK(mfh.address() == nullptr); mfh.truncate(10000 * sizeof(int)).value(); byte *addr = mfh.address(); BOOST_CHECK(addr != nullptr); |