ziavengers / ZIA

C++ httpd
2 stars 0 forks source link

Perte de données #41

Open entwanne opened 11 years ago

entwanne commented 11 years ago

Lorsque trop de paquets arrivent, quelque chose se met à bloquer quelque part.

Je m'explique: les sockets restent valides (select retourne sans erreur), contiennent des données en lecture, mais les objets connectés au signal n'ont plus l'air de réagir.

nutsi commented 11 years ago

D'apres ce que j'ai pus voir suite a mes test:

Il semble que l'on delete la socket trop tot, je m'explique, on n'attend pas que l'on n'ait plus rien a lire. On se retrouve donc avec une socket close mais dont il reste encore des choses a lire.

Ce n'est du coup, pas forcement le fonctionnement de la classe Server qui est mis en cause. Bien qu'il doit quand meme avoir quelques problemes de lock/unlock mutex... A voir donc.

entwanne commented 11 years ago

C'est de toute manière beaucoup trop instable: segv inopinés, appels de méthodes virtuelles et autres bizarreries.

nutsi commented 11 years ago

Je pense que tu es lies a notre gestion des threads. Dans le pire des cas, la thread pool ne sera pas fournie avec la version finale de l'API... Il faudrait faire des batteries de test et les valide un par un.

entwanne commented 11 years ago

Nos signaux ne fonctionneront pas sans threads.