AtomicFile: Failed to rename a temporary state file
Open
@Al2Klimov is already working on this.
Since Sep 7, 2023.
bug
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 616
- Avg merge
- 5d 6h
- Merged PRs (30d)
- 10
Description
Describe the bug
I stopped Icinga2 at the exact moment when it periodically performs a program state dump and ended up with the following exception.
[2022-09-06 16:43:26 +0000] critical/ThreadPool: Exception thrown in event handler:
Error: boost::filesystem::rename: No such file or directory: "/var/lib/icinga2/icinga2.state.tmp.RHjPil", "/var/lib/icinga2/icinga2.state"
Additional Context
[2022-09-06 16:43:09 +0000] information/WorkQueue: #6 (ApiListener, RelayQueue) items: 0, rate: 1484.1/s (89046/min 484828/5min 1073236/15min);
[2022-09-06 16:43:11 +0000] information/ConfigObject: Dumping program state to file '/var/lib/icinga2/icinga2.state'
^C[2022-09-06 16:43:13 +0000] information/Application: Received request to shut down.
...
[2022-09-06 16:43:14 +0000] information/ApiListener: 'api' stopped.
[2022-09-06 16:43:15 +0000] information/ConfigObject: Dumping program state to file '/var/lib/icinga2/icinga2.state'
[2022-09-06 16:43:26 +0000] critical/ThreadPool: Exception thrown in event handler:
Error: boost::filesystem::rename: No such file or directory: "/var/lib/icinga2/icinga2.state.tmp.RHjPil", "/var/lib/icinga2/icinga2.state"
Stacktrace:
0# __cxa_throw in /usr/lib64/icinga2/sbin/icinga2
1# 0x00007F5AD983243D in /lib64/libboost_filesystem.so.1.69.0
2# icinga::Utility::RenameFile(icinga::String const&, icinga::String const&) in /usr/lib64/icinga2/sbin/icinga2
3# icinga::AtomicFile::Commit() in /usr/lib64/icinga2/sbin/icinga2
4# icinga::ConfigObject::DumpObjects(icinga::String const&, int) in /usr/lib64/icinga2/sbin/icinga2
5# 0x0000000000C19B83 in /usr/lib64/icinga2/sbin/icinga2
6# boost::signals2::detail::signal_impl<void (icinga::Timer const* const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (icinga::Timer const* const&)>, boost::function<void (boost::signals2::connection const&, icinga::Timer const* const&)>, boost::signals2::mutex>::operator()(icinga::Timer const* const&) in /usr/lib64/icinga2/sbin/icinga2
7# 0x00000000009B1A18 in /usr/lib64/icinga2/sbin/icinga2
8# bool icinga::ThreadPool::Post<std::function<void ()> >(std::function<void ()>, icinga::SchedulerPolicy)::{lambda()#1}::operator()() const in /usr/lib64/icinga2/sbin/icinga2
9# boost::asio::detail::executor_op<boost::asio::detail::work_dispatcher<bool icinga::ThreadPool::Post<std::function<void ()> >(std::function<void ()>, icinga::SchedulerPolicy)::{lambda()#1}>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, std::allocator<void>*, boost::system::error_code const&, unsigned long) in /usr/lib64/icinga2/sbin/icinga2
10# boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) in /usr/lib64/icinga2/sbin/icinga2
11# boost::asio::detail::scheduler::run(boost::system::error_code&) in /usr/lib64/icinga2/sbin/icinga2
12# boost::asio::detail::posix_thread::func<boost::asio::thread_pool::thread_function>::run() in /usr/lib64/icinga2/sbin/icinga2
13# boost_asio_detail_posix_thread_function in /usr/lib64/icinga2/sbin/icinga2
14# 0x00007F5AD74F8EA5 in /lib64/libpthread.so.0
15# clone in /lib64/libc.so.6
[2022-09-06 16:43:32 +0000] information/IcingaApplication: Icinga has shut down.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.