I ran into some problems while upgrading from Pi-hole 5 to 6.
Here's what happened:
I did the usual pihole -up, which at some point ran into "[✗] DNS resolution is currently unavailable".
The Raspi running Pi-hole is receiving its DNS through DHCP, so was eventually pointing to itself. I presumed the issue was that Pi-hole wasn't running during the upgrade and that's why I was getting the DNS resolution error message.
I did wait for a while but the installation process seemed to be stuck there, so I Ctrl-C, changed the DNS to work without Pi-hole, restarted the Raspi.
It now had proper internet connection, so I rerun pihole -up, which said all was fine.
I couldn't access the web interface and it turns out lighttpd was still running. So I removed it manually, restarted the Raspi, now I can access the web interface and Pi-hole seems to run.
But: The whole internet experience is slow and laggy. Some websites load instantaneously, others take up to maybe 10 seconds before opening. The Pi-hole web interface shows the same behavior: Sometimes pages load immediately, sometimes it hangs for a couple seconds. I also occasionally get an error message that a website can't be loaded.
Another interesting change: The pihole command line now requires sudo? I can't do pihole -up or pihole -d without sudo, as I used to with version 5. Is this intended?
I have now set up DNS in DHCP to not use Pi-hole until it works reliably again. I am considering doing a clean re-install. I have a current Teleporter export from Pi-hole 5, so I should be able to just re-install the Raspi and Pi-hole and import the configuration without much effort. If there's another way to fix this without starting from scratch I'd be happy to try, though.
Lastly, thank you for Pi-hole! Been using it for years and donated a couple times.
Next time start another SSH session and change your DNS Settings then restart Networking or DNS Service and the pihole -up process will just continue and finish everything !!
I do this from time to time and had to do it too when testing Pi-Hole v6 Beta the first time
A lot of users have the same issue because of very old large databases of the Query Log so you might want to look into that
Meanwhile I have done a clean install of Pi-hole in a Docker container on my NAS, imported the Teleport settings from version 5 and everything runs smoothly. Maybe the time was the right to retire the old Raspi 3B...
Out of interest, I guess it's not advisable for the Pi-hole host to use Pi-hole as DNS? Or maybe I should quickly switch to another DNS server before running any updates? Never had any issues though, except this time.
Also, simply out of interest, if anybody would like to look at the debug token: Is anything wrong?
Do you have a desktop environment and browser installed on the host? If not, there is no need to use Pi-hole as DNS server (there will be no browsing to see ads).
Usually is better to use a different DNS server, to avoid issues when Pi-hole is updating or offline.
I've marked @nero355's answer as the solution. If I had opened a second ssh session and changed the DNS, I would have saved myself a lot of trouble.
Better still if I had used a DNS other than Pi-hole on the host, as @rdwebdesign suggests. It was a Raspi 3B running only Pi-hole. There was nothing else running there.
Either way, I've decommissioned the Raspi (and now thinking about something fun I could do with it) and moved Pi-hole into a Docker container on my NAS. Happy the way things are, after all!
sudo pihole -up
Usage: pihole [options]
Example: 'pihole -w -h'
Add '-h' after specific commands for more information on usage
Whitelist/Blacklist Options:
-w, whitelist Whitelist domain(s)
-b, blacklist Blacklist domain(s)
--regex, regex Regex blacklist domains(s)
--white-regex Regex whitelist domains(s)
--wild, wildcard Wildcard blacklist domain(s)
--white-wild Wildcard whitelist domain(s)
Add '-h' for more info on whitelist/blacklist usage
Debugging Options:
-d, debug Start a debugging session
Add '-c' or '--check-database' to include a Pi-hole database integrity check
-f, flush Flush the Pi-hole log
-t, tail [arg] View the live output of the Pi-hole log.
Add an optional argument to filter the log
(regular expressions are supported)
Options:
-a, admin Web interface options
Add '-h' for more info on Web Interface usage
-c, chronometer Calculates stats and displays to an LCD
Add '-h' for more info on chronometer usage
-g, updateGravity Update the list of ad-serving domains
-h, --help, help Show this help dialog
-l, logging Specify whether the Pi-hole log should be used
Add '-h' for more info on logging usage
-q, query Query the adlists for a specified domain
Add '-h' for more info on query usage
Add '--check-only' to exit script before update is performed.
-v, version Show installed versions of Pi-hole, Web Interface & FTL
Add '-h' for more info on version usage
status Display the running status of Pi-hole subsystems
enable Enable Pi-hole subsystems
disable Disable Pi-hole subsystems
Add '-h' for more info on disable usage
restartdns Full restart Pi-hole subsystems
Add 'reload' to update the lists and flush the cache without restarting the DNS server
Add 'reload-lists' to only update the lists WITHOUT flushing the cache or restarting the DNS server
arpflush Flush information stored in Pi-hole's network tables
My database is also corrupt as most pihole screens say:
An unknown error occurred while loading the data.
{"error":{"key":"database_error","message":"Could not read domains from database table","hint":"Database not available"},"took":0.00018048286437988281}