grotor / pyvk-t

Automatically exported from code.google.com/p/pyvk-t
0 stars 0 forks source link

[CRI] <module>[MainThread]: can't connect #82

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Обновил до 180 notwisted, теперь транспорт при 
запуске ругается:
[CRI] <module>[MainThread]: can't connect

Порт верный, твистед-версия с теми же 
настройками соединялась, телнетом на
порт коннект есть.

Подскажите, хотя бы, куда копать.

Полный вывод на всякий случай:
pyvk-t # ./main.py
/usr/lib/python2.6/site-packages/twisted/internet/_sslverify.py:4:
DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import itertools, md5
/opt/pyvk-t/pyvkt/component.py:40: DeprecationWarning: the sha module is
deprecated; use the hashlib module instead
  import sys,os,platform,threading,signal,cPickle,sha,time,ConfigParser
{'debug': {'dump_path': None}, 'storage': {'datadir': u'./data', 'cache':
u'./cache', 'cookies': u'./cookies'}, 'workarounds': {'fix_namespaces':
False}, 'features': {'status': '', 'sync_status': False, 'avatars': False},
'general': {'jid': u'pyvk-t.localhost', 'admin': None, 'service_name':
u'pyvk-t', 'server': u'localhost', 'secret': u'###', 'port': ###}}
  *  2009-11-19 14:26:59,136 [CRI] <module>[MainThread]: can't connect

Original issue reported on code.google.com by jahrave@gmail.com on 19 Nov 2009 at 11:30

GoogleCodeExporter commented 8 years ago
pyvk-t # uname -a
Linux myVPS 2.6.18-prep028stab062.3 #3 SMP Fri Jun 12 04:26:45 MSD 2009 i686 
Intel(R)
Xeon(R) CPU E5405 @ 2.00GHz GenuineIntel GNU/Linux
pyvk-t # python -V
Python 2.6.2

джаббер - openfire

Original comment by jahrave@gmail.com on 19 Nov 2009 at 12:29

GoogleCodeExporter commented 8 years ago
Тут посмотри патч: http://dumpz.org/14379/
А именно pyvkt/comstream.py и pyvkt/component.py

Original comment by xdersd on 19 Nov 2009 at 2:25

GoogleCodeExporter commented 8 years ago
Так как версия не та, поперефигачил вручную 
эти два файла, но не помогло.

Original comment by jahrave@gmail.com on 19 Nov 2009 at 3:59

GoogleCodeExporter commented 8 years ago
Больше лога давай. С сервера лог тоже 
интересен.

Original comment by mro...@gmail.com on 19 Nov 2009 at 4:53

GoogleCodeExporter commented 8 years ago
Дак это всё, что есть. Или можно как-то verbose 
добавить?
В логах опенфая пусто, но не уверен, что оно 
в принципе подобное логирует. Гугл
навскидку ничего в тему не подсказал.

Original comment by jahrave@gmail.com on 19 Nov 2009 at 6:37

GoogleCodeExporter commented 8 years ago
Обновись до 182 и запусти с параметром -m debug

Original comment by mro...@gmail.com on 19 Nov 2009 at 7:13

GoogleCodeExporter commented 8 years ago
  *  2009-11-19 22:19:00,254 [DEB] getPacket[MainThread]: received <stream:error
xmlns:stream="http://etherx.jabber.org/streams"><not-authorized
xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error>

Original comment by jahrave@gmail.com on 19 Nov 2009 at 7:19

GoogleCodeExporter commented 8 years ago
на всякий случай полностью:
pyvk-t # ./main.py -m debug
/usr/lib/python2.6/site-packages/twisted/internet/_sslverify.py:4:
DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import itertools, md5
/opt/pyvk-t/pyvkt/component.py:40: DeprecationWarning: the sha module is 
deprecated;
use the hashlib module instead
  import sys,os,platform,threading,signal,cPickle,sha,time,ConfigParser
{'debug': {'dump_path': None}, 'storage': {'datadir': u'./data', 'cache': 
u'./cache',
'cookies': u'./cookies'}, 'workarounds': {'fix_namespaces': False}, 'features':
{'status': '', 'sync_status': False, 'avatars': False}, 'general': {'jid':
u'pyvk-t.localhost', 'admin': None, 'service_name': u'pyvk-t', 'server':
u'localhost', 'secret': u'###', 'port': ###}}
  *  2009-11-19 22:19:00,254 [DEB] getPacket[MainThread]: received <stream:error
xmlns:stream="http://etherx.jabber.org/streams"><not-authorized
xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error>
  *  2009-11-19 22:19:00,257 [CRI] <module>[MainThread]: can't connect

Original comment by jahrave@gmail.com on 19 Nov 2009 at 7:23

GoogleCodeExporter commented 8 years ago
Локально запустил сервер Prosody. Так такая же 
ошибка.
Копаю.

Original comment by mro...@gmail.com on 19 Nov 2009 at 7:29

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Обновись до 183, тщательно проверь конфиги 
транспорта и сервера.
Если не подключится, то логи с дебагом сюда.

Original comment by mro...@gmail.com on 20 Nov 2009 at 3:21

GoogleCodeExporter commented 8 years ago
./main.py -m debug
/usr/lib/python2.6/site-packages/twisted/internet/_sslverify.py:4:
DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import itertools, md5
/opt/pyvk-t/pyvkt/component.py:40: DeprecationWarning: the sha module is 
deprecated;
use the hashlib module instead
  import sys,os,platform,threading,signal,cPickle,sha,time,ConfigParser
{'debug': {'dump_path': None}, 'storage': {'datadir': u'./data', 'cache': 
u'./cache',
'cookies': u'./cookies'}, 'workarounds': {'fix_namespaces': False}, 'features':
{'status': '', 'sync_status': False, 'avatars': False}, 'general': {'jid': 
u'###',
'admin': None, 'service_name': u'pyvk-t', 'server': u'###', 'secret': u'###', 
'port':
###}}
  *  2009-11-20 19:02:29,959 [DEB] connect[MainThread]: Received server auth answer:
<?xml version='1.0' encoding='UTF-8'?><stream:stream
xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:component:accept"
from="###" id="dae48463">
  *  2009-11-20 19:02:30,963 [DEB] getPacket[MainThread]: received <stream:error
xmlns:stream="http://etherx.jabber.org/streams"><not-authorized
xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error>
  *  2009-11-20 19:02:30,963 [DEB] connect[MainThread]: Received handshake answer:
<stream:error xmlns:stream="http://etherx.jabber.org/streams"><not-authorized
xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error>
  *  2009-11-20 19:02:30,963 [CRI] <module>[MainThread]: can't connect

Original comment by jahrave@gmail.com on 20 Nov 2009 at 4:04

GoogleCodeExporter commented 8 years ago
Проверяй пароли. Я только в этом вижу 
проблему пока.

Original comment by mro...@gmail.com on 20 Nov 2009 at 7:20

GoogleCodeExporter commented 8 years ago
В смысле secret? Дак я его тупо скопировал из 
старого конфига. Ну, попробую совсем
отключить проверку, но вряд ли в этом 
проблема.

Original comment by jahrave@gmail.com on 20 Nov 2009 at 9:39

GoogleCodeExporter commented 8 years ago
Отключить не получилось, в яве мало что 
понимаю. Пробовал менять сикрет, ноль
реакции. С неверным ошибка действительно 
та же. Но данные-то верны!

Original comment by jahrave@gmail.com on 21 Nov 2009 at 12:00

GoogleCodeExporter commented 8 years ago
Это бока из-за openfir'a. У меня тоже самое было, 
парился неделю. В итоге поставил 
ejabberd и всё завелось. Не знаю в чем причина у 
тебя точно, но я решил её так. У 
меня всё было точно как у тебя в логе.

Original comment by antonbib...@gmail.com on 21 Nov 2009 at 1:25

GoogleCodeExporter commented 8 years ago
jahrave, попробуй ловить пакеты Wireshark'ом и 
смотреть что там выдают обе стороны..
(если есть такая возможность)

Original comment by mro...@gmail.com on 21 Nov 2009 at 1:29

GoogleCodeExporter commented 8 years ago
Поставил wireshark, попробую разобраться.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 2:03

GoogleCodeExporter commented 8 years ago
Как-то так:
http://dumpz.org/14515/

Original comment by jahrave@gmail.com on 21 Nov 2009 at 3:23

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Таак.. Из этого видим..
id=9fb2ef66
handshake=c3d138417f96e4f6d641d6f4de333719f9f1d8ac

Так ну это уже радует. Т.е. транспорт 
отвечает. И думается мне, что верно 
отвечает.
Хорошо бы ещё знать какое значение 
хэндшейка требует опенфайр.

Original comment by mro...@gmail.com on 21 Nov 2009 at 4:06

GoogleCodeExporter commented 8 years ago
Не знаю, насколоько это поможет, ибо, 
повторюсь, в яве не секу, но код тут:
http://www.java2s.com/Open-Source/Java-Document/Net/openfire/org/jivesoftware/op
enfire/session/LocalComponentSession.java.htm
где-то со строки 188.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 4:56

GoogleCodeExporter commented 8 years ago
Пазыкал туда.
189:                    Element doc = reader.parseDocument().getRootElement();
190:                    String digest = "handshake".equals(doc.getName()) ? doc
191:                            .getStringValue() : "";
192:                    String anticipatedDigest = 
AuthFactory.createDigest(session
193:                            .getStreamID().getID(), secretKey);
194:                    // Check that the provided handshake (secret key + 
sessionID)
is correct
195:                    if (!anticipatedDigest.equalsIgnoreCase(digest)) {

Единственное что могу порекомендовать.. 
Это пазыкать что он получает в digest, мб там
какая-нибудь ерунда, а не актуальное 
значение, которое высылает транспорт.

Сделаем так:
190:                    String digest = "handshake".equals(doc.getName()) ? doc
191:                          .getStringValue() : "";
192:                    Log.debug("LocalComponentSession: Received handshake: " 
+
digest);

Ну и дебаг нужен после этого.

Original comment by mro...@gmail.com on 21 Nov 2009 at 5:52

GoogleCodeExporter commented 8 years ago
Хм, совпадает:

openfire debug:
2009.11.21 23:44:48 LocalComponentSession: Received handshake:
c3d138417f96e4f6d641d6f4de333719f9f1d8ac  

tshark:
0000  00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00   ..............E.
0010  00 73 2d fc 40 00 40 06 72 6e 5b bd 71 50 5b bd   .s-.@.@.rn[.qP[.
0020  71 50 cc 16 ac f3 2e 4e f7 6c 2e 64 dd 44 80 18   qP.....N.l.d.D..
0030  02 12 9a 80 00 00 01 01 08 0a 6c 55 db 19 6c 55   ..........lU..lU
0040  db 16 3c 68 61 6e 64 73 68 61 6b 65 3e 63 33 64   ..<handshake>c3d
0050  31 33 38 34 31 37 66 39 36 65 34 66 36 64 36 34   138417f96e4f6d64
0060  31 64 36 66 34 64 65 33 33 33 37 31 39 66 39 66   1d6f4de333719f9f
0070  31 64 38 61 63 3c 2f 68 61 6e 64 73 68 61 6b 65   1d8ac</handshake
0080  3e                                                >

Original comment by jahrave@gmail.com on 21 Nov 2009 at 8:48

GoogleCodeExporter commented 8 years ago
Так а если в 195 строчке убрать "!"
То есть получится так: 
195:                    if (anticipatedDigest.equalsIgnoreCase(digest)) {

Эксперимента ради: пароли сделай разные, ну 
на один символ поменяй, если не
пропустит, то баг был в этом.

Original comment by ptznig...@gmail.com on 21 Nov 2009 at 8:57

GoogleCodeExporter commented 8 years ago
main.py -m debug:
  *  2009-11-22 00:55:04,427 [DEB] connect[MainThread]: Received server auth answer:
<?xml version='1.0' encoding='UTF-8'?><stream:stream
xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:component:accept"
from="npyvk-t.hack.lgg.ru" id="b7989bce">

openfire debug:
2009.11.22 00:55:04 InternalComponentManager: Registering component for domain: 
npyvk-t
2009.11.22 00:55:04 InternalComponentManager: Component registered for domain: 
npyvk-t
2009.11.22 00:55:04 LocalComponentSession: [ExComp] External component was 
registered
SUCCESSFULLY with domain: npyvk-t 

Но в списке сервисов транспорта не видно.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 9:58

GoogleCodeExporter commented 8 years ago
От того, правильный сикрет или нет, ничего 
не меняется.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 10:00

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Нет, вру, если верный, то вылетает:
Traceback (most recent call last):
  File "./main.py", line 46, in <module>
    if not
s.connect(conf.get("general","server"),conf.get("general","port"),conf.get("gene
ral","secret")):
  File "/opt/pyvk-t/pyvkt/comstream.py", line 83, in connect
    handshake_answer=self.getPacket(True)
  File "/opt/pyvk-t/pyvkt/comstream.py", line 126, in getPacket
    c=self.sock.recv(1)
MemoryError

Original comment by jahrave@gmail.com on 21 Nov 2009 at 10:31

GoogleCodeExporter commented 8 years ago
Просто не сразу почему-то, а спустя минут 
пять.
Опенфая в своё время выбрал потому, что там 
лучше всего реализован хер-136
(сервер-сайд хистори), а в этом просоди с 
херами как-то совсем негусто.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 10:38

GoogleCodeExporter commented 8 years ago
Понятно, он зацикливается потому, что не 
может найти конца тега ">" и поэтому
вылетает с MemoryError.

Теперь надо посмотреть вайршарком что 
сервер отправляет на верный хэндшэйк.

З.Ы. Просоди разрабатывается. И даже пеп там 
есть, что меня и порадовало..

Original comment by mro...@gmail.com on 21 Nov 2009 at 10:54

GoogleCodeExporter commented 8 years ago
И ещё..
211:                        writer.write("<handshake></handshake>");
Заменим на
211:                        writer.write("<handshake/>");

Original comment by mro...@gmail.com on 21 Nov 2009 at 10:56

GoogleCodeExporter commented 8 years ago
http://dumpz.org/14530/

Original comment by jahrave@gmail.com on 21 Nov 2009 at 11:05

GoogleCodeExporter commented 8 years ago
это я ещё не прочитал коммент 32, сейчас 
пересоберу

Original comment by jahrave@gmail.com on 21 Nov 2009 at 11:06

GoogleCodeExporter commented 8 years ago
Подключилось, транспорт в ростере видит. Не 
регистрирует, правда, но и твистед версия
тоже не регистрировала.

http://dumpz.org/14532/

  *  2009-11-22 02:26:53,525 [DEB] connect[MainThread]: Received server auth answer:
<?xml version='1.0' encoding='UTF-8'?><stream:stream
xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:component:accept"
from="pyvk-t.hack.lgg.ru" id="81ca73f5">
  *  2009-11-22 02:26:54,528 [DEB] getPacket[MainThread]: received <handshake/>
  *  2009-11-22 02:26:54,528 [DEB] connect[MainThread]: Received handshake answer:
<handshake/>
  *  2009-11-22 02:26:54,529 [WAR] <module>[MainThread]: connected
  *  2009-11-22 02:26:54,531 [DEB] getPacket[receiver]: received <iq type="get"
id="26-254" from="component.hack.lgg.ru" to="pyvk-t.hack.lgg.ru"><query
xmlns="http://jabber.org/protocol/disco#info"/></iq>
  *  2009-11-22 02:26:54,532 [INF] main[MainThread]: starting mainloop-0
  *  2009-11-22 02:26:54,532 [DEB] sendLoop[sender]: sending <message
to="pyvk-t.hack.lgg.ru" from="pyvk-t.hack.lgg.ru" id="msg6014"
type="chat"><body>1258846014</body></message>
  *  2009-11-22 02:26:54,533 [INF] onIq[mainloop-0]: RECV: iq (get)
component.hack.lgg.ru -> pyvk-t.hack.lgg.ru
  *  2009-11-22 02:26:54,533 [INF] getQuery[mainloop-0]: query ns:
http://jabber.org/protocol/disco#info
  *  2009-11-22 02:26:54,535 [DEB] sendLoop[sender]: sending <iq
to="component.hack.lgg.ru" from="pyvk-t.hack.lgg.ru" id="26-254" 
type="result"><query
xmlns="http://jabber.org/protocol/disco#info"><identity category="gateway"
type="vkontakte.ru" name="npyvk-t"/><feature var="jabber:iq:register"/><feature
var="jabber:iq:gateway"/><feature var="jabber:iq:version"/><feature
var="jabber:iq:last"/><feature 
var="http://jabber.org/protocol/commands"/><feature
var="http://jabber.org/protocol/stats"/><feature 
var="urn:xmpp:receipts"/></query></iq>
  *  2009-11-22 02:26:55,532 [DEB] getPacket[receiver]: received <message
to="pyvk-t.hack.lgg.ru" from="pyvk-t.hack.lgg.ru" id="msg6014"
type="chat"><body>1258846014</body></message>
  *  2009-11-22 02:26:55,548 [INF] onMsg[MainThread]: RECV: msg pyvk-t.hack.lgg.ru ->
pyvk-t.hack.lgg.ru '<Element body at 87a7a2c>'
  *  2009-11-22 02:27:04,537 [INF] sendLoop[sender]: sending keepalive
  *  2009-11-22 02:27:04,537 [DEB] sendLoop[sender]: sending <iq
to="pyvk-t.hack.lgg.ru" from="pyvk-t.hack.lgg.ru" id="keepalive"/>
  *  2009-11-22 02:27:05,531 [DEB] getPacket[receiver]: received <iq
to="pyvk-t.hack.lgg.ru" from="pyvk-t.hack.lgg.ru" id="keepalive"/>
  *  2009-11-22 02:27:05,547 [INF] onIq[mainloop-0]: RECV: iq (None)
pyvk-t.hack.lgg.ru -> pyvk-t.hack.lgg.ru
  *  2009-11-22 02:27:05,548 [INF] onIq[mainloop-0]: keepalive received

Original comment by jahrave@gmail.com on 21 Nov 2009 at 11:29

GoogleCodeExporter commented 8 years ago
Нет, регистрируется нормально, транспорт 
работает.

Original comment by jahrave@gmail.com on 21 Nov 2009 at 11:44

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago

Original comment by mro...@gmail.com on 22 Nov 2009 at 7:53

GoogleCodeExporter commented 8 years ago
Поставил pyicq-t, оно подключается к openfire 
только при неверном сикрете (в связи со
сделанными изменениями). Т.е. опенфая до 
изменений работал нормально.

Original comment by jahrave@gmail.com on 23 Nov 2009 at 12:34

GoogleCodeExporter commented 8 years ago
общение openfire с pyvk-t и pyicq-t со строки 225:
http://dumpz.org/14568/

Сикрет одинаковый и неверный.

Original comment by jahrave@gmail.com on 23 Nov 2009 at 1:39