Edge-home-orchestration-go: Réponse d'erreur du démon : impossible d'obtenir les journaux du conteneur qui est mort ou marqué pour suppression

Créé le 13 juin 2020  ·  13Commentaires  ·  Source: lf-edge/edge-home-orchestration-go

L'image Docker fonctionne correctement sur mon système, mais lorsque vous l'exécutez sur l'orchestration de bord, elle me montre les erreurs :
Screenshot from 2020-06-13 10-40-25
Fonctionne parfaitement sur mon système :
Screenshot from 2020-06-13 10-42-01

Voici la commande que j'exécute :
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

Commentaire le plus utile

Ça marche sur le baobab. Merci.

Tous les 13 commentaires

@Deepak-Enc J'ai réussi à reproduire votre cas avec une erreur et j'ai également lancé avec succès le conteneur à l'aide de l'orchestration de bord.
Ci-dessous la commande que j'ai fait pour lancer avec succès

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. Les paramètres de mon serveur X sont légèrement différents, mais vous pouvez utiliser les vôtres si cela fonctionne pour vous. La principale chose à faire attention aux guillemets. Dans votre exemple, ils ne sont pas corrects (je pense que c'est une faute de frappe).
  2. L'erreur que vous avez rencontrée était une conséquence de l'exécution du conteneur deux fois. Le programme qui fonctionne à l'intérieur donne une erreur, car il ne peut pas accéder à la webcam.

    Avant de commencer, assurez-vous qu'un tel conteneur n'est pas démarré avant d'utiliser la commande
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:~$ 

Arrêtez le conteneur en cours d'exécution, et après cela, vous pouvez commencer à utiliser l'orchestration de bord

S'il vous plaît donner votre avis quel est votre résultat? J'espère que tout s'est bien passé pour vous. Si vous avez des questions, nous nous ferons un plaisir de vous répondre !

Recevoir la même erreur.
Screenshot from 2020-06-15 15-09-29

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

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

Vous devez vous assurer que le programme dans le conteneur animeshj123/age_det_image:02 démarre correctement, car la ligne container execution status : 1 indique qu'une erreur s'est produite dans le programme lui-même.
изображение

Je suggère de le faire. Après cela, je vois que tout fonctionne correctement :

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:~$ 

Je vois aussi une telle erreur.
изображение
il peut être corrigé si redémarrer le docker (redémarrage du docker de service)

Le même conteneur fonctionne bien sur votre périphérie et également sur mon hôte local qui
signifie que le programme n'a aucun problème. il peut y avoir un problème sur mon
edge-orchestration comment résoudre ce problème.

Le lundi 15 juin 2020, 16:25 tdrozdovsky, [email protected] a écrit :

Vous devez vous assurer que le programme dans l' image animeshj123/age_det_
le conteneur démarre correctement, car l'état d'exécution du conteneur : 1 ligne
montre qu'une erreur s'est produite dans le programme lui-même.
[image: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.png

Je suggère de le faire. Après cela, je vois que tout fonctionne correctement :

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] mot de passe pour virtual-pc :

[INFO] chargement du modèle de détecteur de visage...

[INFO] chargement du modèle de détecteur d'âge...

[INFO] démarrage du flux vidéo...

^CTraceback (appel le plus récent en dernier) :

Fichier "detect_age_cam.py", ligne 121, dans

results = detect_and_predict_age(frame, faceNet, ageNet,

Fichier "detect_age_cam.py", ligne 29, dans detect_and_predict_age

detections = faceNet.forward()

ClavierInterruption

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

COMMANDE D'IMAGE D'ID DE CONTENEUR ÉTAT CRÉÉ NOMS DE PORTS

f1a1dacb70fd edge-orch estration:baobab "sh run.sh" il y a 17 heures Jusqu'à 17 heures 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 :~$

Je vois aussi une telle erreur.
[image: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
il peut être corrigé si redémarrer le docker (redémarrage du docker de service)

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.

Vous trouverez ci-dessous un exemple de la façon dont cela peut ne pas fonctionner correctement

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'

regarde maintenant le code d'erreur

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

l'erreur est la même que les retours de l'orchestrateur de bord

Je pense qu'il faut chercher les raisons pour lesquelles le programme ne fonctionne pas correctement (par exemple, il n'y a pas d'accès à /dev/video0 ou autres)

Veuillez lever mon doute. Cela fonctionne bien sur ma machine hôte, ce qui signifie qu'il n'y a pas de problème dans le conteneur docker ou le fichier docker. Il peut y avoir un problème avec l'orchestration de bord car je ne parviens pas à détecter dans le conteneur ou le fichier docker.

@Deepak-Enc Veuillez décrire beaucoup plus en détail ce qu'est "un problème avec l'orchestration de bord". D'après ce que j'ai compris, votre conteneur de ciblage s'exécute avec succès sur votre hôte local via un conteneur docker/fichier docker, mais il échoue lorsque vous essayez de l'exécuter sur l'orchestration périphérique. Nous vous avons guidé plusieurs recommandations, mais il n'est toujours pas clair de résoudre ce problème. Avons-nous raison ?
@suresh-lc Quelle est votre opinion ? Cela ne semble pas être juste un problème de configuration.

2020/06/16 04:27:56 containerexecutor.go:84: [containerexecutor] créer un conteneur : c22c72a303
2020/06/16 04:28:01 containerexecutor.go:102 : [containerexecutor] état d'exécution du conteneur : 1
2020/06/16 04:28:01 containerexecutor.go:111: [containerexecutor] Réponse d'erreur du démon : impossible d'obtenir les journaux du conteneur qui est mort ou marqué pour suppression
16/06/2020 04:28:01 orchestration_api.go:340 : l'état du service [orchestrationapi] a changé [appNames:age_detection][status :]
2020/06/16 04:28:01 containerexecutor.go:122 : [containerexecutor] Réponse d'erreur du démon : la suppression du conteneur c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f est déjà en cours

Je reçois ces erreurs lors de l'exécution de conteneurs de détection d'âge (en temps réel et vidéo) sur l'orchestration de bord. Il capture le premier cadre d'application, mais ensuite automatiquement le conteneur marqué comme un conteneur mort.

@Deepak-Enc : Nous avons pu voir dans les journaux que le conteneur est marqué pour suppression après la lecture de la première image en raison d'une erreur. Mais exactement pourquoi nous essayons également de trouver. Pouvez-vous partager le fichier journal des erreurs complet. Et aussi si vous pouviez partager la vidéo des étapes que vous avez faites, ce serait d'une grande aide.

Vous trouverez ci-dessous une vidéo du fonctionnement d'un conteneur sous edge-orchestration

Ubuntu_v16_04 [En cours d'exécution] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip

Le journal que vous avez envoyé montre que l'application dans le conteneur ne s'est pas terminée correctement. Plus de données nécessaires

@Deepak-Enc : Pouvez-vous prendre la branche Baobab et essayer le scénario.
Il semble que la liste blanche des conteneurs n'est pas effectuée pour le service démarré à partir de l'orchestration Edge.
err := verifier.GetInstance().ContainerIsInWhiteList(s.ParamStr[paramLen-1]).

Par conséquent, pouvez-vous une fois essayer avec la branche Baobab et nous faire part du résultat.

Ça marche sur le baobab. Merci.

Problème résolu. @suresh-lc @tdrozdovsky @Deepak-Enc Merci pour tous vos intérêts et votre passion !

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

t25kim picture t25kim  ·  3Commentaires

t25kim picture t25kim  ·  5Commentaires

t25kim picture t25kim  ·  5Commentaires

t25kim picture t25kim  ·  3Commentaires

t25kim picture t25kim  ·  5Commentaires