Fehler beim Updaten der Blocklisten -> gravity.sh

Hallo zusammen,

ich habe seit neustem folgenden Fehler beim Update der Blocklisten:
...
[i] Consolidating blocklists.../opt/pihole/gravity.sh: line 387: warning: command substitution: ignored null byte in input
[✓] Consolidating blocklists
[✓] Extracting domains from blocklists
[i] Number of domains being pulled in by gravity: x
[✓] Removing duplicate domains
[i] Number of unique domains trapped in the Event Horizon: x
[i] Number of whitelisted domains: x
[i] Number of blacklisted domains: x
[i] Number of wildcard blocked domains: x
[✓] Parsing domains into hosts format
[✓] Cleaning up stray matter

[✓] Force-reloading DNS service
[✓] DNS service is running
[✓] Pi-hole blocking is Enabled

Woran lönnte das liegen?

Was steht bei Dir in dieser Zeile? Welche Version von Pi-hole verwendest Du?

Hallo, danke für die schnelle Antwort!

In Zeile 387 steht:

  lastLine=$(tail -1 "${piholeDir}/${matterAndLight}")

Ich verwende die aktuellste version von Pi-hole:
Pi-hole Version v3.3.1 / Web Interface Version v3.3 / FTL Version v3.0

Das scheint eine neue Funktion in Bash 4.4 zu sein. Welches Betriebssystem auf was für einer Maschine verwendest Du?

ahh okay, also ist es kein Problem von Pi-hole?

Ich bin vor kurzem auf Raspbian Stretch umgestiegen, und habe heute das erste mal beim Updaten der Listen "zugeschaut"

Nein, es ist kein Problem, nur eine kosmische Sache, die wir noch ausbügeln werden. Danke für den Report!

Okay, ich konnte bisher auch noch kein Problem feststellen. Es hat mich halt nur gewundert, das so ein "error" kommt.

Klar, kein problem, habe ich gern gemacht. Nur wenn fehler gemeldet werden, kann Pi-hole noch besser werden :slight_smile:

Danke für die schnelle antworten!!

2 Likes

Hallo,

zur Info: die genannte Fehlermeldung ist bei Pi-hole v4.1 leider immer noch da:

/opt/pihole/gravity.sh: line 450: warning: command substitution: ignored null byte in input

und verweist auf:

lastLine=$(tail -1 "${piholeDir}/${matterAndLight}")


bash --version
GNU bash, version 4.4.12(1)-release (arm-unknown-linux-gnueabihf)

Ist in bash wohl auch schon länger bekannt/gewollt:
https://lists.gnu.org/archive/html/bug-bash/2016-09/msg00015.html

Dort werden auch verschiedene Lösungsansätze diskutiert.

Eine Möglichkeit wäre, die befehls-substitution zu nutzen, indem der eingeklammerte Ausdruck von der Klammer weggerückt wird $( so zum Beispiel )
Darauf wird vieler Orts hingewiesen

Ich selbst nutze die Syntax mittels `` in meinen Scripten, da habe ich unter bash 4.4 so einen Fehler noch nicht gesehen..
lastLine=befehl

(Schreibe gerade an Handy, sonst hätte ich beide Befehle komplett geschrieben)

Seltsamerweise kann ich das gerade nicht nachstellen. Wie dem auch sei, ich denke der korrekte Weg wäre

lastLine=$(tail -1 /etc/pihole/adlists.list | tr -d '\0')

oder was meint Ihr?

Seit dem Update auf Version 4.1 kommt der alte fehler bei mir nicht mehr aber dafür kommt jetzt:

[i] Consolidating blocklists.../opt/pihole/gravity.sh: line 450: warning: command substitution: ignored null byte in input