Icinga / Icinga/icinga2

AtomicFile: Failed to rename a temporary state file

Open
#9,516 2 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.