My application java, is running in server, openning port and made connection with devices by socket. Everythings went run till a certain point, lot of connection stay in CLOSE_WAIT, even if my application finish the process on the packet I receive.
What I remark is that CPU began to use double ressource, open file are increasing, and number of CLOSE_WAIT status are increasing also.
In the wireshark, the packet sended which leave a CLOSE_WAIT status, we see that server didn't send FIN to the client.
PS: I'm on ubuntu 14.04 trusty server, I'm using Netty 3.10.1
Here is the code where I Made Pipeline :
@Override
public ChannelPipeline getPipeline() {
ChannelPipeline pipeline = Channels.pipeline();
if (resetDelay != null) {
pipeline.addLast("idleHandler", new IdleStateHandler(GlobalTimer.getTimer(), resetDelay, 0, 0));
}
pipeline.addLast("openHandler", new OpenChannelHandler(server));
if (loggerEnabled) {
pipeline.addLast("logger", new StandardLoggingHandler());
}
addSpecificHandlers(pipeline);
if (filterHandler != null) {
pipeline.addLast("filter", filterHandler);
}
if (reinitializeHandler != null) {
pipeline.addLast("reinitialize", reinitializeHandler);
}
if (refineHandler != null) {
pipeline.addLast("refine", refineHandler);
}
if (noFilterHandler != null) {
pipeline.addLast("nofilter", noFilterHandler);
}
if (specificFilterHandler != null) {
pipeline.addLast("specificfilter", specificFilterHandler);
}
if (reverseGeocoder != null) {
pipeline.addLast("geocoder", new ReverseGeocoderHandler(reverseGeocoder, processInvalidPositions));
}
pipeline.addLast("handler", new TrackerEventHandler(dataManager));
return pipeline;
}