[GRASS-dev] [GRASS GIS] #1866: broken db driver communication in winGRASS 7

GRASS GIS trac at osgeo.org
Wed Mar 13 14:42:51 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:20 glynn]:
 > Replying to [comment:17 mmetz]:
 >
 > > > Reverted in r55335.
 > >
 > > I am inclined to revert r55335 until a proper solution is found.
 >
 > Reinstating the hack makes it less likely that a proper solution will be
 found.

 Hmm. For the last 6 months this problem has been simply ignored. Anybody
 trying to find a solution will have to modify to code anyway.

 > It appears that an extra character has been inserted somewhere in the
 stream. The usual suspect is LF->CRLF conversion. That is supposed to be
 prevented by linking everything against fmode.o, but it's possible that
 isn't happening for some reason, or something else is overriding it.

 I get a compiler warning for fmode.c:

 {{{
 fmode.c:4:5: warning: '_fmode' redeclared without dllimport attribute:
 previous
 dllimport ignored [-Wattributes]
 }}}

 > Also, `G_gisinit()` and `G__gisinit()` explicitly set "_fmode =
 O_BINARY", but those functions don't appear to be called by DBMI drivers
 (although they typically call other libgis functions, e.g. `G__setenv()`).

 Adding `G_gisinit()`, `G_no_gisinit()`, or "_fmode = O_BINARY", or any
 combination of these to main.c of the drivers does not help.

 >
 > But rather than guess, it would be better to instrument `db__send()` and
 `db__recv()` to dump the data as hex.

 Attached as hexdump.txt for `v.info -c map=boundary_county`. Please let me
 know if you want another format.

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/1866#comment:22>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list