[mapguide-users] MapGuide (actually FDO) 64-bit Linux blockers

Jackie Ng jumpinjackie at gmail.com
Thu Feb 15 06:33:28 PST 2018


Hi All,

In my MapGuide roadmap announcement I expressed my desire to hopefully see
the "preview" label for MapGuide on 64-bit Linux removed for the next major
release (3.3). 

The "preview" label has stuck for the longest time due to some major
blockers in certain FDO providers. In the hopes of being able to pool in
community effort and/or knowledge to solving this problem faster, I'm going
to detail the blockers that currently lie in the following providers:

 - SHP Provider
 - PostgreSQL Provider
 - King Oracle 

This is going to be super technical. Be warned.

For the SHP Provider, the blocker is in the SHP spatial indexing code. It
makes heavy use of the C++ "long" and "unsigned long" data types which is
not portable across platform. sizeof(long) == 8 for 64-bit Linux, while
sizeof(long) == 4 for every other platform we target. The incorrect size
assumptions result in corrupted spatial queries which manifest as features
from a SHP source "randomly" disappearing when queried. Another unrelated
problem is that the SHP test suite currently has test failures on both
Windows and Linux meaning we don't have an objective baseline for "it
works". We should get the test suite back into a passing state first before
being able to tackle this problem with confidence.

For the PostgreSQL provider, the blocker is also due to use of "long" and
"unsigned long" in the PostGISDriver code. I've partially fixed this
(https://trac.osgeo.org/fdo/changeset/7621), so that the unit test suite at
least runs to completion with test failures on 64-bit, instead of its
previous behavior of segfaulting out due to incorrect size assumptions in
the PostGISDriver. Now that the unit test suite runs, the majority of the
failures are various overflow errors reported by libpq which once again I
suspect is due to incorrect data type size assumptions. The "blocker" status
can be removed from this provider when the unit test suite is all passing.

For the King Oracle provider, I think it is (and has been) a complete
non-starter on Linux. The provider code has built without errors against the
Linux Oracle Instant Client SDK for the longest time, but admittedly I never
actually tested this provider on Linux, so it's been a "use at your own
risk" type deal for this provider (even on 32-bit linux). Has this provider
ever worked for anyone on Linux? The key blocker I'm seeing here is mainly
this *8 year old* issue (https://trac.osgeo.org/fdo/ticket/562). I'm not
well versed with this particular provider (nor the OCI library), so my
ability to tackle this problem head-on is limited unlike the other FDO
providers. The lack of an easy to setup and run unit test suite on this
provider also hampers development somewhat.

So that is what I think are the blockers that prevent me from considering
MapGuide on 64-bit Linux to be production-ready.

Which is a shame, because a production-ready MapGuide on 64-bit Linux is a
gateway to better docker containers (nobody does and should run 32-bit
applications inside a docker container!), and the reason why the docker
angle is of major interest to me is that we can start to explore some
highly-scalable and load-balanced architectures that are possible with a
reliable MapGuide docker container. But if half the FDO providers don't work
properly, well ... there's isn't really much of a point.

So there's my thoughts on the state of 64-bit Linux support for MapGuide.
Thoughts? Insights? Do you even care about MapGuide working on 64-bit Linux?
Sound off right here on this thread.

- Jackie



--
Sent from: http://osgeo-org.1560.x6.nabble.com/MapGuide-Users-f4182607.html


More information about the mapguide-users mailing list