Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-04 Thread Angus Robertson - Magenta Systems Ltd
> It happens if I'm sending from a thread or even only from the > main thread (from a timer), please check this demo app: I look very briefly at your demo, it uses the non-thread aware socket server, and creates one single thread to send data to all clients, with no locking attempts or even a mes

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-04 Thread Angus Robertson - Magenta Systems Ltd
> I didn't change any ICS code, but only my derived class... do you > think that by always adding to the send buffer PutDataInSendBuffer) > and posting FD_WRITE instead of calling TryToSend could cause any > issues? There are often several ways of doing something, if extensive testing does not

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Éric Fleming Bonilha
I understand But non-threaded is not an option.. our application is a high performance video management system, it must be multi-threaded, in fact we have a very highly threaded architecture, and it would create huge bottlenecks making it single threaded (for network message processing). This spec

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Éric Fleming Bonilha
Angus Funny thing, when the error happens, getlasterror from SSL returns: error:1408F10B:SSL routines:ssl3_get_record:wrong version number The disconnection is easily reproduceable by spawning a few threads Eric On Wed, Oct 3, 2018 at 2:01 PM Éric Fleming Bonilha wrote: > Angus > > I'm try

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Angus Robertson - Magenta Systems Ltd
> It happens if I'm sending from a thread or even only from the > main thread (from a timer), please check this demo app: Sorry, won't be looking for more bugs in ICS until the V8.57 release is done, it's weeks later already. I can only suggest trying to avoid threads, I don't use them and don'

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Éric Fleming Bonilha
Angus I'm trying to make a demo application to test this behavior, but now I'm stuck with another problem.. random disconnects.. I'm using latest ICS 8.53 with OpenSSL that is shipped with the ICS Whenever I start sending data from server -> client, the client will disconnect randomly. It happe

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Angus Robertson - Magenta Systems Ltd
> I'm currently using OpenSSL 1.0.2h and I tried with latest ICS I > downloaded yesterday (8.53) Does your application include OverbyteIcsSslThrdLock.pas? That is needed to make locking work with 1.0.2. If you use 1.1.0 or 1.1.1, that unit is not needed. But I don't know much about OverbyteI

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Éric Fleming Bonilha
Hi Angus Thanks for the reply. This is indeed a strange problem, because there's no deadlock or locking problem, and the problem does not happen in a deterministic way.. its kind of random, so I have to keep it running for a few seconds or minutes, then it will stop, maybe when a certain condition

Re: [twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-03 Thread Angus Robertson - Magenta Systems Ltd
> I understand that ICS is thread safe when sending data because > adding and removing data to send buffers are locked with critical > sections.. but maybe OpenSSL does not like when we send data > from two different threads? OpenSSL is thread safe, or at least has been in the past, I've tested

[twsocket] Sending data from multiple threads on SSL doesn't work

2018-10-02 Thread Éric Fleming Bonilha
Hi I'm experiencing a strange issue that I think could be related to OpenSSL, but I want to make sure.. In a simple explanation, I have a TWSocketServer which serves sockets on SSL. I have 1 client connected to it and I send video data through this socket to the client connected to my server. If