alibaba / alibaba/acm-sdk-python

不设置环境变量DIAMOND_SERVER_IPS导致异常exception 'NoneType' object has no attribute 'split' occur

Aperta
#20 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
59
Fork
26
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

ERROR:root:[get-config] exception 'NoneType' object has no attribute 'split' occur
Traceback (most recent call last):
File "/Users/alsc/work/.pyodps/lib/python3.9/site-packages/acm/client.py", line 439, in get_raw
resp = self._do_sync_req("/diamond-server/config.co", None, params, None, timeout or self.default_timeout)
File "/Users/alsc/work/.pyodps/lib/python3.9/site-packages/acm/client.py", line 663, in _do_sync_req
server_info = self.get_server()
File "/Users/alsc/work/.pyodps/lib/python3.9/site-packages/acm/client.py", line 284, in get_server
server_list = get_server_list(self.endpoint, 443 if self.tls_enabled else 8080, self.cai_enabled,
File "/Users/alsc/work/.pyodps/lib/python3.9/site-packages/acm/server.py", line 43, in get_server_list
for server_addr in server_addresses.split(","):
AttributeError: 'NoneType' object has no attribute 'split'

有些环境下,不需要设置DIAMOND_SERVER_IPS,但目前版本,必须设置,否则会抛异常中断后续流程,获取不到data;

建议加个server_addresses的NoneType判断,再进行server_addresses.split(",")

def get_server_list(endpoint, default_port=8080, cai_enabled=True, unit_name=None):
server_list = list()

import os
server_addresses = os.getenv('DIAMOND_SERVER_IPS')
for server_addr in server_addresses.split(","):
if server_addr is not "" and parse_nacos_server_addr(server_addr):
server_list.append(parse_nacos_server_addr(server_addr.strip()))
if len(server_list) > 0:
return server_list

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia in acm/server.py, in get_server_list, usando il traceback e la ricerca di DIAMOND_SERVER_IPS come punto di ingresso. Controlla il comportamento quando la variabile d’ambiente non è impostata, quindi verifica che la discovery dei server non generi più l’AttributeError segnalato e che gli indirizzi configurati continuino a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api, backend
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.