[gdal-dev] Virtual Filesystem Question(s)
Stephen Woodbridge
woodbri at swoodbridge.com
Sat Feb 9 17:24:50 PST 2013
On 2/9/2013 6:41 PM, Even Rouault wrote:
> Le dimanche 10 février 2013 00:23:37, Stephen Woodbridge a écrit :
>> On 2/9/2013 6:03 PM, Jukka Rahkonen wrote:
>>> Stephen Woodbridge <woodbri <at> swoodbridge.com> writes:
>>>> Just a followup to this, I have downloaded gdal-1.9.2 and get the same
>>>> results. So no joy there.
>>>>
>>>> -Steve
>>>
>>> Perhaps vsicurl_streaming that is also mentioned in the same blog is
>>> something worth trying.
>>
>> Yeah, I saw that. I may or may not be able to build trunk on this
>> machine depending on the dependencies that needs as more of the
>> libraries are fairly dated.
>>
>> But more importantly, I think this is a bug. I'm happy to write it up
>> but it would be nice to get some confirmation. At the moment, I'm review
>> the source code to see if I can see a problem there.
>
> Well, I rather think that there's a bug in your PHP script, because curl -r
> 0-16383 http://www.google.fr works even if the returned file is < 16383
>
> whereas :
>
> curl -r 0-16383 http://example.com/ws/test-pg.php hangs
>
> Or it is a bug in libcurl itself.
OK, bug in my code. So using the above command now works. But ogrinfo
alternately hangs and then runs with this error:
ERROR 1: Failed to open datasource
`/vsicurl/http://example.com/ws/test-pg.php'.
In gdb, it appears to be hanging if I ^C and bt in poll()
(gdb) run -ro test-pg.vrt test
Starting program: /usr/local/bin/ogrinfo -ro test-pg.vrt test
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.38 is .hash at
0000000000000120
INFO: Open of `test-pg.vrt'
using driver `VRT' successful.
[New Thread 0x7f35a95aa710 (LWP 13410)]
^C
Program received signal SIGINT, Interrupt.
[Switching to Thread 0x7f35a95aa710 (LWP 13410)]
0x00007f35a32efb9f in poll () from /lib/libc.so.6
(gdb) bt
#0 0x00007f35a32efb9f in poll () from /lib/libc.so.6
#1 0x00007f35a51b7296 in ?? () from /usr/lib/libcurl.so.4
#2 0x00007f35a51afbc1 in ?? () from /usr/lib/libcurl.so.4
#3 0x00007f35a51afefd in ?? () from /usr/lib/libcurl.so.4
#4 0x00007f35a519ea3b in ?? () from /usr/lib/libcurl.so.4
#5 0x00007f35a51ac80b in ?? () from /usr/lib/libcurl.so.4
#6 0x00007f35a8ca7f5c in VSICurlFilesystemHandler::GetFileList (
this=0x17b0310,
pszDirname=0x17b28e8 "/vsicurl/http://example.com/ws",
pbGotFileList=0x17b2850) at cpl_vsil_curl.cpp:2314
#7 0x00007f35a8cab19b in VSICurlFilesystemHandler::ReadDir (this=0x17b0310,
pszDirname=<value optimized out>, pbGotFileList=0x7fff120d38f8)
at cpl_vsil_curl.cpp:2461
#8 0x00007f35a8caa88b in VSICurlFilesystemHandler::Stat (this=0x17b0310,
pszFilename=0x17b2730 "/vsicurl/http://example.com/ws/test-pg.php",
pStatBuf=<value optimized out>, nFlags=3) at cpl_vsil_curl.cpp:2367
#9 0x00007f35a8cb1c39 in VSIStatExL (
pszFilename=0x17b2730 "/vsicurl/http://example.com/ws/test-pg.php",
psStatBuf=0x7fff120d39b0, nFlags=3) at cpl_vsil.cpp:285
#10 0x00007f35a8e73f44 in OGRShapeDataSource::Open (this=0x17b27a0,
pszNewName=0x17b2730 "/vsicurl/http://example.com/ws/test-pg.php",
bUpdate=0, bTestOpen=1, bForceSingleFileDataSource=0)
at ogrshapedatasource.cpp:109
#11 0x00007f35a8e74e82 in OGRShapeDriver::Open (this=<value optimized out>,
pszFilename=0x17b2730 "/vsicurl/http://example.com/ws/test-pg.php",
bUpdate=0) at ogrshapedriver.cpp:70
#12 0x00007f35a8e7272c in OGRSFDriverRegistrar::Open (
pszName=0x17b2730 "/vsicurl/http://example.com/ws/test-pg.php",
bUpdate=0, ppoDriver=0x0) at ogrsfdriverregistrar.cpp:226
#13 0x00007f35a8e966f7 in OGRVRTLayer::FullInitialize (this=0x17b1530)
at ogrvrtlayer.cpp:322
#14 0x00007f35a8e97450 in OGRVRTLayer::GetLayerDefn (this=0x17b1530)
at ogrvrtlayer.cpp:1864
#15 0x000000000040195d in ReportOnLayer (poLayer=0x7fff120d2f50,
pszWHERE=0x1 <Address 0x1 out of bounds>, poSpatialFilter=0x493c0)
at ogrinfo.cpp:360
#16 0x00000000004023f6 in main (nArgc=<value optimized out>,
papszArgv=0x17b0ae0) at ogrinfo.cpp:316
(gdb) c
Continuing.
##### after a very long wait 3-5 minutes it times out with the following
ERROR 1: Failed to open datasource
`/vsicurl/http://example.com/ws/test-pg.php'.
Layer name: test
Geometry: 3D Point
Feature Count: 0
Layer SRS WKT:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AUTHORITY["EPSG","4326"]]
Program exited normally.
OK, got 1.10beta1 compiled I'll give that a try. This might just be my
very old version of curl 7.18.2
-Steve
> I haven't checked the RFCs, but all tests I have done before against Apache or
> IIS servers show that asking for more than the file size work.
>
>>
>> Thank you for your suggestion,
>> -Steve
>>
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
More information about the gdal-dev
mailing list