Edge-home-orchestration-go: Fehlerantwort vom Daemon: Kann keine Protokolle von Containern abrufen, die tot oder zum Entfernen markiert sind

Erstellt am 13. Juni 2020  ·  13Kommentare  ·  Quelle: lf-edge/edge-home-orchestration-go

Das Docker-Image läuft auf meinem System einwandfrei, aber wenn es auf Edge-Orchestrierung ausgeführt wird, werden mir die Fehler angezeigt:
Screenshot from 2020-06-13 10-40-25
Läuft perfekt auf meinem System:
Screenshot from 2020-06-13 10-42-01

Hier ist der Befehl, den ich ausführe:
curl -X POST "192.168.43.11:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \ "age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\" ,\"--rm\",\"--device=/dev/video0\",\"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"$XSOCK: $XSOCK\",\"-v\",\"$XAUTH:$XAUTH\",\"-e\",\"XAUTHORITY=$XAUTH\",\"-e\",\" QT_X11_NO_MITSHM=1 \",\"animeshj123/age_det_ image:02\ "]}], \"StatusCallbackURI\": \" http://192.168.43.11 :8888/api/v1/services/notification\"}"

bug question

Hilfreichster Kommentar

Es funktioniert auf Baobab. Danke schön.

Alle 13 Kommentare

@Deepak-Enc Ich habe Ihren Fall erfolgreich mit einem Fehler reproduziert und den Container auch erfolgreich mit Edge-Orchestrierung gestartet.
Unten ist der Befehl, den ich getan habe, um erfolgreich zu starten

virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}
  1. Meine X-Servereinstellungen sind etwas anders, aber Sie können Ihre eigenen verwenden, wenn es für Sie funktioniert. Die Hauptsache ist, auf Anführungszeichen zu achten. In Ihrem Beispiel sind sie nicht korrekt (ich denke, das ist ein Tippfehler).
  2. Der aufgetretene Fehler war eine Folge der zweimaligen Ausführung des Containers. Das darin arbeitende Programm gibt einen Fehler aus, da es nicht auf die Webcam zugreifen kann.

    Stellen Sie vor dem Start sicher, dass ein solcher Container nicht gestartet wird, bevor Sie den Befehl verwenden
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS               NAMES
0d73793665d9        animeshj123/age_det_image:02   "python detect_age_c…"   16 minutes ago      Up 16 minutes                           crazy_visvesvaraya
f1a1dacb70fd        edge-orchestration:baobab      "sh run.sh"              16 minutes ago      Up 16 minutes                           edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$ 

Stoppen Sie den laufenden Container, und danach können Sie mit der Edge-Orchestrierung beginnen

Bitte geben Sie Feedback, was ist Ihr Ergebnis? Ich hoffe bei dir hat alles geklappt. Bei Fragen stehen wir Ihnen gerne zur Verfügung!

Erhalte den gleichen Fehler.
Screenshot from 2020-06-15 15-09-29

Screenshot from 2020-06-15 15-10-09

Screenshot from 2020-06-15 15-10-37

Sie müssen sicherstellen, dass das Programm im Container animeshj123/age_det_image:02 korrekt startet, da die Zeile container execution status : 1 anzeigt, dass im Programm selbst ein Fehler aufgetreten ist.
изображение

Ich schlage vor, es zu tun. Danach sehe ich, dass alles richtig funktioniert:

virtual-pc@virtualpc-VirtualBox:~$ sudo docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc: 
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
^CTraceback (most recent call last):
  File "detect_age_cam.py", line 121, in <module>
    results = detect_and_predict_age(frame, faceNet, ageNet,
  File "detect_age_cam.py", line 29, in detect_and_predict_age
    detections = faceNet.forward()
KeyboardInterrupt
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
f1a1dacb70fd        edge-orchestration:baobab   "sh run.sh"         17 hours ago        Up 17 hours                             edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}virtual-pc@virtualpc-VirtualBox:~$ 
virtual-pc@virtualpc-VirtualBox:~$ 

Ich sehe auch so einen Fehler.
изображение
es kann behoben werden, wenn Docker neu gestartet wird (Service Docker Neustart)

Derselbe Container läuft auf Ihrem Edge und auch auf meinem localhost, der
bedeutet, dass das Programm kein Problem hat. es könnte ein Problem mit meinem geben
Edge-Orchestrierung, wie Sie dieses Problem lösen können.

Am Mo, 15. Juni 2020, 16:25 Uhr tdrozdovsky, schrieb [email protected] :

Sie müssen sicherstellen, dass das Programm im animeshj123/age_det_ image:02
Container startet korrekt, da der Container-Ausführungsstatus: 1 Zeile
zeigt an, dass im Programm selbst ein Fehler aufgetreten ist.
[Bild: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.png

Ich schlage vor, es zu tun. Danach sehe ich, dass alles richtig funktioniert:

virtual-pc@virtualpc-VirtualBox :~$ sudo docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11- unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_ image:02

[sudo] Passwort für Virtual-PC:

[INFO] Gesichtserkennungsmodell wird geladen...

[INFO] Altersdetektor-Modell wird geladen...

[INFO] Videostream wird gestartet...

^CTraceback (letzter Aufruf zuletzt):

Datei "detect_age_cam.py", Zeile 121, in

results = detect_and_predict_age(frame, faceNet, ageNet,

Datei "detect_age_cam.py", Zeile 29, in detect_and_predict_age

detections = faceNet.forward()

KeyboardInterrupt

virtual-pc@virtualpc-VirtualBox :~$ docker ps -a

CONTAINER ID BILDBEFEHL ERSTELLTER STATUS PORT NAMEN

f1a1dacb70fd edge- orch estration:baobab "sh run.sh" vor 17 Stunden Nach oben 17 Stunden edge-orchestration

virtual-pc@virtualpc-VirtualBox :~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" - d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \" run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\ ", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\ ",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_ image:02\ "]}], \"StatusCallbackURI\": \" http://127.0.0.1 :8888/api/v1/services/notification\ "}"

{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"} virtual-pc@virtualpc-VirtualBox :~ $

virtual-pc@virtualpc-VirtualBox :~$

Ich sehe auch so einen Fehler.
[Bild: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
es kann behoben werden, wenn Docker neu gestartet wird (Service Docker Neustart)


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
oder abmelden
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.

Unten ist ein Beispiel dafür, wie es möglicherweise nicht richtig funktioniert

virtual-pc@virtualpc-VirtualBox:~$ docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc: 
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
Traceback (most recent call last):
  File "detect_age_cam.py", line 117, in <module>
    frame = imutils.resize(frame, width=400)
  File "/usr/local/lib/python3.8/site-packages/imutils/convenience.py", line 69, in resize
    (h, w) = image.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'

jetzt schau dir den fehlercode an

virtual-pc@virtualpc-VirtualBox:~$ echo $?
1

der Fehler ist derselbe wie der Edge-Orchestrator zurückgibt

Ich denke, es ist notwendig, nach Gründen zu suchen, warum das Programm nicht richtig funktioniert (zum Beispiel gibt es keinen Zugriff auf /dev/video0 oder andere).

Bitte klären Sie meine Zweifel. Auf meinem Host-Rechner funktioniert es einwandfrei, dh es gibt kein Problem mit dem Docker-Container oder der Docker-Datei. Möglicherweise liegt ein Problem mit der Edge-Orchestrierung vor, da ich die Container- oder Docker-Datei nicht erkennen kann.

@Deepak-Enc Bitte beschreiben Sie viel detaillierter, was "ein Problem mit der Edge-Orchestrierung" ist. Nach meinem Verständnis wird Ihr Targeting-Container erfolgreich auf Ihrem lokalen Host über einen Docker-Container / eine Docker-Datei ausgeführt, schlägt jedoch fehl, wenn Sie versuchen, ihn auf Edge-Orchestrierung auszuführen. Wir haben Ihnen mehrere Empfehlungen gegeben, aber es ist immer noch unklar, wie Sie dieses Problem lösen können. Liegen wir richtig?
@suresh-lc Was ist deine Meinung? Es scheint nicht nur ein Konfigurationsproblem zu sein.

16.06.2020 04:27:56 containerexecutor.go:84: [containerexecutor] Container erstellen : c22c72a303
16.06.2020 04:28:01 containerexecutor.go:102: [containerexecutor] Containerausführungsstatus : 1
16.06.2020 04:28:01 containerexecutor.go:111: [containerexecutor] Fehlerantwort vom Daemon: Kann keine Protokolle von Container abrufen, der tot oder zum Entfernen markiert ist
16.06.2020 04:28:01 Orchestration_api.go:340: [orchestrationapi] Dienststatus geändert [appNames:age_detection][status:]
16.06.2020 04:28:01 containerexecutor.go:122: [containerexecutor] Fehlerantwort vom Daemon: Entfernen des Containers c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f wird bereits ausgeführt

Ich erhalte diese Fehler beim Ausführen von Alterserkennungscontainern (Echtzeit und Video) auf Edge-Orchestrierung. Es erfasst den ersten Anwendungsrahmen, wird dann aber automatisch als toter Container markiert.

@Deepak-Enc: Wir konnten den Protokollen entnehmen, dass der Container nach dem Lesen des ersten Frames aufgrund eines Fehlers zum Entfernen markiert wird. Aber genau warum versuchen wir auch herauszufinden. Können Sie die vollständige Fehlerprotokolldatei freigeben. Und auch wenn Sie das Video der Schritte, die Sie gemacht haben, teilen könnten, wäre es eine große Hilfe.

Unten sehen Sie ein Video, wie ein Container unter Edge-Orchestrierung funktioniert

Ubuntu_v16_04 [Läuft] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip

Das von Ihnen gesendete Protokoll zeigt, dass die Anwendung im Container nicht ordnungsgemäß abgeschlossen wurde. Mehr Daten benötigt

@Deepak-Enc: Können Sie die Baobab-Filiale nehmen und das Szenario ausprobieren.
Anscheinend wird keine Container-Whitelisting für Dienste durchgeführt, die über Edge-Orchestrierung gestartet wurden.
err := verifier.GetInstance().ContainerIsInWhiteList(s.ParamStr[paramLen-1]).

Daher können Sie es einmal mit Baobab-Zweig versuchen und uns das Ergebnis mitteilen.

Es funktioniert auf Baobab. Danke schön.

Problem gelöst. @suresh-lc @tdrozdovsky @Deepak-Enc Danke für all deine Interessen und Leidenschaft!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen