Hendrik7 / psi-dev

Automatically exported from code.google.com/p/psi-dev
0 stars 0 forks source link

Утечка сокета при переподключении через диалог настроек аккаунтов #508

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Пишу свой XMPP-сервер и наткнулся на такой 
баг (с jabber.ru на котором стоит ejabberd тоже 
воспроизводиться)

Шаги по воспроизведению проблемы:
What steps will reproduce the problem?
0. Важный момент - я в настройках аккаунта 
явным образом статически прописываю 
ресурс.
1. Подключаемся псями к серверу
2. потом заходим в редактирование аккаунтов
3. редактируем или просто нажимаем 
"сохранить"
4. т.к. мы подключены, то Psi предлагает 
переподключиться
5. соглашаемся на переподключение и тут бага

Каков ожидаемый результат?
What is the expected output?
Ожидается что Psi пошлет presence unavailable, закроет 
поток (пошлет закрывающий тег </stream:stream>) и 
закроет соединение (сокет)

Что Вы видите вместо этого?
What do you see instead?
По логам сервера вижу, что Psi посылают как и 
положенно presence unavailable, но не закрывают 
поток и не закрывают соединение. 
Соединение продолжает висеть открытым (его 
можно видеть в том числе и через netstat) и Psi 
даже продолжают посылать пинги в виде 
пробелов =)

Какую версию Psi+ / ОС Вы используете?
What version of the Psi+/OS are you using?
ОС: openSUSE 12.1

Psi:
alex@shade:~> rpm -qi psi-plus
Name        : psi-plus
Version     : 0.15.5319
Release     : 3.1
Architecture: x86_64
Install Date: Вт. 08 мая 2012 00:18:55
Group       : Productivity/Networking/Talk/Clients
Size        : 13865549
License     : GPL v2 or later
Signature   : DSA/SHA1, Вс. 08 апр. 2012 13:47:06, Key ID ef9cf9f1a4333080
Source RPM  : psi-plus-0.15.5319-3.1.src.rpm
Build Date  : Вс. 08 апр. 2012 13:45:22
Build Host  : build23
Relocations : (not relocatable)
Vendor      : obs://build.opensuse.org/home:nirdosh
URL         : http://psi-dev.googlecode.com/
Summary     : Jabber client using Qt
Description :
Psi+ is Psi with patches from http://psi-dev.googlecode.com/.
Psi is the premiere Instant Messaging application designed for
GNU/Linux, Microsoft Windows, Apple Mac OS X. Built upon an open
protocol named Jabber, Psi is a fast and lightweight messaging client
that utilises the best in open source technologies. Psi contains all
the features necessary to chat, with no bloated extras that slow your
computer down.
Distribution: home:nirdosh / openSUSE_12.1

Дополнительная информация по проблеме:
Additional information:
С jabber.ru (ejabberd) эта проблема частично 
воспроизводиться - по всей видимости ejabberd 
разрывает соединение после presence unavailable, но 
всё равно адекватно переподключиться не 
получается и контакт остается офлайн и 
нужно вручную включать его онлайн.

Original issue reported on code.google.com by alextest...@gmail.com on 7 May 2012 at 8:49

GoogleCodeExporter commented 9 years ago
см. также
тест на jabber.ru (ejabberd)
http://www.youtube.com/watch?v=yfFTM_FpwxU

Original comment by alextest...@gmail.com on 7 May 2012 at 10:07

GoogleCodeExporter commented 9 years ago
Пофикшено последним коммитом, проверяйте

Original comment by wadea...@gmail.com on 14 May 2012 at 11:16

GoogleCodeExporter commented 9 years ago
ok, fixed

Original comment by alextest...@gmail.com on 20 May 2012 at 4:58