Skip to content

Improve shutdown diagnostics to identify SIGTERM source#2839

Merged
DL6ER merged 2 commits into
developmentfrom
fix/log-shutdown-source-2818
Apr 12, 2026
Merged

Improve shutdown diagnostics to identify SIGTERM source#2839
DL6ER merged 2 commits into
developmentfrom
fix/log-shutdown-source-2818

Conversation

@DL6ER

@DL6ER DL6ER commented Apr 7, 2026

Copy link
Copy Markdown
Member

What does this implement/fix?

Issue #2818 reports FTL terminating cleanly (code 0) after ~15-16 hours of uptime, with the only captured log lines being:

  Thread webserver (7) is idle, terminating it.
  All threads joined
  ########## FTL terminated after 15h 50m 45s (code 0)! ##########

A thorough audit of all paths that can set the global killed flag confirms there is no internal code path leading to spontaneous termination - every shutdown is either test-mode (pihole-FTL test), a die()/longjmp from dnsmasq, or an external SIGTERM mapped to dnsmasq's EVENT_TERM via SIGUSR6. The "Thread webserver (7) is idle" message is a red herring: the webserver cert-renewal thread sleeps for 24 hours between checks, so it is essentially always cancellable when shutdown begins.

The reason the reporter could not diagnose the cause is that the relevant information was either logged at DEBUG level (and therefore invisible) or emitted far above the final termination message (and therefore lost when the log was truncated). This commit closes both gaps so the next occurrence will be diagnosable from a tail of FTL.log alone:

  • signals.c: persist the SIGTERM sender info ("name (PID, user UID)") into a static buffer in SIGTERM_handler, exposed via get_term_source(). The buffer is sized 256 bytes and only ever read after being written by the signal handler, so no locking is needed.

  • daemon.c: in cleanup(), re-log the stored SIGTERM source as "Terminated by ..." right before the final "FTL terminated after" banner. Even when the log is truncated to the last few lines, the termination source will now be visible alongside the final message.

  • main.c: promote the "Shutting down (exit code, jmpret)" log from log_debug to log_info so the entry into the cleanup path is always recorded, not just under DEBUG_ANY.

  • webserver/webserver.c: split the webserver thread's 24-hour cert-check sleep into 24 x 1-hour sleeps with intermediate killed checks. This is a robustness improvement, not a bug fix: the thread is no longer marked as cancellable for 24 hours straight, so the misleading "is idle" log on shutdown happens at most an hour after the last cert check rather than at any point in a 24-hour window.

  • test/test_final.bats: add two regression tests that run after the existing "FTL terminates with message" test:

    • Verify "INFO: Shutting down (exit code" is present (catches accidental regression of the log_debug -> log_info change).
    • Verify "INFO: Terminated by" is present AND that the three key
      messages appear in order: Shutting down -> Terminated by ->
      FTL terminated after.

After this change, a SIGTERM-triggered shutdown produces:

  INFO: Asked to terminate by "systemd" (PID 1, user root UID 0)
  ...
  INFO: Shutting down (exit code 0, jmpret 0)
  INFO: Finished final database update
  INFO: Waiting for threads to join
  INFO: Thread webserver (7) is idle, terminating it.
  INFO: All threads joined
  INFO: Terminated by "systemd" (PID 1, user root UID 0)
  INFO: ########## FTL terminated after 15h 50m 45s (code 0)! ##########

Related issue or feature (if applicable): N/A

Pull request in docs with documentation (if applicable): N/A


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributors guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented my proposed changes within the code.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the EUPL 1.2 license
  5. I have squashed any insignificant commits. (git rebase)

Checklist:

  • The code change is tested and works locally.
  • I based my code and PRs against the repositories development branch.
  • I signed off all commits. Pi-hole enforces the DCO for all contributions
  • I signed all my commits. Pi-hole requires signatures to verify authorship
  • I have read the above and my PR is ready for review.

Copilot AI review requested due to automatic review settings April 7, 2026 05:17
@DL6ER DL6ER requested a review from a team as a code owner April 7, 2026 05:17
@DL6ER DL6ER added the Debugging label Apr 7, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves FTL shutdown observability by preserving and re-logging SIGTERM sender details close to the final termination banner, promoting shutdown logging to INFO, and adjusting webserver thread sleep behavior to reduce misleading “idle” shutdown diagnostics.

Changes:

  • Persist SIGTERM sender information in signals.c and re-log it during cleanup() near the final termination banner.
  • Promote shutdown-entry logging in main.c from DEBUG to INFO and add regression tests validating presence and ordering of key shutdown log lines.
  • Split the webserver thread’s 24-hour sleep into 1-hour intervals with killed checks.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/test_final.bats Adds regression tests for shutdown INFO logging and message ordering near termination.
src/webserver/webserver.c Changes cert-check idle sleep to 24×1h intervals with intermediate killed checks.
src/signals.h Exposes get_term_source() for retrieving persisted SIGTERM sender info.
src/signals.c Stores SIGTERM sender info in a static buffer and provides get_term_source().
src/main.c Promotes “Shutting down …” log line from DEBUG to INFO.
src/daemon.c Re-logs the stored SIGTERM source immediately before the final termination banner.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/signals.h Outdated
Issue #2818 reports FTL terminating cleanly (code 0) after ~15-16 hours of
uptime, with the only captured log lines being:

  Thread webserver (7) is idle, terminating it.
  All threads joined
  ########## FTL terminated after 15h 50m 45s (code 0)! ##########

A thorough audit of all paths that can set the global `killed` flag confirms
there is no internal code path leading to spontaneous termination - every
shutdown is either test-mode (`pihole-FTL test`), a `die()`/longjmp from
dnsmasq, or an external SIGTERM mapped to dnsmasq's EVENT_TERM via SIGUSR6.
The "Thread webserver (7) is idle" message is a red herring: the webserver
cert-renewal thread sleeps for 24 hours between checks, so it is essentially
always cancellable when shutdown begins.

The reason the reporter could not diagnose the cause is that the relevant
information was either logged at DEBUG level (and therefore invisible) or
emitted far above the final termination message (and therefore lost when the
log was truncated). This commit closes both gaps so the next occurrence will
be diagnosable from a tail of FTL.log alone:

- signals.c: persist the SIGTERM sender info ("name (PID, user UID)") into
  a static buffer in SIGTERM_handler, exposed via get_term_source(). The
  buffer is sized 256 bytes and only ever read after being written by the
  signal handler, so no locking is needed.

- daemon.c: in cleanup(), re-log the stored SIGTERM source as
  "Terminated by ..." right before the final "FTL terminated after"
  banner. Even when the log is truncated to the last few lines, the
  termination source will now be visible alongside the final message.

- main.c: promote the "Shutting down (exit code, jmpret)" log from
  log_debug to log_info so the entry into the cleanup path is always
  recorded, not just under DEBUG_ANY.

- webserver/webserver.c: split the webserver thread's 24-hour
  cert-check sleep into 24 x 1-hour sleeps with intermediate `killed`
  checks. This is a robustness improvement, not a bug fix: the thread
  is no longer marked as cancellable for 24 hours straight, so the
  misleading "is idle" log on shutdown happens at most an hour after
  the last cert check rather than at any point in a 24-hour window.

- test/test_final.bats: add two regression tests that run after the
  existing "FTL terminates with message" test:
    * Verify "INFO: Shutting down (exit code" is present (catches
      accidental regression of the log_debug -> log_info change).
    * Verify "INFO: Terminated by" is present AND that the three key
      messages appear in order: Shutting down -> Terminated by ->
      FTL terminated after.

After this change, a SIGTERM-triggered shutdown produces:

  INFO: Asked to terminate by "systemd" (PID 1, user root UID 0)
  ...
  INFO: Shutting down (exit code 0, jmpret 0)
  INFO: Finished final database update
  INFO: Waiting for threads to join
  INFO: Thread webserver (7) is idle, terminating it.
  INFO: All threads joined
  INFO: Terminated by "systemd" (PID 1, user root UID 0)
  INFO: ########## FTL terminated after 15h 50m 45s (code 0)! ##########

Signed-off-by: Dominik <dl6er@dl6er.de>
@DL6ER DL6ER force-pushed the fix/log-shutdown-source-2818 branch from 75a7c6b to 3952f05 Compare April 7, 2026 05:26
…lity

The EXTRAWARN_GCC7 and EXTRAWARN_GCC8 blocks in CMakeLists.txt only
checked compiler version, not compiler identity. Clang (which reports
version >= 8) entered these blocks and received GCC-only flags like
-Wsuggest-attribute=pure, causing a fatal error under -Werror:

  error: unknown warning group '-Wsuggest-attribute=pure',
         ignored [-Werror,-Wunknown-warning-option]

Similarly, the #pragma GCC diagnostic in signals.c that suppresses
-Wsuggest-attribute=pure for get_term_source() triggered the same
error on clang.

- CMakeLists.txt: add CMAKE_C_COMPILER_ID STREQUAL "GNU" guard to
  the GCC 7+ and GCC 8+ warning blocks, matching the existing guard
  on EXTRAWARN_GCC6 and the hardening flags.

- signals.c: wrap the #pragma GCC diagnostic push/pop with
  #if defined(__GNUC__) && !defined(__clang__) so clang never sees
  the unsupported warning group.

Signed-off-by: Dominik <dl6er@dl6er.de>

@yubiuser yubiuser left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before:

2026-04-10 18:56:43.611 UTC [1738720M] INFO: Asked to terminate by "/sbin/init" (PID 1, user root UID 0)
2026-04-10 18:56:43.612 UTC [1738720/T1738756] INFO: Terminating timer thread
2026-04-10 18:56:43.656 UTC [1738720/T1738753] INFO: Terminating database thread
2026-04-10 18:56:43.692 UTC [1738720/T1738755] INFO: Terminating resolver thread
2026-04-10 18:56:43.782 UTC [1738720/T1738754] INFO: Terminating GC thread
2026-04-10 18:56:43.864 UTC [1738720M] INFO: Finished final database update
2026-04-10 18:56:43.864 UTC [1738720M] INFO: Waiting for threads to join
2026-04-10 18:56:43.864 UTC [1738720M] INFO: Thread ntp-client (4) is idle, terminating it.
2026-04-10 18:56:43.864 UTC [1738720M] INFO: Thread webserver (7) is idle, terminating it.
2026-04-10 18:56:43.864 UTC [1738720M] INFO: All threads joined
2026-04-10 18:56:43.865 UTC [1738720M] INFO: PID file emptied
2026-04-10 18:56:43.867 UTC [1738720M] INFO: Stored 0 API sessions in the database
2026-04-10 18:56:44.497 UTC [1738720M] INFO: ########## FTL terminated after 3h 54m 51s  (code 0)! ##########

After

2026-04-10 18:58:30.392 UTC [1819638M] INFO: Asked to terminate by "/sbin/init" (PID 1, user root UID 0)
2026-04-10 18:58:30.392 UTC [1819638M] INFO: Shutting down (exit code 0, jmpret 0)
2026-04-10 18:58:30.430 UTC [1819638/T1819676] INFO: Terminating timer thread
2026-04-10 18:58:30.447 UTC [1819638/T1819673] INFO: Terminating database thread
2026-04-10 18:58:30.630 UTC [1819638/T1819674] INFO: Terminating GC thread
2026-04-10 18:58:30.663 UTC [1819638M] INFO: Finished final database update
2026-04-10 18:58:30.663 UTC [1819638M] INFO: Waiting for threads to join
2026-04-10 18:58:30.664 UTC [1819638M] INFO: Thread dns-client (2) is idle, terminating it.
2026-04-10 18:58:32.000 UTC [1819638/T1819672] INFO: Terminating NTP thread
2026-04-10 18:58:32.000 UTC [1819638M] INFO: Thread webserver (7) is idle, terminating it.
2026-04-10 18:58:32.000 UTC [1819638M] INFO: All threads joined
2026-04-10 18:58:32.001 UTC [1819638M] INFO: PID file emptied
2026-04-10 18:58:32.003 UTC [1819638M] INFO: Stored 0 API sessions in the database
2026-04-10 18:58:32.650 UTC [1819638M] INFO: Terminated by "/sbin/init" (PID 1, user root UID 0)
2026-04-10 18:58:32.651 UTC [1819638M] INFO: ########## FTL terminated after 15s  (code 0)! ##########

@DL6ER DL6ER merged commit cebc5b7 into development Apr 12, 2026
18 checks passed
@DL6ER DL6ER deleted the fix/log-shutdown-source-2818 branch April 12, 2026 09:52
@PromoFaux PromoFaux mentioned this pull request Apr 24, 2026
@pralor-bot

Copy link
Copy Markdown

This pull request has been mentioned on Pi-hole Userspace. There might be relevant details there:

https://discourse.pi-hole.net/t/pi-hole-ftl-v6-6-1-and-core-v6-4-2-released/85843/1

github-actions Bot pushed a commit to bigbeartechworld/big-bear-universal-apps that referenced this pull request Apr 25, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [pihole/pihole](https://redirect.github.com/pi-hole/docker-pi-hole) | patch | `2026.04.0` → `2026.04.1` |

---

### Release Notes

<details>
<summary>pi-hole/docker-pi-hole (pihole/pihole)</summary>

### [`v2026.04.1`](https://redirect.github.com/pi-hole/docker-pi-hole/releases/tag/2026.04.1)

[Compare Source](https://redirect.github.com/pi-hole/docker-pi-hole/compare/2026.04.0...2026.04.1)

<!-- Release notes generated using configuration in .github/release.yml at master -->

##### What's Changed

- docs: update capability documentation links by [@&#8203;SirRGB](https://redirect.github.com/SirRGB) in [#&#8203;2025](https://redirect.github.com/pi-hole/docker-pi-hole/pull/2025)

##### New Contributors

- [@&#8203;SirRGB](https://redirect.github.com/SirRGB) made their first contribution in [#&#8203;2025](https://redirect.github.com/pi-hole/docker-pi-hole/pull/2025)

**Full Changelog**: <pi-hole/docker-pi-hole@2026.04.0...2026.04.1>

##### New component versions included in this tag:

##### What's Changed (FTL v6.6.1)

- Add new `GET /api/config/_properties` endpoint by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2356](https://redirect.github.com/pi-hole/FTL/pull/2356)
- Fix thread-safety issues causing SIGSEGV under concurrent API load by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2835](https://redirect.github.com/pi-hole/FTL/pull/2835)
- fix: fix rare race condition for SHM strings in API handlers by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2833](https://redirect.github.com/pi-hole/FTL/pull/2833)
- Accept punycode domains that libidn2 rejects under IDNA2008 by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2838](https://redirect.github.com/pi-hole/FTL/pull/2838)
- Improve shutdown diagnostics to identify SIGTERM source by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2839](https://redirect.github.com/pi-hole/FTL/pull/2839)
- Resolve empty backtraces when addr2line is not installed by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2831](https://redirect.github.com/pi-hole/FTL/pull/2831)
- Improve thread-safety for concurrent API requests by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2847](https://redirect.github.com/pi-hole/FTL/pull/2847)
- Don't skip device lookup when resolver.macNames is disabled by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2846](https://redirect.github.com/pi-hole/FTL/pull/2846)
- Fix linker error when compiling w/o optimization by [@&#8203;aeolio](https://redirect.github.com/aeolio) in [pi-hole/FTL#2850](https://redirect.github.com/pi-hole/FTL/pull/2850)
- Clarify `dns.blockESNI` wording by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/FTL#2784](https://redirect.github.com/pi-hole/FTL/pull/2784)
- Preserve log file path config when fopen fails by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2834](https://redirect.github.com/pi-hole/FTL/pull/2834)

##### Security advisories

- <GHSA-6w8x-p785-6pm4>
  - Fixed with : [pi-hole/FTL@`88c569a`](https://redirect.github.com/pi-hole/FTL/commit/88c569aa026d905d0066135bb71f36a13acf4bf4) and [pi-hole/pi-hole@`7ccb8dd`](https://redirect.github.com/pi-hole/pi-hole/commit/7ccb8ddfb085479fa96e801886eb1cdbeaf3a720)
- <GHSA-9cqv-839p-gpq2>
  - Fixed with : [pi-hole/FTL@`0c46e4e`](https://redirect.github.com/pi-hole/FTL/commit/0c46e4ec7fe57f762fce261625f2cf5d43806e6d)

##### New Contributors

- [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) made their first contribution in [pi-hole/FTL#2784](https://redirect.github.com/pi-hole/FTL/pull/2784)

**Full Changelog**: <pi-hole/FTL@v6.6...v6.6.1>

##### What's Changed (Core v6.4.2)

- Wipe version file before creating a new one by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6538](https://redirect.github.com/pi-hole/pi-hole/pull/6538)
- Fix ownership permissions for containing directories in fix\_owner\_per… by [@&#8203;PromoFaux](https://redirect.github.com/PromoFaux) in [pi-hole/pi-hole#6589](https://redirect.github.com/pi-hole/pi-hole/pull/6589)
- Remove reference to /usr/local/bin/COL\_TABLE by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/pi-hole#6594](https://redirect.github.com/pi-hole/pi-hole/pull/6594)
- Skip apt cache update when pihole-meta is current by [@&#8203;PromoFaux](https://redirect.github.com/PromoFaux) in [pi-hole/pi-hole#6581](https://redirect.github.com/pi-hole/pi-hole/pull/6581)
- Set versions in /etc/pihole/versions to null if script fails by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6550](https://redirect.github.com/pi-hole/pi-hole/pull/6550)
- Remove redundant touching of logfiles from systemd Service by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6601](https://redirect.github.com/pi-hole/pi-hole/pull/6601)
- Loosen requirements for local file access for gravity by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6430](https://redirect.github.com/pi-hole/pi-hole/pull/6430)
- Fix permission for \*.etag files after gravity run by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6353](https://redirect.github.com/pi-hole/pi-hole/pull/6353)
- add logrotate to DEB and RPM dependencies by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/pi-hole#6524](https://redirect.github.com/pi-hole/pi-hole/pull/6524)
- Improve gravity error message including curl exit code and errormsg by [@&#8203;rdwebdesign](https://redirect.github.com/rdwebdesign) in [pi-hole/pi-hole#6605](https://redirect.github.com/pi-hole/pi-hole/pull/6605)

##### Security advisories

- <GHSA-6w8x-p785-6pm4>
  - Fixed with : [pi-hole/pi-hole@`7ccb8dd`](https://redirect.github.com/pi-hole/pi-hole/commit/7ccb8ddfb085479fa96e801886eb1cdbeaf3a720) and [pi-hole/FTL@`88c569a`](https://redirect.github.com/pi-hole/FTL/commit/88c569aa026d905d0066135bb71f36a13acf4bf4)

**Full Changelog**: <pi-hole/pi-hole@v6.4.1...v6.4.2>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/bigbeartechworld/big-bear-universal-apps).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->
github-actions Bot pushed a commit to bigbeartechworld/big-bear-universal-apps that referenced this pull request Apr 25, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [jacklul/pihole](https://redirect.github.com/pi-hole/docker-pi-hole) | patch | `2026.04.0` → `2026.04.1` |

---

### Release Notes

<details>
<summary>pi-hole/docker-pi-hole (jacklul/pihole)</summary>

### [`v2026.04.1`](https://redirect.github.com/pi-hole/docker-pi-hole/releases/tag/2026.04.1)

[Compare Source](https://redirect.github.com/pi-hole/docker-pi-hole/compare/2026.04.0...2026.04.1)

<!-- Release notes generated using configuration in .github/release.yml at master -->

#### What's Changed

- docs: update capability documentation links by [@&#8203;SirRGB](https://redirect.github.com/SirRGB) in [#&#8203;2025](https://redirect.github.com/pi-hole/docker-pi-hole/pull/2025)

#### New Contributors

- [@&#8203;SirRGB](https://redirect.github.com/SirRGB) made their first contribution in [#&#8203;2025](https://redirect.github.com/pi-hole/docker-pi-hole/pull/2025)

**Full Changelog**: <pi-hole/docker-pi-hole@2026.04.0...2026.04.1>

#### New component versions included in this tag:

#### What's Changed (FTL v6.6.1)

- Add new `GET /api/config/_properties` endpoint by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2356](https://redirect.github.com/pi-hole/FTL/pull/2356)
- Fix thread-safety issues causing SIGSEGV under concurrent API load by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2835](https://redirect.github.com/pi-hole/FTL/pull/2835)
- fix: fix rare race condition for SHM strings in API handlers by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2833](https://redirect.github.com/pi-hole/FTL/pull/2833)
- Accept punycode domains that libidn2 rejects under IDNA2008 by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2838](https://redirect.github.com/pi-hole/FTL/pull/2838)
- Improve shutdown diagnostics to identify SIGTERM source by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2839](https://redirect.github.com/pi-hole/FTL/pull/2839)
- Resolve empty backtraces when addr2line is not installed by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2831](https://redirect.github.com/pi-hole/FTL/pull/2831)
- Improve thread-safety for concurrent API requests by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2847](https://redirect.github.com/pi-hole/FTL/pull/2847)
- Don't skip device lookup when resolver.macNames is disabled by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2846](https://redirect.github.com/pi-hole/FTL/pull/2846)
- Fix linker error when compiling w/o optimization by [@&#8203;aeolio](https://redirect.github.com/aeolio) in [pi-hole/FTL#2850](https://redirect.github.com/pi-hole/FTL/pull/2850)
- Clarify `dns.blockESNI` wording by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/FTL#2784](https://redirect.github.com/pi-hole/FTL/pull/2784)
- Preserve log file path config when fopen fails by [@&#8203;DL6ER](https://redirect.github.com/DL6ER) in [pi-hole/FTL#2834](https://redirect.github.com/pi-hole/FTL/pull/2834)

#### Security advisories

- <GHSA-6w8x-p785-6pm4>
  - Fixed with : [pi-hole/FTL@`88c569a`](https://redirect.github.com/pi-hole/FTL/commit/88c569aa026d905d0066135bb71f36a13acf4bf4) and [pi-hole/pi-hole@`7ccb8dd`](https://redirect.github.com/pi-hole/pi-hole/commit/7ccb8ddfb085479fa96e801886eb1cdbeaf3a720)
- <GHSA-9cqv-839p-gpq2>
  - Fixed with : [pi-hole/FTL@`0c46e4e`](https://redirect.github.com/pi-hole/FTL/commit/0c46e4ec7fe57f762fce261625f2cf5d43806e6d)

#### New Contributors

- [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) made their first contribution in [pi-hole/FTL#2784](https://redirect.github.com/pi-hole/FTL/pull/2784)

**Full Changelog**: <pi-hole/FTL@v6.6...v6.6.1>

#### What's Changed (Core v6.4.2)

- Wipe version file before creating a new one by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6538](https://redirect.github.com/pi-hole/pi-hole/pull/6538)
- Fix ownership permissions for containing directories in fix\_owner\_per… by [@&#8203;PromoFaux](https://redirect.github.com/PromoFaux) in [pi-hole/pi-hole#6589](https://redirect.github.com/pi-hole/pi-hole/pull/6589)
- Remove reference to /usr/local/bin/COL\_TABLE by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/pi-hole#6594](https://redirect.github.com/pi-hole/pi-hole/pull/6594)
- Skip apt cache update when pihole-meta is current by [@&#8203;PromoFaux](https://redirect.github.com/PromoFaux) in [pi-hole/pi-hole#6581](https://redirect.github.com/pi-hole/pi-hole/pull/6581)
- Set versions in /etc/pihole/versions to null if script fails by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6550](https://redirect.github.com/pi-hole/pi-hole/pull/6550)
- Remove redundant touching of logfiles from systemd Service by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6601](https://redirect.github.com/pi-hole/pi-hole/pull/6601)
- Loosen requirements for local file access for gravity by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6430](https://redirect.github.com/pi-hole/pi-hole/pull/6430)
- Fix permission for \*.etag files after gravity run by [@&#8203;yubiuser](https://redirect.github.com/yubiuser) in [pi-hole/pi-hole#6353](https://redirect.github.com/pi-hole/pi-hole/pull/6353)
- add logrotate to DEB and RPM dependencies by [@&#8203;darkexplosiveqwx](https://redirect.github.com/darkexplosiveqwx) in [pi-hole/pi-hole#6524](https://redirect.github.com/pi-hole/pi-hole/pull/6524)
- Improve gravity error message including curl exit code and errormsg by [@&#8203;rdwebdesign](https://redirect.github.com/rdwebdesign) in [pi-hole/pi-hole#6605](https://redirect.github.com/pi-hole/pi-hole/pull/6605)

#### Security advisories

- <GHSA-6w8x-p785-6pm4>
  - Fixed with : [pi-hole/pi-hole@`7ccb8dd`](https://redirect.github.com/pi-hole/pi-hole/commit/7ccb8ddfb085479fa96e801886eb1cdbeaf3a720) and [pi-hole/FTL@`88c569a`](https://redirect.github.com/pi-hole/FTL/commit/88c569aa026d905d0066135bb71f36a13acf4bf4)

**Full Changelog**: <pi-hole/pi-hole@v6.4.1...v6.4.2>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/bigbeartechworld/big-bear-universal-apps).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants