Opened 3 years ago

Closed 2 years ago

#36 closed defect (fixed)

problème timeout tcp socket

Reported by: Sanahuja Guillaume Owned by: Bayard Gildas
Priority: major Milestone:
Component: core Version: trunk
Keywords: Cc:

Description

le timeout des tcpsocket pose problème
dans la méthode TcpSocket::Connect, un connect est lancé en non bloquant, puis on teste son état avec un select et un timeout. S'il y a timeout, le socket est fermé, et au coup d'après on relance un nouveau connect etc... Si la réponse arrive donc en retard, il ne s'agit plus du meme socket et un RST est envoyé. La connexion ne peut donc jamais se faire.
Il faudrait aussi comprendre l'utilité du second connect (ligne 174) lorsque le select réussi.

Attachments (1)

bth_ds3.pcapng (273.9 KB) - added by Sanahuja Guillaume 3 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 3 years ago by Sanahuja Guillaume

Summary: problème timeout tcp socetproblème timeout tcp socket

Changed 3 years ago by Sanahuja Guillaume

Attachment: bth_ds3.pcapng added

comment:2 Changed 2 years ago by Bayard Gildas

Ce problème est résolu (mais pas testé).
La socket est maintenant réutilisée dans le cas d'un timeout.
Le 2ème connect est nécessaire pour se connecter après un timeout. Le principe est le suivant: on tente un connect. Soit il réussit immédiatement (peu probable je pense) soit on ressort immédiatement et on entre dans l'attente avec le select. Quand on sort de l'attente, soit le timeout est atteint -> on reviendra plus tard sans détruire la socket, soit le timeout n'est pas atteint et il s'est passé qqch. On vérifie qu'il n'y a pas d'erreur et on repart dans notre connect. Cette fois il devrait réussir immédiatement.

comment:3 Changed 2 years ago by Bayard Gildas

Status: newaccepted

comment:4 Changed 2 years ago by Bayard Gildas

Resolution: fixed
Status: acceptedclosed

comment:5 Changed 2 years ago by Sanahuja Guillaume

Resolution: fixed
Status: closedreopened

modifications done in this ticket still have a problem: if you launch uav program before (or without) ds3 program, it crashes

comment:6 Changed 2 years ago by Bayard Gildas

Resolution: fixed
Status: reopenedclosed

This problem is solved. Actually this exact problem was already solved.
I don't see any error there now. If you see abnormal behaviour please check if it's this very bug involved, or else open a new one

Note: See TracTickets for help on using tickets.