|
From: | Fulup Ar Foll |
Subject: | [gpsd-users] tcp://feed failure strategy |
Date: | Wed, 6 Apr 2016 10:35:03 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 |
* PROBLEMATIC: An AIS hub should remain open 7/7days & 24h/day. In theory (at least) it should never stop and the goal it to never have to restart any of your GPSd services. As a result channels from either your fix AIS station or your external feed (ie: AIShub) could have to remain open for months. Now when you open a remote TCP link for months, at some point in time your TCP channel will break. It is just a matter of waiting long enough for this to happen. * ISSUE: In previous GPSd version, when one single TCP feed breaks Gpsd kill itself (hoops!!!). In latest version (3.16) it even worse has it remove the link without ever trying to reconnect onto it.
The old model was hugely, but somehow easy to handle. We had to create a small monitoring script to check if GPSd was still responding, when not it had to be restarted. With new model it is much harder has your GPSd still respond but may have disconnected from your TCP:// feed.
Turn around, not really optimal but at least it works. Use 'socat' to proxy TCP feeds into UDP before re-injecting them to GPSd.
WANTED SOLUTION: to keep GPSd running for ever, we would like an automatic reconnection on TCP:// feeds. Something equivalent to what I coded into GPS2udp, where input channel is monitored and in case of no respond for more than XXseconds the channel is close en reopen.
Other bug on TCP: I also noted that is a feed block (connection initialise but listen does not respond) then GPSd freeze for ever (noted on 3.11 and 3.16). This error case is rare and probably not critical, but at least an error message would be welcome.
Fulup
[Prev in Thread] | Current Thread | [Next in Thread] |