Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input/output error #465

Open
bakhtiyarneyman opened this issue Oct 20, 2023 · 1 comment
Open

Input/output error #465

bakhtiyarneyman opened this issue Oct 20, 2023 · 1 comment

Comments

@bakhtiyarneyman
Copy link

Input/output error when I run ls on one of the directories.

Expected Behavior

No errors.

Actual Behavior

ls: cannot access '/redacted/Document1.docx': Input/output error
total 194
drwxr-xr-x 1 bakhtiyar users   4096 Oct 17 11:27  .
drwxr-xr-x 1 bakhtiyar users   4096 Jun  3 01:18  ..
-????????? ? ?         ?          ?            ?  Document1.docx

Stack trace:

[2023-10-19 20:31:42.794] [cryfs] [info] Filesystem started.
[2023-10-19 20:31:51.330] [cryfs] [error] Assertion [blob != boost::none] failed in /build/source/src/cryfs/impl/filesystem/parallelaccessfsblobstore/ParallelAccessFsBlobStore.h:56: Blob not found
    cpputils::backtrace[abi:cxx11]() in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::format(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::assert_fail_release(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    std::_Function_handler<fspp::num_bytes_t (blockstore::IdWrapper<blockstore::BlockIdTag> const&), cryfs::parallelaccessfsblobstore::ParallelAccessFsBlobStore::_getLstatSize()::{lambda(blockstore::IdWrapper<blockstore::BlockIdTag> const&)#1}>::_M_invoke(std::_Any_data const&, blockstore::IdWrapper<blockstore::BlockIdTag> const&) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::fsblobstore::DirBlob::statChild(blockstore::IdWrapper<blockstore::BlockIdTag> const&) const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::CryNode::stat() const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::FilesystemImpl::lstat(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::fuse::Fuse::getattr(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    (anonymous namespace)::fusepp_getattr(char const*, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    0x00007FA2D5B430C8 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4330C in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4EF93 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4C034 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D56ABE64 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
    0x00007FA2D572D9F0 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
[2023-10-19 20:31:51.330] [cryfs] [error] AssertFailed in Fuse::getattr: Assertion [blob != boost::none] failed in /build/source/src/cryfs/impl/filesystem/parallelaccessfsblobstore/ParallelAccessFsBlobStore.h:56: Blob not found
    cpputils::backtrace[abi:cxx11]() in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::format(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::assert_fail_release(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    std::_Function_handler<fspp::num_bytes_t (blockstore::IdWrapper<blockstore::BlockIdTag> const&), cryfs::parallelaccessfsblobstore::ParallelAccessFsBlobStore::_getLstatSize()::{lambda(blockstore::IdWrapper<blockstore::BlockIdTag> const&)#1}>::_M_invoke(std::_Any_data const&, blockstore::IdWrapper<blockstore::BlockIdTag> const&) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::fsblobstore::DirBlob::statChild(blockstore::IdWrapper<blockstore::BlockIdTag> const&) const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::CryNode::stat() const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::FilesystemImpl::lstat(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::fuse::Fuse::getattr(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    (anonymous namespace)::fusepp_getattr(char const*, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    0x00007FA2D5B430C8 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4330C in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4EF93 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4C034 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D56ABE64 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
    0x00007FA2D572D9F0 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
[2023-10-19 20:31:51.411] [cryfs] [error] Assertion [blob != boost::none] failed in /build/source/src/cryfs/impl/filesystem/parallelaccessfsblobstore/ParallelAccessFsBlobStore.h:56: Blob not found
    cpputils::backtrace[abi:cxx11]() in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::format(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::assert_fail_release(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    std::_Function_handler<fspp::num_bytes_t (blockstore::IdWrapper<blockstore::BlockIdTag> const&), cryfs::parallelaccessfsblobstore::ParallelAccessFsBlobStore::_getLstatSize()::{lambda(blockstore::IdWrapper<blockstore::BlockIdTag> const&)#1}>::_M_invoke(std::_Any_data const&, blockstore::IdWrapper<blockstore::BlockIdTag> const&) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::fsblobstore::DirBlob::statChild(blockstore::IdWrapper<blockstore::BlockIdTag> const&) const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::CryNode::stat() const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::FilesystemImpl::lstat(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::fuse::Fuse::getattr(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    (anonymous namespace)::fusepp_getattr(char const*, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    0x00007FA2D5B430C8 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4330C in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4EF93 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4C034 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D56ABE64 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
    0x00007FA2D572D9F0 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
[2023-10-19 20:31:51.411] [cryfs] [error] AssertFailed in Fuse::getattr: Assertion [blob != boost::none] failed in /build/source/src/cryfs/impl/filesystem/parallelaccessfsblobstore/ParallelAccessFsBlobStore.h:56: Blob not found
    cpputils::backtrace[abi:cxx11]() in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::format(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cpputils::_assert::assert_fail_release(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    std::_Function_handler<fspp::num_bytes_t (blockstore::IdWrapper<blockstore::BlockIdTag> const&), cryfs::parallelaccessfsblobstore::ParallelAccessFsBlobStore::_getLstatSize()::{lambda(blockstore::IdWrapper<blockstore::BlockIdTag> const&)#1}>::_M_invoke(std::_Any_data const&, blockstore::IdWrapper<blockstore::BlockIdTag> const&) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::fsblobstore::DirBlob::statChild(blockstore::IdWrapper<blockstore::BlockIdTag> const&) const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    cryfs::CryNode::stat() const in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::FilesystemImpl::lstat(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    fspp::fuse::Fuse::getattr(boost::filesystem::path const&, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    (anonymous namespace)::fusepp_getattr(char const*, stat*) in /nix/store/s17mvsp4z8wb0v09xy451wfnav8iq93m-cryfs-0.11.3/bin/cryfs
    0x00007FA2D5B430C8 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4330C in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4EF93 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D5B4C034 in /nix/store/56ds0scjaifn3ii4153yidjl5nz6ym65-fuse-2.9.9/lib/libfuse.so.2
    0x00007FA2D56ABE64 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6
    0x00007FA2D572D9F0 in /nix/store/whypqfa83z4bsn43n4byvmw80n4mg3r8-glibc-2.37-45/lib/libc.so.6

Steps to Reproduce the Problem

I don't know.

Specifications

  • CryFS Version: 0.11.3
  • Operating System (incl. Version): NixOS 23.05
@bakhtiyarneyman
Copy link
Author

bakhtiyarneyman commented Mar 6, 2024

I don't have evidence for it, but I have a hunch that this happened because of a concurrent write by multiple independent processes. This is outlined as not supported, and I thought I was careful enough that it would not happen. But the other day I observed that the onedrive client on a machine on which no one was doing any active work, started suddenly uploading encrypted chunks after having been downloading them as I was editing on a different machine. I'm puzzled by this. Can cryfs be the cause of the writes?

 ~ onedrive --version
onedrive v2.4.25
 ~ cryfs --version
CryFS Version 0.11.4

EDIT: I just realized that the language that forbids concurrent access doesn't talk about writes specifically, but concurrent access in general. So probably it means concurrent mounting is always bad even if the user is careful enough not to write?

EDIT2: For clarity: I have two machines, each has a directory, and the two directories are synchronized via onedrive client. The directory on each machine is backing cryfs, which is perpetually mounted on that machine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant