Hi All,

I'm working on collecting some logs/packet captures showing this behaviour.
Unfortunately, I'm on the road at the moment so I can't get to this until
the weekend. I'll send them through ASAP.

Regards

Chris

On Tue, 5 May 2026 at 23:44, Gary E. Miller <[email protected]> wrote:

> Yo Chris!
>
> On Tue, 5 May 2026 22:39:45 +0100
> Chris Blackburn <[email protected]> wrote:
>
> > I've been working a lot with GPSD on a project recently and I've
> > noticed some strange behaviour.
>
> Cool.  Welcome!
>
> > 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.
>
> Ouch.  GPSD clients are usually pretty easy to write.  But many ways
> to go wrong.  The GPSD examples should be studied.
>
> > *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.
>
> Un good.  That is a new one.
>
> > 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.
>
> Good that you are on 3.27.6.  You mght try git head, but I expect
> you will get the same results.
>
> > Is this intended behaviour?
>
> Intended crashing?  No.
>
> > Or is there something to investigate here
> > where clients are isolated from one another so one misbehaving client
> > can't affect everyone?
>
> I can't imagine why this is happening, but worth a serious look.
>
> The best way to proceed is to send here the output of "gpsdebginfO",
> and a -D5 log from gpsd when the error happens.
>
> RGDS
> GARY
> ---------------------------------------------------------------------------
> Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
>         [email protected]  Tel:+1 541 382 8588
>
>             Veritas liberabit vos. -- Quid est veritas?
>     "If you can't measure it, you can't improve it." - Lord Kelvin
>

Reply via email to