Pi Hole won't start after upgrading it

I’ve had Pi Hole running on my Umbrel Home for a while now. Umbrel told me a new version was available so I upgraded to it (version 2024.02.0), but after the upgrade it won’t start - the icon continually pulses on the home screen with “Starting…” underneath it. I tried rebooting and that hasn’t helped and it still won’t start. Looking at the logs using “Troubleshoot” in the system menu I can see logs for all the other apps I’ve installed but at the very end is “pi-hole” which only shows this:

pi-hole

Attaching to 
================
==== Result ====
================
The debug script did not automatically detect any issues with your Umbrel.

Please can someone tell me how to fix this?

So I’ve just sshed into the box to poke around a bit and have discovered that there’s currently no Pi Hole Docker container defined (let alone running) and the image that’s there is four months old:

root@umbrel:~# docker container ls | grep hole
root@umbrel:~# docker container ls -a | grep hole
root@umbrel:~# docker image ls | grep hole
pihole/pihole                     <none>    1fd7e7caffbd   4 months ago    309MB

So my current thinking is that the upgrade process is:

  1. Stop and remove the old container
  2. Download the new image
  3. Create & start a new container based on the new image

And that step 2 never happened because Pi Hole was no longer running so all DNS queries would fail. That’s because I’ve set my DHCP server to tell all the devices on my network to use the Umbrel Home as the DNS server (which is the entire point of Pi Hole). The /etc/resolv.conf file on the Umbrel Home contains the line nameserver 192.168.1.131 which is the IP address of the Umbrel Home itself.

But I’m doubtful that my thinking is correct, becaue if this is what happened then surely eveyone attempting to upgrade Pi Hole would encounter the exact same problem?

I’ve started looking at Umbrel’s code and there’s an “app” shell script. Looking at the help message there’s no command listed to upgrade an app, but reading the actual script there is actually an “update” command.

The ‘update’ script is for the umbrel OS. if you just run the ‘app’ script without any arguments it will give a list of commands that you can use to uninstall an reinstall pihole.
You can also watch the karen.log in /umbrel/logs: tail -f umbrel/log/.karen.log if using the web interface to perform the update.

When I mentioned the “update” command I was talking about the first argument passed to “scripts/app”, not “scripts/update”. I’ve now opened umbrel#1741 to fix the help message.

Thanks for mentioning karen.log. Looking at that I can see that my thinking about what happened was broadly correct, but it’s a little more involved than I first thought as it involves both git and docker:

  1. A git pull happens for https://github.com/getumbrel/umbrel-apps.git
  2. The Docker container(s) get stopped
  3. A Docker pull is attempted
  4. That fails as it can’t lookup registry-1.docker.io

Here’s the relevant bit of karen.log:

Got signal: app-update-pi-hole
karen is getting triggered!
Updating 'pi-hole' from: https://github.com/getumbrel/umbrel-apps.git
Stopping app pi-hole...
Stopping pi-hole_server_1 ... 
ESC[1AESC[2K^MStopping pi-hole_server_1 ... ESC[32mdoneESC[0m^MESC[1BRemoving pi-hole_server_1 ... 
ESC[1AESC[2K^MRemoving pi-hole_server_1 ... ESC[32mdoneESC[0m^MESC[1BGoing to remove pi-hole_server_1
Pulling images for app pi-hole...
Pulling server ... 
ESC[1AESC[2K^MPulling server ... ESC[31merrorESC[0m^MESC[1B
ERROR: for server  Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.1.131:53: re
ad udp 192.168.1.131:32784->192.168.1.131:53: read: connection refused
Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.1.131:53: read udp 192.168.1.13
1:32784->192.168.1.131:53: read: connection refused

I’ve just found another bug, this time in the pi-hole pre-install hook. Here’s a fix for that: umbrel-apps#984.

OK, I’ve got it working now. Here’s the fix: umbrel#1742.

1 Like

thanks will make sure that hotfix is added shortly.