Bug report #262
Projectin transformations on fly still crash QGIS
Status: | Closed | ||
---|---|---|---|
Priority: | Low | ||
Assignee: | Gary Sherman | ||
Category: | Projection Support | ||
Affected QGIS version: | Regression?: | No | |
Operating System: | Debian | Easy fix?: | No |
Pull Request or Patch supplied: | Resolution: | fixed | |
Crashes QGIS or corrupts data: | Copied to github as #: | 10321 |
Description
I loaded simple shapefile with coordinate system r1 and started to play with projection changing. At third projection it crashed :) Unfortunately crashes on projection changes are very often.
I can add more fault examples, if you need such :)
r1:+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=0 +ellps=WGS84 +units=m +no_defs
Crash:
Selection sql : select parameters from tbl_srs where srs_id = 2473 Item selected : Lisbon Item selected full string : +proj=longlat +ellps=intl +no_defs [[SpatialRefSys]]/ProjectSRSProj4String: +proj=longlat +ellps=intl +no_defs [[QgsProjectionSelector]]::getCurrentProj4String : mySrsId = 2473 [[QgsProjectionSelector]]::getCurrentProj4String : USER_PROJECTION_START_ID = 100000 [[QgsProjectionSelector]]::getCurrentProj4String db = /usr/local/share/qgis/resources/srs.db Selection sql : select parameters from tbl_srs where srs_id = 2473 Item selected : Lisbon Item selected full string : +proj=longlat +ellps=intl +no_defs Debug: qgsspatialrefsys.cpp: 408: (createFromSrsId) [[QgsSpatialRefSys]]::createFromSrsId Debug: qgsspatialrefsys.cpp: 1285: (openDb) [[QgsSpatialRefSys]]::openDb path = /usr/local/share/ qgis/resources/srs.db Debug: qgsspatialrefsys.cpp: 906: (setMapUnits) Projection has angular units of degree Setting map units to 2 Debug: qgsscalecalculator.cpp: 114: (calculateGeographicDistance) Distance across map extent (m): 1.16284e+10 Debug: qgsscalecalculator.cpp: 70: (calculate) Using conversionFactor of 39.3701 [[QgsMapCanvas]]::render Debug: qgsmaprender.cpp: 184: (render) ========== Rendering ========== Debug: qgsmaprender.cpp: 200: (render) Starting to render layer stack. Debug: qgsmaprender.cpp: 210: (render) At layer item 'krasta_linija_poly20060908234320269' Debug: qgsmaprender.cpp: 218: (render) If there is a QPaintEngine error here, it is caused by an emit call Debug: qgsmaplayer.cpp: 127: (name) [[QgsMapLayer]]::name: returning name 'krasta_linija_poly Debug: qgsmaprender.cpp: 231: (render) Rendering layer krasta_linija_poly Debug: qgsmaprender.cpp: 232: (render), Layer minscale : 0 Debug: qgsmaprender.cpp: 233: (render), Layer maxscale : 0 Debug: qgsmaprender.cpp: 235: (render), Scale dep. visibility enabled? : 0 Debug: qgsmaprender.cpp: 236: (render) Input extent: 588123.5256602407898754,6360201.563419 8477491736 : 654035.8441072874702513,6418725.7058217935264111 Debug: qgsmaplayer.cpp: 561: (coordinateTransform) Maplayer asked for coordinateTransform whi ch is.... Debug: qgsmaplayer.cpp: 568: (coordinateTransform) valid Debug: qgscoordinatetransform.cpp: 336: (transformBoundingBox) Entering transformBoundingBox. .. Debug: qgscoordinatetransform.cpp: 383: (transformBoundingBox) Projected extent: 25.465525428 0335228,57.3593244591122442 : 26.5979268904583002,57.9023568248321681 Debug: qgsmaprender.cpp: 239: (render) Transformed extent: 25.4655254280335228,57.359324459 1122442 : 26.5979268904583002,57.9023568248321681 Debug: qgsmaplayer.cpp: 520: (connectNotify) [[QgsMapLayer]] connected to 2drawingProgress(int,in t) Debug: qgsmaplayer.cpp: 598: (projectExtent) Getting extent of canvas in layers CS. Canvas is = 1632007.9092671519611031,1161399.9868973668199033 : 1739450.5885653679724783,1238356.1759 263921994716 Debug: qgscoordinatetransform.cpp: 461: (transformCoords) Projection failed emitting invalid transform signal: NeveiksmÄ«gs inverse trasnform from (1.63201e+06, 1.1614e+06) with error: geocentric transformation missing z or ellps Warning: [[QgsMapLayer]]::invalidTransformInput() called Warning: Throwing exception qgscoordinatetransform.cppǐ Warning: Throwing exception qgscoordinatetransform.cppË Warning: Throwing exception qgscoordinatetransform.cppß Warning: Transform error caught in qgsmaplayer.cpp, line 633 Debug: qgsogrprovider.cpp: 607: (select) Selection rectangle is: = -179769313486231570814527 423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382 464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133 942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124 858368.0000000000000000,-17976931348623157081452742373170435679807056752584499659891747680315 726078002853876058955863276687817154045895351438246423432132688946418276846754670353751698604 991057655128207624549009038932894407586850845513394230458323690322294816580855933212334827479 7826204144723168738177180919299881250404026184124858368.0000000000000000 : 179769313486231570 814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953 514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508 455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026 184124858368.0000000000000000,179769313486231570814527423731704356798070567525844996598917476 803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516 986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348 274797826204144723168738177180919299881250404026184124858368.0000000000000000 Warning: Setting spatial filter failed! qgis: qgsogrprovider.cpp:638: virtual void [[QgsOgrProvider]]::select(QgsRect*, bool): Assertion @result==0' failed. Aborted
History
#1 Updated by magnus-homann-se - about 18 years ago
This is probably due to the fact that the selection rectangle is very big, and that
it somehow fails to set it and that 'filter' is set to NULL in
void QgsOgrProvider::select(QgsRect *rect, bool useIntersect)
Is there a way to reproduce this issue?
#2 Updated by anonymous - about 18 years ago
I created new shapefile and started top play with proj transformations (clicking on random projections till QGIS segfaults). No mater how insane those projection transformations could be, QGIS should NOT segfault. Error message, refusal to perform transformation etc. is OK, but not segfault.
To reproduce crash, load attached shapefile, enable projection changing on fly and choose one of these projections: br
QGIS SRSID: 66 br
QGIS SRSID: 175 br
QGIS SRSID: 937 br
QGIS SRSID: 1696
#3 Updated by Gavin Macaulay - about 18 years ago
Fix in 68871e4b (SVN r6077) to prevent qgis crashing in this situation. The real problem is why are those projections listed above considered invalid by geos?
#4 Updated by Martin Dobias about 18 years ago
Probably another roboustness problem with GEOS. I guess this happens due the BIG coordinate values that may cause problems when calculating with floating point numbers.
However the main problem with QGIS crashing is solved. Can we close this?
#5 Updated by Gavin Macaulay - about 18 years ago
- Status changed from Open to Closed
- Resolution set to fixed
Yes, we can close it. The original crash problem no longer happens.
Geos, when given the prokections listed above, considers them to be invalid, even be it's asked to do any transformations.
#6 Updated by Anonymous over 15 years ago
Milestone Version 0.8 deleted