Describe the bug
Recently I soft-linked a directory that belongs to another user to my home folder, and rime engine can't startup after a reboot.
I have debugged the coredump file and got the following informations.
at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:104
ec = std::error_code = {"generic": EACCES}
result = {_M_type = <optimized out>, _M_perms = <optimized out>}
#9 0x00007901d5d71ec1 in std::filesystem::__cxx11::directory_entry::status (this=0x64249dae56c0) at /usr/include/c++/13.2.1/bits/fs_dir.h:279
#10 std::filesystem::__cxx11::directory_entry::_M_file_type (this=0x64249dae56c0) at /usr/include/c++/13.2.1/bits/fs_dir.h:346
#11 std::filesystem::__cxx11::directory_entry::_M_file_type (this=0x64249dae56c0) at /usr/include/c++/13.2.1/bits/fs_dir.h:342
#12 std::filesystem::__cxx11::directory_entry::is_regular_file (this=0x64249dae56c0) at /usr/include/c++/13.2.1/bits/fs_dir.h:222
#13 rime::CleanOldLogFiles::Run (this=<optimized out>, deployer=<optimized out>) at /usr/src/debug/librime/librime/src/rime/lever/deployment_tasks.cc:649
--Type <RET> for more, q to quit, c to continue without paging--c
file_name = "music"
entry = @0x64249dae56c0: {_M_path = filesystem::path "./music" = {[0] = ".", [1] = "music"}, _M_type = std::filesystem::file_type::symlink}
__for_range = @0x7fff1d227af0: {_M_dir = {<std::__shared_ptr_access<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = 0x64249dae5690, _M_refcount = {_M_pi = 0x64249dae5680}}}
__for_begin = {_M_dir = {<std::__shared_ptr_access<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = 0x64249dae5690, _M_refcount = {_M_pi = 0x64249dae5680}}}
__for_end = {_M_dir = {<std::__shared_ptr_access<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = <optimized out>, _M_refcount = {_M_pi = <optimized out>}}}
files = std::vector of length 0, capacity 0
dir = <optimized out>
__for_range = std::vector of length 2, capacity 2 = {"/tmp/", "./"}
__for_begin = Python Exception <class 'gdb.error'>: value has been optimized out
__for_end = Python Exception <class 'gdb.error'>: value has been optimized out
success = <optimized out>
ymd = ".20240512\000\000"
now = 1715447299
today = ".20240512"
dirs = std::vector of length 2, capacity 2 = {"/tmp/", "./"}
removed = <optimized out>
Describe the bug Recently I soft-linked a directory that belongs to another user to my home folder, and rime engine can't startup after a reboot. I have debugged the coredump file and got the following informations.
So I think the problem is caused by https://github.com/rime/librime/blob/master/src/rime/lever/deployment_tasks.cc#L647 It got a permission denied while judging whether the path is a symbolic link, and blew up
Flavor(please complete the following information): Select your flavor:
Package: