[mapserver-users] Is Mapserver known to play nice with Proj 6.3 ?

Herzmann, Daryl E [AGRON] akrherz at iastate.edu
Wed Feb 5 13:45:00 PST 2020


Hi Even,

You are the best!  Thank you for the response.  My email client does not like inline quoting, sigh.  With regards to:

1) Performance hit.

Yeah, I haven't got a test case yet.  Too many moving parts on my end currently :(

2) building with proj 6.3.0

Did you try building the master branch?  That's what fails for me without adding that macro.  branch-7-4 works without code modifications. 

3) segfaults

I will look into your suggestion, but initially I found some core files with this backtrace:

#0  0x00007f9b4abc38df in raise () from /lib64/libc.so.6
#1  0x00007f9b4abadcf5 in abort () from /lib64/libc.so.6
#2  0x00007f9b4ac06c17 in __libc_message () from /lib64/libc.so.6
#3  0x00007f9b4ac0d53c in malloc_printerr () from /lib64/libc.so.6
#4  0x00007f9b4ac0ef2c in _int_free () from /lib64/libc.so.6
#5  0x00007f9b4d30ddcb in msGEOSCleanup () from /opt/miniconda3/envs/prod/lib/libmapserver.so.2
#6  0x00007f9b4d3f3a66 in msCleanup () from /opt/miniconda3/envs/prod/lib/libmapserver.so.2
#7  0x000000000040116a in ?? ()
#8  0x00007f9b4d861560 in ?? ()
#9  0x0000000f0000026f in ?? ()
#10 0x00007f9b44b18290 in feholdexcept at got.plt () from /opt/miniconda3/envs/prod/lib/./././libquadmath.so.0
#11 <signal handler called>
#12 0x00007f9b4abc6520 in __cxa_finalize () from /lib64/libc.so.6
#13 0x00007f9b44ae2740 in __do_global_dtors_aux () from /opt/miniconda3/envs/prod/lib/./././libquadmath.so.0
#14 0x00007f9b4da22000 in ?? () from /lib64/ld-linux-x86-64.so.2
#15 0x0000000000000000 in ?? ()

I am still efforting getting a full debug environment setup :(

4) new proj 6.3.1 release

Thank you for prioritizing that!  I will certainly give it a spin and report back my findings.

daryl





--
/**
 * daryl herzmann
 * Systems Analyst III -- Iowa Environmental Mesonet
 * https://mesonet.agron.iastate.edu
 */


________________________________________
From: Even Rouault <even.rouault at spatialys.com>
Sent: Wednesday, February 5, 2020 3:22 PM
To: mapserver-users at lists.osgeo.org
Cc: Herzmann, Daryl E [AGRON]
Subject: Re: [mapserver-users] Is Mapserver known to play nice with Proj 6.3 ?

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