On 05/05/2026 2:39 PM PDT Chris Blackburn <[email protected]> wrote:
> Hi All, > > I've been working a lot with GPSD on a project recently and I've noticed some > strange behaviour. Basically I'm looking for some guidance from the devs aso > to whether what I've discovered is a bug that needs fixing or whether this is > expected behaviour. > > Our setup is on a vehicle where there is a primary computer which has the GPS > receiver on it. This runs GPSD and serves out location information through > the JSON interface to a number of devices on the vehicle which need location. > There are currently 3. I am not in control of the software running on these > devices. They were just told to "implement the GPSD spec" and pointed at the > documentation on the website. > > One of these devices appears to rolled their own implementation of the client > rather than use an off the shelf library. As a result they had a bug where > they did not read from the TCP socket properly and after about 60 seconds or > so they had filled up their TCP receive buffer and were sending back "TCP > Zero Window" messages back to GPSD. This is obviously broken and we will be > getting them to fix their implementation. > > *however*, The strange behaviour we noticed was that, when this happened, it > killed GPSD for every client simultaneously. Nobody got JSON data until this > offending client eventually times out and reset its connection. At which > point, all of the other clients would get a burst of data. Then the offending > device reconnected and the saga repeated itself. So, one faulty client caused > all clients to get (effectively) no location data. > > This was all observed with GPSD 3.22 on Debian 12. I then created a test > program which replicated the behaviour of the offending device and ran that > on a test box running 3.27.5 and it was still the same. > > Is this intended behaviour? Or is there something to investigate here where > clients are isolated from one another so one misbehaving client can't affect > everyone? > > Thanks, as always, for the amazing effort you guys do in creating GPSD I'm goinf to say that it is a bug and I think it's either throtted_write, something above or something below it. I'll work on STR.
