best_practice 工作流在 v0.10.19 中更新已有 container 时崩溃
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- backend, documentation
Direzione di ricerca
Inizia riproducendo il workflow documentato in docs/user_guide/best_practice.md, poi leggi unilabos/ros/nodes/base_device_node.py in corrispondenza di append_resource e confrontalo con unilabos/resources/container.py. Controlla il percorso del container esistente e l’errore di attributo segnalato di RegularContainer. Il lavoro è completato quando il passaggio documentato create_resource aggiorna un container esistente senza arrestarsi in modo anomalo e l’esecuzione raggiunge PumpTransferProtocol.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
问题概述
这个问题不是自定义工作流,而是官方文档 best_practice(最佳实践)中的示例工作流本身无法跑通。
按照文档 best_practice 中的工作流操作时,如果 host_node/create_resource 的 res_id 指向一个已存在的 container,本地执行器会直接崩溃。
这会导致文档里的两步工作流无法跑通:
creat_resource向已有container中加入水PumpTransferProtocol将液体传输到container1
版本信息
- Uni-Lab-OS
v0.10.19 - tag/main commit:
c001f6a1512affb48e9ae5c068e201bda3412679
文档位置
docs/user_guide/best_practice.md
第 7.5 - 7.9 节当前给出的配置是:
-
creat_resourceclass_name: containerdevice_id: workstationparent: workstationres_id: containerliquid_type: waterliquid_volume: 50
-
PumpTransferProtocolfrom_vessel: waterto_vessel: container1
复现步骤
- 启动 Uni-Lab,并完成 registry 上传。
- 在 Web UI 中创建实验室,包含:
workstation(其protocol_type包含PumpTransferProtocol)virtual_transfer_pumpcontainercontainer1
- 严格按照
best_practice.md的说明创建工作流。 - 运行
creat_resource,参数为:res_id=containerliquid_type=waterliquid_volume=50
期望行为
作为最佳实践文档中的示例工作流,这个流程应该可以直接跑通:
- 已有的
container被更新为包含water - 然后工作流继续执行
PumpTransferProtocol
实际行为
本地 host executor 在线程中崩溃,还没有执行到 PumpTransferProtocol。
报错堆栈如下:
File "unilabos/ros/nodes/base_device_node.py", line 433, in append_resource
logger.info(f"更新物料{container_instance.name}的数据{found_resource.state}")
AttributeError: 'RegularContainer' object has no attribute 'state'
怀疑的根因
这看起来像一次不完整的重构 / 回归。
在提交 a79c0a8(fix container volume)中,RegularContainer.state 似乎已经被移除:
unilabos/resources/container.py中不再定义self.stateload_state()也改为调用super().load_state(state)
但是 append_resource 仍然在使用旧接口:
logger.info(f"更新物料{container_instance.name}的数据{found_resource.state}")
found_resource.state.update(container_instance.state)
因此,文档中“create_resource 更新已有 container”这条路径在 v0.10.19 上会直接崩溃。
额外说明
文档下一步里还有一个可能的文档 / 实现不一致:
- 文档写的是
from_vessel: water - 当前
PumpTransferProtocol的实现看起来更像是要求传入 vessel/resource id,而不是液体名
不过当前最直接的阻塞问题,还是上面的 create_resource 崩溃。
- Lingua principale
- Python
- Stelle
- 180
- Fork
- 76
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di deepmodeling/Uni-Lab-OS
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
deepmodeling/Uni-Lab-OS#327 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
deepmodeling/Uni-Lab-OS#326 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
deepmodeling/Uni-Lab-OS#325 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
deepmodeling/Uni-Lab-OS#324 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
deepmodeling/Uni-Lab-OS#323 · 1 commento ·
Tutte le issue di deepmodeling/Uni-Lab-OS
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
volcengine/OpenViking#6445 ·
I maintainer di solito rispondono entro 1 giorno
-
BUG:Edit Album strips spaces from the password so albums with a leading/trailing space in the password can't be editedForse già presa @ManyaJain111 l’ha presa oggi. Apertabug enhancement possible-duplicate
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
AOSSIE-Org/PictoPy#1637 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
deepspeedai/DeepSpeed#8884 ·
I maintainer di solito rispondono entro 3 giorni
-
Flaky: test_advisor_live_calibrates_an_unmeasured_circuit ranks engines by a 1.8ms sleep marginAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
flagos-ai/FlagQuantum#718 ·
I maintainer di solito rispondono entro 1 giorno
-
bug CI-failure high priority
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
vllm-project/afd-plugin#483 ·
I maintainer di solito rispondono entro 1 giorno