[mapserver-dev] A couple of problems I've found.

Stephen Woodbridge woodbri at swoodbridge.com
Sat Oct 18 12:42:02 PDT 2014


Agreed, nice analysis of the problem.
It would be appropriate to copy your analysis into a bug ticket. This 
help the issue not get list if everyone is busy, and typically the 
developers do review open tickets and a regular basis.

Thank you for researching and reporting this.

-Steve W

On 10/18/2014 3:10 PM, Rahkonen Jukka (Tike) wrote:
> Hi,
>
> Mapserver-users may be quiet but not dead. In your case you did not get
> an answer from there probably because most people which I classify to
> Mapserver users do not know what is mapdraw.c or mapkmlrenderer.cpp.
> Thank you still for posting to mapserver-users because now we users know
> that there can be some trouble with rendering to KML and if we
> experience something similar we can refer to your mail.
>
> For me it looks like you’ve done good work with debugging and I believe
> that it will help the developers  to resolve the issue.
>
> -Jukka Rahkonen-
>
> yeryry wrote
>
> Reposting this here as mapserver-users seems pretty dead...
>
> I think I've discovered two causes of crashes...
>
>
> First, one with the KML driver...
>
>
> msDrawQueryLayer creates and draws a temporary layer here:
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapdraw.c#L1209
> The KML renderer sets a reference to the temporary layer here:
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapkmlrenderer.cpp#L371
> <https://github.com/mapserver/mapserver/blob/3e8aa5a4d92c9bad105306ebe5117ed29d2b0e7c/mapkmlrenderer.cpp#L371>
> msDrawQueryLayer later calls msDrawShape here:
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapdraw.c#L1299
> <https://github.com/mapserver/mapserver/blob/3e8aa5a4d92c9bad105306ebe5117ed29d2b0e7c/mapdraw.c#L1295>
> which eventually results in a call to KmlRenderer::renderGlyphs
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapkmlrenderer.cpp#L693
> <https://github.com/mapserver/mapserver/blob/3e8aa5a4d92c9bad105306ebe5117ed29d2b0e7c/mapkmlrenderer.cpp#L693>
> which gets to KmlRenderer::createPlacemarkNode and reuses the reference
> that was set:
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapkmlrenderer.cpp#L585
> <https://github.com/mapserver/mapserver/blob/3e8aa5a4d92c9bad105306ebe5117ed29d2b0e7c/mapkmlrenderer.cpp#L585>
> even though that temporary layer was freed earlier, leading to the crash.
>
> And one with WMS:
>
> It crashes around here:
> https://github.com/mapserver/mapserver/blob/bdd421c7e69e2ff16841c12c08ba688b62a9f9a6/mapdraw.c#L106
> <https://github.com/mapserver/mapserver/blob/3e8aa5a4d92c9bad105306ebe5117ed29d2b0e7c/mapdraw.c#L106>
>
> Probably due to trying to set NULL->map... That error message should
> probably be moved before that line.
> In my case though, I was trying to serve KML over WMS, so "not having an
> image" shouldn't really be an error condition? And that
> non-square-pixels thing also shouldn't be relevant for vector layers;
> currently the dimensions of the requested WMS "image" have a big effect
> on KML output coordinates, which strikes me as broken, so perhaps that
> whole function should be avoided for vector output.
>
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>



More information about the mapserver-dev mailing list