Hi Thiago,

it sounds like you have a pretty good understanding what's going wrong here.
Since this sounds like a real issue and it is still the test failure that 
blocks most integrations, it would be extremely great if we could fix the 
issue.

I know Peter and Tony worked on this, but so far there is no real fix. Could 
you help out? We even have an IRC channel dedicated to this - qt-testserver on 
freenode, feel free to drop by.

Thanks,
Frederik

Onsdag 19. februar 2014 23.10.52 skrev Thiago Macieira:
> Em qui 20 fev 2014, às 06:21:44, Sarajärvi Tony escreveu:
> > QDEBUG : tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5]
> > sending "size: 33 data: { 5 1 0 3 26 113 116 45 116 101 115 116 45 115
> > 101 114 118 101 114 46 113 116 45 116 101 115 116 45 110 101 116 0 143 }"
> 
> SOCKS 5
> Command: CONNECT
> address type: 3 (domain name)
> length: 26
>       qt-test-server.qt-test-net
> port: 143
> 
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] "size: 148
> > data: { 5 0 0 1 10 212 1 1 215 203 42 32 79 75 32 91 67 65 80 65 66 73 76
> > 73 84 89 32 73 77 65 80 52 114 101 118 49 32 76 73 84 69 82 65 76 43 32 73
> > 68 32 69 78 65 66 76 69 32 83 84 65 82 84 84 76 83 32 76 79 71 73 78 68 73
> > 83 65 66 76 69 68 93 32 100 101 118 45 113 116 45 116 101 115 116 45 115
> > 101 114 118 101 114 32 67 121 114 117 115 32 73 77 65 80 32 118 50 46 52
> > 46
> > 49 50 45 68 101 98 105 97 110 45 50 46 52 46 49 50 45 50 32 115 101 114
> > 118
> > 101 114 32 114 101 97 100 121 13 10 }"
> 
> SOCKS 5
> Reply: success
> address type: 1 (IPv4)
> address: 10.212.1.1
> port: 55243
> 
> The rest (starting at "42") is the IMAP handshake:
> * OK .....
> 
> So we know that we connected just fine here.
> 
> > QDEBUG :
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] got
> > [  QHostAddress( "10.212.1.1" )  : 55243 ]
> 
> As I said.
> 
> > QDEBUG :
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL)
> > QSocks5SocketEngine(0x99e730) queueing connectionNotification
> 
> And here the engine is saying that it will tell QTcpSocket that it connected
> fine, as expected.
> 
> > QDEBUG :
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL)
> > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification bytes
> > available after parsing: 138
> 
> We had 148 and the SOCKS5 reply was 10 bytes, so this is also correct.
> 
> > QDEBUG :
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL)
> > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification more bytes
> > available, calling _q_controlSocketReadNotification() again , read
> > notifications enabled? false
> 
> [...]
> 
> > QDEBUG :
> > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL)
> > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification connected
> > QDEBUG : tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5]
> > "size:
> > 138 data: { 42 32 79 75 32 91 67 65 80 65 66 73 76 73 84 89 32 73 77 65 80
> > 52 114 101 118 49 32 76 73 84 69 82 65 76 43 32 73 68 32 69 78 65 66 76 69
> > 32 83 84 65 82 84 84 76 83 32 76 79 71 73 78 68 73 83 65 66 76 69 68 93 32
> > 100 101 118 45 113 116 45 116 101 115 116 45 115 101 114 118 101 114 32 67
> > 121 114 117 115 32 73 77 65 80 32 118 50 46 52 46 49 50 45 68 101 98 105
> > 97
> > 110 45 50 46 52 46 49 50 45 50 32 115 101 114 118 101 114 32 114 101 97
> > 100
> > 121 13 10 }"
> 
> Uh... that's the issue. The bytes here start with "* OK " and the length is
> 138, which is what was left from the previous parsing.
> 
> It's not that the SOCKS server sent two replies. This is a genuine bug in
> our socket engine: the TCP packet contained the initial handshake from the
> server and the socket engine got confused. It tried to parse the IMAP
> handshake as another SOCKS5 reply.

-- 
Best regards,
Frederik Gladhorn
Senior Software Engineer - Digia, Qt
Visit us on: http://qt.digia.com

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to