Questo è qualcosa che sembra essere cambiato tra pgAdmin4 5.1 e 5.7. L'ho visto su una macchina che era stata collegata a un hotspot mobile WiFi (ma potrebbe accadere in altre circostanze).
Ha qualcosa a che fare con il modo in cui il dns
libreria viene utilizzata su Windows, quindi ciò potrebbe accadere ad altre applicazioni che la utilizzano allo stesso modo.
In sostanza, dns.Resolver
esegue la scansione del registro di Windows per tutte le interfacce di rete trovate in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
L'hotspot mobile Wi-Fi a cui era stata collegata la macchina aveva impostato un DhcpDomain
chiave con valore ".home
". Il dns.Resolver
trovato questo valore e diviso usando il punto in più etichette, una delle quali vuota. Ciò ha causato l'eccezione che hai menzionato:dns.name.EmptyLabel: A DNS label is empty
.
Ciò si verificava anche quando la rete WiFi era spenta:quelle erano le ultime impostazioni che erano state utilizzate e dns.Resolver
non ha verificato se l'interfaccia era abilitata.
L'ultima versione di pgAdmin sembra essere una versione precedente di dnspython (1.16.0), quindi non sono sicuro che questo sia stato risolto nelle versioni più recenti. Per ora, sembrano esserci due opzioni:
-
Elimina o modifica il
DhcpDomain
sottochiave se la trovi in una delle sottochiavi diHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
(potrebbe anche esserci un modo per forzare quel valore tramite il Pannello di controllo). -
Connettiti a una rete diversa che non imposta questo valore.