[GRASS-dev] [GRASS GIS] #1866: broken db driver communication in winGRASS 7
GRASS GIS
trac at osgeo.org
Tue Mar 12 12:52:09 PDT 2013
#1866: broken db driver communication in winGRASS 7
------------------------------+---------------------------------------------
Reporter: martinl | Owner: grass-dev@…
Type: defect | Status: new
Priority: blocker | Milestone: 7.0.0
Component: Database | Version: unspecified
Keywords: sqlite, wingrass | Platform: MSWindows 2K
Cpu: Unspecified |
------------------------------+---------------------------------------------
Comment(by mmetz):
Replying to [comment:15 glynn]:
> Replying to [comment:14 mmetz]:
> > Fixed in r55332
> r55332 doesn't fix anything, but instead breaks linking (because libxdr
typically won't exist).
libxdr exists in osgeo4w [0]. I don't know why r55332 works, but it works.
IOW, r53256 works, r53257 does not work.
> Reverted in r55335.
I am inclined to revert r55335 until a proper solution is found.
>
> In what way does the DBMI client lib receive "garbage"? Is the data
simply corrupted, or does it bear absolutely no relation to what the
driver sends?
The communication pipe first sends the size of the string, then the string
itself [1]. After the first few transmissions, the size of the string as
sent by the driver is correct, but the size of the string as received by
the dblib is too large. That means the driver continues sending correct
data with `db__send_string()` while `db__recv_string()` still waits for a
very large string to appear, which never appears. As a result, nothing
happens and the modules using dblib hang.
[0] http://download.osgeo.org/osgeo4w/release/libxdr/libxdr/
[1]
https://trac.osgeo.org/grass/browser/grass/trunk/lib/db/dbmi_base/xdrstring.c#L86
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/1866#comment:17>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list