[mapserver-users] Is Mapserver known to play nice with Proj 6.3 ?
Even Rouault
even.rouault at spatialys.com
Wed Feb 5 13:22:25 PST 2020
Hi,
> 1) For my deployment of FastCGI mapserver (master or 7.4.x build) and based
> on my monitoring, CPU usage is about double vs my previous setup of
> mapserver 7.3.x and Proj 5.2.0. My comment here is lame I know as I have
> yet to produce a test case showing that actual difference. All the other
> support libraries that went into the new build are updated too, so it is
> unfair to perhaps blame proj here :) I had lots of previous fun[1] with a
> newer proj and postgis when an old sqlite3 library is at play, but I'm
> using the most recent version of that here.
There's certainly a performance hit with PROJ >= 6. How much it is depends on
a lot of things. I'm not sure there are so many low hanging fruits remaining,
but precise reproducer to investigate could be useful. Normally in FastCGI,
the initial overhead should be amortized in following requests reusing the
same process.
However with branch 7.4 you will use PROJ.4 API of PROJ 6, so a x2 performance
hit is not expected in that situation. It should exhibit performance similar
to PROJ 5.
> 2) I could not get master branch to build with proj 6.3, I get the error:
>
> [ 0%] Building C object CMakeFiles/mapserver.dir/fontcache.c.o
> In file included from /home/akrherz/projects/mapserver/mapproject.h:46,
> from /home/akrherz/projects/mapserver/mapshape.h:35,
> from /home/akrherz/projects/mapserver/mapserver.h:126,
> from /home/akrherz/projects/mapserver/fontcache.c:30:
> /opt/miniconda3/envs/prod/include/proj_api.h:37:2: error: #error 'To use the
> proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
> #error 'To use the proj_api.h you must define the macro
> ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
That's not expected. Is there a /opt/miniconda3/envs/prod/include/proj.h file
as there should normally be one for PROJ >= 6 ?
> 3) I've been seeing lots of segfaulting and coredumps
You should make sure that all MapServer direct or indirect dependencies use
the same PROJ version.
(or you can use the -DPROJ_RENAME_SYMBOLS trick as in
https://github.com/mapserver/mapserver/blob/master/ci/travis/script.sh#L16
and
https://github.com/mapserver/mapserver/blob/master/ci/travis/script.sh#L30)
That said...
> 4) It appears like Travis CI testing is all against proj 6.1.1, maybe I
> should revert to that? :)
I've just tested with PROJ 6.3.0 and I indeed see number of crashes/wrong
results when running msautotest. Those disappear when using the HEAD of the
6.3 git branch.
I've raised the opportunity to issue a PROJ 6.3.1 release in
https://lists.osgeo.org/pipermail/proj/2020-February/009339.html
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the MapServer-users
mailing list