qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.34k stars 2.98k forks source link

GeoPackage fails to load from WSL directory #43895

Closed markgrujic closed 3 years ago

markgrujic commented 3 years ago

Describe the bug Importing a geopackage that is stored in a home drive on Windows Subsystem for Linux fails to load. My file only contains spatial points data.

Other formats (csv, geojson, shape file) seem to work fine.

How to Reproduce

  1. Drag and drop a GeoPackage with spatial points into QGIS or import using the Data Source Manager.
  2. See error -->

    Error opening layer: The file does not contain any layer or there was an error opening the file. Check file and directory permissions on \wsl.localhost\Ubuntu\home\ubuntu\work\temp\example.gpkg

QGIS and OS versions QGIS: 3.18.3-Zürich OS: Windows 10 Pro 10.0.21390 WSL2 version: 2

QGIS version 3.18.3-Zürich QGIS code revision 735cc85be9 Compiled against Qt 5.11.2 Running against Qt 5.11.2 Compiled against GDAL/OGR 3.1.4 Running against GDAL/OGR 3.1.4 Compiled against GEOS 3.8.1-CAPI-1.13.3 Running against GEOS 3.8.1-CAPI-1.13.3 Compiled against SQLite 3.29.0 Running against SQLite 3.29.0 PostgreSQL Client Version 11.5 SpatiaLite Version 4.3.0 QWT Version 6.1.3 QScintilla2 Version 2.10.8 Compiled against PROJ 6.3.2 Running against PROJ Rel. 6.3.2, May 1st, 2020 OS Version Windows 10 (10.0) Active python plugins db_manager; MetaSearch; processing

Additional context

gioman commented 3 years ago

\wsl.localhost\Ubuntu\home\ubuntu\work\temp\example.gpkg

@markgrujic can you successfully ogrinfo that datasource?

markgrujic commented 3 years ago

Hi, yep here is the output from a few different things.

ogrinfo using QGIS on Windows, file in Linux directory:

An error has occurred while executing Python code: 

_core.QgsProcessingException: Could not load source layer for INPUT: //wsl.localhost/Ubuntu/home/ubuntu/work/temp/example.gpkg not found 
Traceback (most recent call last):
  File "C:/PROGRA~1/QGIS3~1.18/apps/qgis/./python/plugins\processing\algs\gdal\GdalAlgorithmDialog.py", line 140, in parametersHaveChanged
    commands = self.algorithm().getConsoleCommands(parameters, context, feedback, executing=False)
  File "C:/PROGRA~1/QGIS3~1.18/apps/qgis/./python/plugins\processing\algs\gdal\ogrinfo.py", line 80, in getConsoleCommands
    raise QgsProcessingException(self.invalidSourceError(parameters, self.INPUT))
_core.QgsProcessingException: Could not load source layer for INPUT: //wsl.localhost/Ubuntu/home/ubuntu/work/temp/example.gpkg not found

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] 
QGIS version: 3.18.3-Zürich Zürich, 735cc85be9 

Python Path:
C:/PROGRA~1/QGIS3~1.18/apps/qgis/./python
C:/Users/MicroPC/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/MicroPC/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA~1/QGIS3~1.18/apps/qgis/./python/plugins
C:\PROGRA~1\QGIS3~1.18\apps\Python37
C:\PROGRA~1\QGIS3~1.18\apps\Python37\Scripts
C:\Program Files\QGIS 3.18\bin\python37.zip
C:\PROGRA~1\QGIS3~1.18\apps\Python37\DLLs
C:\PROGRA~1\QGIS3~1.18\apps\Python37\lib
C:\Program Files\QGIS 3.18\bin
C:\PROGRA~1\QGIS3~1.18\apps\Python37\lib\site-packages
C:\PROGRA~1\QGIS3~1.18\apps\Python37\lib\site-packages\win32
C:\PROGRA~1\QGIS3~1.18\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA~1\QGIS3~1.18\apps\Python37\lib\site-packages\Pythonwin
C:/Users/MicroPC/AppData/Roaming/QGIS/QGIS3\profiles\default/python

ogrinfo using QGIS on Windows, file in Windows directory:

QGIS version: 3.18.3-Zürich
QGIS code revision: 735cc85be9
Qt version: 5.11.2
GDAL version: 3.1.4
GEOS version: 3.8.1-CAPI-1.13.3
PROJ version: Rel. 6.3.2, May 1st, 2020
Processing algorithm…
Algorithm 'Vector information' starting…
Input parameters:
{ 'INPUT' : 'C:/work/temp/example.gpkg', 'NO_METADATA' : False, 'OUTPUT' : 'TEMPORARY_OUTPUT', 'SUMMARY_ONLY' : True }

GDAL command:
ogrinfo -al -so C:/work/temp/example.gpkg example
GDAL command output:
INFO: Open of `C:/work/temp/example.gpkg' 
using driver `GPKG' successful. 

Layer name: example 
Geometry: Point 
Feature Count: 64 
Extent: (AAA, BBB) - (CCC, DDD) 
Layer SRS WKT: 
PROJCRS["GDA94 / MGA zone 51", 
BASEGEOGCRS["GDA94", 
DATUM["Geocentric Datum of Australia 1994", 
ELLIPSOID["GRS 1980",6378137,298.257222101, 
LENGTHUNIT["metre",1]]], 
PRIMEM["Greenwich",0, 
ANGLEUNIT["degree",0.0174532925199433]], 
ID["EPSG",4283]], 
CONVERSION["UTM zone 51S", 
METHOD["Transverse Mercator", 
ID["EPSG",9807]], 
PARAMETER["Latitude of natural origin",0, 
ANGLEUNIT["degree",0.0174532925199433], 
ID["EPSG",8801]], 
PARAMETER["Longitude of natural origin",123, 
ANGLEUNIT["degree",0.0174532925199433], 
ID["EPSG",8802]], 
PARAMETER["Scale factor at natural origin",0.9996, 
SCALEUNIT["unity",1], 
ID["EPSG",8805]], 
PARAMETER["False easting",500000, 
LENGTHUNIT["metre",1], 
ID["EPSG",8806]], 
PARAMETER["False northing",10000000, 
LENGTHUNIT["metre",1], 
ID["EPSG",8807]], 
ID["EPSG",17051]], 
CS[Cartesian,2], 
AXIS["easting",east, 
ORDER[1], 
LENGTHUNIT["metre",1, 
ID["EPSG",9001]]], 
AXIS["northing",north, 
ORDER[2], 
LENGTHUNIT["metre",1, 
ID["EPSG",9001]]]] 
Data axis to CRS axis mapping: 1,2 
FID Column = fid 
Geometry Column = geom 
Score: Real (0.0)
Process completed successfully

ogrinfo using environment on Linux with GDAL, file in Linux directory:

(base) ubuntu@MicroPC:~/work/temp$ ogrinfo -al -so example.gpkg
        - 'VirtualXPath'        [XML Path Language - XPath]
INFO: Open of `example.gpkg'
      using driver `GPKG' successful.

Layer name: example
Geometry: Point
Feature Count: 64
Extent: (AAA, BBB) - (CCC, DDD)
Layer SRS WKT:
PROJCRS["GDA94 / MGA zone 51",
    BASEGEOGCRS["GDA94",
        DATUM["Geocentric Datum of Australia 1994",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4283]],
    CONVERSION["UTM zone 51S",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",123,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",10000000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]],
        ID["EPSG",17051]],
    CS[Cartesian,2],
        AXIS["easting",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["northing",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
Data axis to CRS axis mapping: 1,2
FID Column = fid
Geometry Column = geom
Score: Real (0.0)

Looks like the call works when working within a consistent OS/directory?

gioman commented 3 years ago

Looks like the call works when working within a consistent OS/directory?

@markgrujic sorry, I meant try ogrinfo from the command line, not QGIS/Processing.

markgrujic commented 3 years ago

Oops. Sorry also I just had to mask out some of the locations of the data - hope that's ok.

The call from on the file that is in a Windows directory works:

C:\work\temp>"C:\Program Files\QGIS 3.18\bin\ogrinfo.exe" -al -so example.gpkg
INFO: Open of `example.gpkg'
      using driver `GPKG' successful.

Layer name: example
Geometry: Point
Feature Count: 64
Extent: (AAA, BBB) - (CCC, DDD)
Layer SRS WKT:
PROJCRS["GDA94 / MGA zone 51",
    BASEGEOGCRS["GDA94",
        DATUM["Geocentric Datum of Australia 1994",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4283]],
    CONVERSION["UTM zone 51S",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",123,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",10000000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]],
        ID["EPSG",17051]],
    CS[Cartesian,2],
        AXIS["easting",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["northing",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
Data axis to CRS axis mapping: 1,2
FID Column = fid
Geometry Column = geom
Score: Real (0.0)

The call from Windows on the file that is in a Linux directory doesn't:

C:\work\temp>"C:\Program Files\QGIS 3.18\bin\ogrinfo.exe" -al -so "\\wsl.localhost\Ubuntu\home\ubuntu\work\temp\example.gpkg"
ERROR 1: database is locked
ERROR 1: database is locked
FAILURE:
Unable to open datasource `\\wsl.localhost\Ubuntu\home\ubuntu\work\temp\example.gpkg' with the following drivers.
  -> JP2ECW
  -> OCI
  -> SOSI
  -> PCIDSK
  -> netCDF
  -> PDS4
  -> VICAR
  -> JP2OpenJPEG
  -> PDF
  -> MBTiles
  -> EEDA
  -> DB2ODBC
  -> ESRI Shapefile
  -> MapInfo File
  -> UK .NTF
  -> OGR_SDTS
  -> S57
  -> DGN
  -> OGR_VRT
  -> REC
  -> Memory
  -> BNA
  -> CSV
  -> NAS
  -> GML
  -> GPX
  -> LIBKML
  -> KML
  -> GeoJSON
  -> GeoJSONSeq
  -> ESRIJSON
  -> TopoJSON
  -> Interlis 1
  -> Interlis 2
  -> OGR_GMT
  -> GPKG
  -> SQLite
  -> ODBC
  -> WAsP
  -> PGeo
  -> MSSQLSpatial
  -> OGR_OGDI
  -> PostgreSQL
  -> MySQL
  -> OpenFileGDB
  -> XPlane
  -> DXF
  -> CAD
  -> FlatGeobuf
  -> Geoconcept
  -> GeoRSS
  -> GPSTrackMaker
  -> VFK
  -> PGDUMP
  -> OSM
  -> GPSBabel
  -> SUA
  -> OpenAir
  -> OGR_PDS
  -> WFS
  -> OAPIF
  -> HTF
  -> AeronavFAA
  -> Geomedia
  -> EDIGEO
  -> SVG
  -> CouchDB
  -> Cloudant
  -> Idrisi
  -> ARCGEN
  -> SEGUKOOA
  -> SEGY
  -> XLS
  -> ODS
  -> XLSX
  -> Elasticsearch
  -> Walk
  -> Carto
  -> AmigoCloud
  -> SXF
  -> Selafin
  -> JML
  -> PLSCENES
  -> CSW
  -> VDV
  -> GMLAS
  -> MVT
  -> NGW
  -> MapML
  -> TIGER
  -> AVCBin
  -> AVCE00
  -> HTTP

As before, running the call from WSL on the file in the Linux directory is fine:

(base) ubuntu@MicroPC:~/work/temp$ ogrinfo example.gpkg
        - 'VirtualXPath'        [XML Path Language - XPath]
INFO: Open of `example.gpkg'
      using driver `GPKG' successful.
1: example (Point)

Cheers

gioman commented 3 years ago

The call from Windows on the file that is in a Linux directory doesn't:

@markgrujic this shows that the problem is not in QGIS.

markgrujic commented 3 years ago

Got it. Thanks. I'll take it over to GDAL. Cheers

github-actions[bot] commented 3 years ago

The QGIS project highly values your report and would love to see it addressed. However, this issue has been left in feedback mode for the last 14 days and is being automatically marked as "stale". If you would like to continue with this issue, please provide any missing information or answer any open questions. If you could resolve the issue yourself meanwhile, please leave a note for future readers with the same problem and close the issue. In case you should have any uncertainty, please leave a comment and we will be happy to help you proceed with this issue. If there is no further activity on this issue, it will be closed in a week.

github-actions[bot] commented 3 years ago

While we hate to see this happen, this issue has been automatically closed because it has not had any activity in the last 42 days despite being marked as feedback. If this issue should be reconsidered, please follow the guidelines in the previous comment and reopen this issue. Or, if you have any further questions, there are also further support channels that can help you.