From Unknown to Off-Line

imarinkovic6 years ago

Hi friends,

this weekend I made upgrade from 3.13 to 3.15, all good but one thing seems to working "weird"...

Pre-Update: anytime a device went off-line, the device is marked "Offline" in web; after upgrade, devices keeps in "unknown" state for several hours (well...until I restart server)

Any idea what's happening?

Best regards,
Ivan.

Anton Tananaev6 years ago

Unknown means that device hasn't properly closed network connection, and no data received for 10 minutes or more.

imarinkovic6 years ago

Anton, thanks for answering.
That's correct. It's like protocol.timeout isn't working after update. I'm looking for connections not closed, but cannot find nothing strange.

In my config I have:

    <entry key='status.timeout'>120</entry>
    <entry key='gt02.timeout'>120</entry>
    <entry key='osmand.timeout'>120</entry>
    <entry key='tk103.timeout'>120</entry>
    <entry key='gps103.timeout'>120</entry>
    <entry key='h02.timeout'>120</entry>

This were working OK until update. I'm going to keep checking on TCP, but any clue is welcome :)

Best regards
Ivan.

Anton Tananaev6 years ago

What protocol are you using?

By the way, instead of specifying timeout for every protocol separately, you can use:

<entry key='server.timeout'>120</entry>
imarinkovic6 years ago

Thanks! I'm going to try that config this night!

I'm using H02 in the 95% of devices without any problem by now. Any news I'll comment if this serves to anyone else.

This is how looks like http://marinkovic.cl/error_unk.jpg

Anton Tananaev6 years ago

Dropbox has blocked your link:

Error (429)
This link is temporarily disabled. The person who shared it hit their daily limit of traffic or downloads. Learn about traffic limits.

imarinkovic6 years ago

This link is working...

http://marinkovic.cl/error_unk.jpg

Anton Tananaev6 years ago

Looks like timeout doesn't work. Are you sure you are using TCP and not UDP?

imarinkovic6 years ago

Hi Anton,
pretty sure is TCP.

Returning to the issue, server.timeout did the trick!...after 2 minutes devices shows Off-Line as expected, with the exception of Osmand protocol which I use to test from home. Using iPhone Traccar client, device shows Online for 10 minutes, then Unknown ad-eternum (until traccar is restarted). I checked for ESTABLISHED connections or any other TCP state and couldn't find anything.

[root@ip-172-31-60-54 ~]# netstat -natp |grep 5055
tcp        0      0 0.0.0.0:5055            0.0.0.0:*               LISTEN      1513/java           
[root@ip-172-31-60-54 ~]#

Not a problem for me with Osmand as I use it only for test purposes, but I noted this change in behavior after update (I'm not saying this is caused by update), that's why I raising this. Anyway, If I can help in testing something, count on me.

Thanks a lot for your guidance and help.

Anton Tananaev6 years ago

There is no offline state for OsmAnd or any other HTTP-based protocol, so it's expected.

imarinkovic6 years ago

Great, Understood!

Thanks again!

jcorreajr6 years ago

Hello!
I am using version 3.17. I configured the option:

'server.timeout' 900 

Correctly, after 15 minutes the connection is terminated and the ports involved in the connection are closed
but the status of the device remains unknown.

This state remains so indefinitely, even without any active connection.

I use the protocol 'gps103' port 5001 / tcp.
I also tested the option:

'gps103.timeout'   

But the same problem occurs.

Anton Tananaev6 years ago

Are you sure you haven't disabled offline status? Are you sure you are using TCP and not UDP? Log fragment with disconnect message please.

jcorreajr6 years ago

Now I did a test using the protocol "watch", port 5093 / tcp and the same problem occurred.
The following is the log excerpt that shows that the connection was correctly terminated:

2018-07-03 17:55:26 INFO: [AC5E7CC0] connected
2018-07-03 17:55:28 INFO: [AC5E7CC0] id: 1234561, time: 2018-07-03 17:33:17, lat: -XX.XXXX, lon: -XX.XXXX, speed: 0.0, course: 0.0
2018-07-03 17:58:38 INFO: [AC5E7CC0] timed out
2018-07-03 17:58:38 INFO: [AC5E7CC0] disconnected

The parameter I used for the test was:

 'server.timeout' 190 "
 'status.timeout' 120 "

As in the previous analysis, after 2 minutes the device enters the unknown state. Around 3 minutes, the connection is terminated (see log) but the device follows as unknown ideally.

Important note:
I saw that if I use the 'status.timeout' parameter greater than the 'server.timeout' parameter the device does not look like 'unknown' and goes into the disconnected state. This would be a way to force the state of the device to disconnected (red).

Anton Tananaev6 years ago

I'm confused. In one message you say that it stays unknown, but in the next one you say that you want it to stay unknown. So, what is the issue?