We have a situation where
1. The browser takes a long time to connect to Lightstreamer
2. After sometime, the request to Lightstreamer times out and the following error message was received - Error 110 It has been detected that the JavaScript engine of this browser is not respecting the timeouts in setTimeout method calls. The Client has been disconnected from the Server in order to avoid reconnection loops. To try again, just refresh the page.
We're unsure as to what has caused this - is it possible that the number of connections to Lightstreamer had reached a maximum number and then Lightstreamer could not accept incoming connections?
Also if the Lightstreamer application ran out of memory, could this be a cause? Is there a way to specify how to allocate more memory? (is this specified in the LS.sh java opts?)
We haven't been able to determine the exact cause and the client raised has just this with us, so any help would be much appreciated.
If not,
does it happen on different browsers?
Can you send me a server log snippet that covers the period when the issue was seen (and telling me the IP of the client that had the issue)?
This does not seem to be isolated to Firefox I'm afraid.
I've attached the log snippet to this reply.
If it helps we have also noticed that we receive the following errors in the logs
- Accept error on socket Lightstreamer HTTP Server java.io.IOException: Too many open files
- Failure in request processing: Bad request: com.lightstreamer.b.c: It was expected an integer value for LS_polling_millis
- Bad request: It was expected an integer value for LS_polling_millis
- Sync error: Can't find session from ...
Also, if this helps, we are using the default values in lightstreamer_conf.xml.
The message that Lightstreamer is sending to the browser is approximately 2,500 characters. We consider this quite small, but do we need to adjust any of the configuration?
The version of Lightstreamer we are using is 3.5 build 1428.4 (Allegro).
This is the cause for the error 110 message. It is clearly a false positive. It is already fixed in our development trunk and will be released probably before the end of the year. In the mean time you could suppress the alert re-implementing the onClientAlert and filtering the 110 code but I advise against this workaround because a sequence of sync errors, that causes the false positive, should never happen in normal situations.
A sync error means that a session is not found or is expired on the server, it could happen sometimes but if it happens several times to the same client in the same second probably means that the client is continuosly trying to work with a session that was created in another server.
Are you using a load balancer in front of Lightstreamer?
- Accept error on socket Lightstreamer HTTP Server java.io.IOException: Too many open files
Are you running Lightstreamer on an unix box right? This is a problem with the ulimit settings; check this thread
- Bad request: It was expected an integer value for LS_polling_millis
This could be a side effect of the other two problems, let's solve them and return on this if it doesn't disappear.
Are you using a load balancer in front of Lightstreamer?
We are using a load balancer in front of Lightstreamer. We have 2 Lightstreamer servers in this load balancer and have only now just removed the 2nd Lightstreamer. We will be testing the load tomorrow morning.
Are you running Lightstreamer on an unix box right? This is a problem with the ulimit settings;
Yes both Lightstreamers that we have are on unix. I believe we have set up the ulimit value - but I will double check with operations to find out what number was set. Typically, if a site has about 6000 hits a day, then we would double this value. Since we have 2 Lightstreamers which were both in the Load Balancer, the value would be have set 6000 for each box. Is this the correct configuration?
Also for a Windows machine, how would the ulimit value be set? Is it required? This would help recreating the problem on our development machines.
Bookmarks