On 13/03/2013 20:43, Mladen Turk wrote: > On 03/13/2013 09:29 PM, Mladen Turk wrote: >> On 03/13/2013 07:07 PM, Mark Thomas wrote: >>> DEbug logs from v4 of your debug dll >>> >>> >>> [3296] ssl_socket_send 4 bytes from 000000001772C0F0 with timeout -1 >>> [3296] SSL_write returned -1, apr_get_netos_error=730035 SSL_get_error=3 >>> [3296] ssl_socket_send 4 bytes from 0000000016C2CFB0 with timeout -1 >>> [3296] SSL_write returned -1, apr_get_netos_error=0 SSL_get_error=1 >>> [3296] SSL_ERROR_SSL error in queue=336195711 >>> [3296] bad write retry >>> >> >> I see here that buffer change occurs. >> Those two calls should have the same buffer because those both >> calls should send the same data (since the first call reported EAGAIN) >> > > I mean check for Socket.setsbb somewhere after the socket is > returned from poller. Either the new buffer has been set or > the buffer address is different because of Socket.sendbb's offset param > (in this case it would be -11530560 so some wrong calculation) > > Inside Socket.setsbb we get the ByteBuffer's direct address and later > reuse it inside Socket.sendbb(long socket, int offset, int len) call > by using 'socket->jsbuff + offset' and that offseted address is > displayed in > the upper debug trace (and if they are not the same OpenSSL will return > SSL_ERROR_SSL)
I'm using Socket.send() with the same buffer. I'm looking at switching to sendb instead. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org