[Development] CI broken again?

Thiago Macieira thiago.macieira at intel.com
Thu Feb 20 08:10:52 CET 2014


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.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list