Package: gpsd
Version: 2.37-4
Severity: important

gpsd doesn't support command pipelining. That means that if a client sends
requests fast enough, some of them will be ignored.

Here is an strace of a program connecting to gpsd and sending w, o and y
commands. GPSD reacts by handling the w comamnd and ignoring the other two
commands:

accept a new connection:

   1214968501.812918 accept(3, {sa_family=AF_INET, sin_port=htons(47740), 
sin_addr=inet_addr("10.0.0.1")}, [476741369872]) = 6 <0.000057>

read the three commands that happened to arrive fast enough:
 
   1214968501.814246 read(6, "w\r\no\r\ny\r\n", 8191) = 9 <0.000103>

send the X and W response typically received after enablign watcher mode (W 
command):

   1214968501.815133 write(6, "GPSD,X=1214968501.815080,I=SiRF "..., 40) = 40 
<0.000049>
   1214968501.815572 write(6, "GPSD,W=1\r\n", 10) = 10 <0.000038>

enter select loop, no response to the o and y commands sent:

   1214968501.815749 select(8, [3 5 6 7], NULL, NULL, {1, 0}) = 1 (in [7], left 
{0, 884000}) <0.117157>
   ...

not handling run-together commands means that gpsd users have to wait
for responses before they can issue additional commands, which slows
down command rate immensely, which is a problem as gps information is
time-critical.

It also means that clients sending "fast enough" or over a "slow enough"
network (e.g. with nagle kicking in) will simply time out as gpsd ignores
the request.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.24-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages gpsd depends on:
ii  debconf [debconf-2.0]      1.5.11etch1   Debian configuration management sy
hi  libc6                      2.7-12        GNU C Library: Shared libraries
ii  libdbus-1-3                1.2.1-2       simple interprocess messaging syst
ii  libgps17                   2.37-4        C library for communicating with G
ii  lsb-base                   3.1-23.2etch1 Linux Standard Base 3.1 init scrip
ii  netbase                    4.32          Basic TCP/IP networking system
ii  python                     2.5.2-1       An interactive high-level object-o

Versions of packages gpsd recommends:
ii  gpsd-clients                  2.37-4     Clients for the GPS daemon

-- debconf information:
  gpsd/device:
* gpsd/start_daemon: false
  gpsd/autodetection: false
  gpsd/daemon_options:



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to