[GRASS-dev] Re: [GRASS GIS] #1158: Removing vector map in Windows
fails with "Unable to delete vector map"
GRASS GIS
trac at osgeo.org
Sun Aug 28 13:38:12 EDT 2011
#1158: Removing vector map in Windows fails with "Unable to delete vector map"
--------------------------------------------------------------------------+-
Reporter: lponti | Owner: grass-dev@…
Type: defect | Status: new
Priority: blocker | Milestone: 6.4.2
Component: Vector | Version: 6.4.0
Keywords: wingrass, g.mremove, wildcards, v.in.ogr, v.select, g.remove | Platform: MSWindows 7
Cpu: Unspecified |
--------------------------------------------------------------------------+-
Comment(by mmetz):
Replying to [comment:38 glynn]:
> Replying to [comment:37 mmetz]:
>
> > So does this mean that the DBMI driver is not properly closed?
>
> It certainly looks that way. Even if the client doesn't send
DB_PROC_SHUTDOWN_DRIVER, the driver should get EOF on its stdin when the
client terminates.
>
> Can you use e.g. Process Explorer and/or gdb to discover anything about
the state of the driver process after the client terminates?
Testing the same 6.4.2 installer on a different xp system, the DBMI driver
is always closed. Weird. But removing a vector fails 9 out of 10 times,
sometimes it succeeds. Since the driver is closed, I can not investigate
it with e.g. Process Explorer. The driver remains open if I disable
DB_START_PROCEDURE_CALL(DB_PROC_SHUTDOWN_DRIVER) in db_shutdown_driver(),
so that seems to work.
Removing a vector always succeeds if I insert Sleep() (Uppercase Sleep)
for some few hundred milliseconds in db_shutdown_driver(), after _cwait()
is called. I am not sure if this is a solution or just a workaround.
BTW, driver->pid refers to the PID of the instance of cmd.exe associated
with the driver, e.g. dbf.exe, not the PID of dbf.exe itself, but that
does not seem to cause problems.
Markus M
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/1158#comment:39>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list