[mapserver-users] Need help tracking down mapserv seg fault

Umberto Nicoletti umberto.nicoletti at gmail.com
Tue Aug 17 03:20:02 EDT 2010


It could be a problem with selinux/apparmor, try to disable it.
Best regards,
Umberto

On Fri, Aug 13, 2010 at 3:49 PM, Johan Forsman <Johan.Forsman at la.gov> wrote:
> Hello All:
>
> Please pardon the very lengthy post. I have attempted to collect as much data as I could think of.
>
> Summary:
> FGS95 with MapServer 5.4.1 on Ubuntu Server, using OGR JOIN results in mapserv seg fault when run from browser, works fine from shp2img.
>
> Detailed:
> I have an FGs95 install on Ubuntu Server 9.10, using MapServer 5.4.1 on the back with a mixed shapefile/PostGIS datastore, GeoMoose 2.2 front-end. Everything is working very nicely except for my current problem.
>
> I have a need to color polygons stored in a shapefile, CLASSified based on attributes in an external csv-file. Guidance found in the ether indicates that the only way to do this with MapServer is to use an OGR connection between the shapefile and the csv-file.
> Using tips found here and there I have been able to construct a SELECT statement in the DATA directive that allows shp2img to create a PNG that looks just like I hoped it would (see attached), but I must confess that I don't fully understand how as the SELECT statement does not look like what I am used to seeing in some proprietary products. I am clearly in need of an OGR education (with lots of example code).
>
> The LAYER section in the mapfile is
>
> LAYER # Parish Boundary Polygon Outline Layer
>  NAME 'parishes_on_boiladv'
>  CONNECTIONTYPE OGR
>  CONNECTION "webmaps_parishes.shp"
>  DATA "SELECT * FROM webmaps_parishes LEFT JOIN 'bwa.csv'.bwa ON webmaps_parishes.FIPS = bwa.FIPS"
>  STATUS default
>  TYPE polygon
>  CLASSITEM "PercentageOut"
>  CLASS
>    EXPRESSION ([PercentageOut] > 0 AND [PercentageOut] <= 10)
>    NAME "0 - 10%"
>    STYLE
>      COLOR 56 168 0
>    END
>  END #class
> (continues with several more classes).
>
> The shapefile and csv-file are stored in the same directory. Both have a field "FIPS" which is the field I wish to join on. The "PercentageOut" field is in the csv-file. The DATA statement appears to work, but I looks really odd to me.
>
> Is there a way to get a table output from the OGR JOIN to study?
>
> I have set DEBUG 5 at the MAP level and the LAYER level to troubleshoot, but the process segfaults before any error is written to the ms_error file. The Apache and system logs contain only this when testing from localhost:
>
> /opt/fgs/www/logs/error_log:
> [Thu Aug 12 14:53:02 2010] [error] [client 127.0.1.1] Premature end of script headers: mapserv
>
> /var/log/messages:
> Aug 12 14:53:02 geoview kernel: [12879514.857356] mapserv[24114]: segfault at 0 ip 0945e714 sp bf9058dc error 6
>
> I saw another post with similar issues suggesting it's a library issue, discussing the LD_LIBRARY_PATH environment variable not being set properly for the Apache user. As far as I can tell this variable points to the right place in /opt/fgs/, but to be certain I added a SetEnv/PassEnv statement in the fgs-version of httpd.conf without any change in behavior.
>
> In both /opt/fgs/etc/conf/httpd.conf and the local user environment I have
> LD_LIBRARY_PATH set to /opt/fgs/lib:/opt/fgs/www/lib.
>
> Is there a way to see the environment for the Apache user? I don't know how important this is. As mentioned everything else has been and is working very well.
>
> Could there be some other conflicting system library picked up?
>
> The URL I test with is
> /cgi-bin/mapserv?map=/opt/fgs/apps/geomoose2/maps/sdwp/boil_adv/webmaps_boil_advisories.map&mode=map
> and I have confirmed all works fine when pointing the URL to other mapfiles.
>
> I set the file and directory permissions to full access to all users temporarily to test and there is no difference in behavior.
>
> When I run shp2img on the same mapfile the correct image is returned and there are no errors indicated in the ms_error file. The only oddity I see is in the path used by OGROpen:
>  msLoadMap(): 0.033s
>  msOGRFileOpen(webmaps_parishes.shp)...
>  OGROPen(/opt/fgs/apps/geomoose2/maps/sdwp/boil_adv/./webmaps_parishes.shp)
>  msConnPoolRegister(parishes_on_boiladv,webmaps_parishes.shp,0x9fdeb68)
>  msOGRFileWhichShapes: Setting spatial filter to -10515009.640986 3370567.000000 -9840476.359014 3918467.000000
>  msOGRFileNextShape: Returning shape=0, tile=0
> *** 62 shapes snipped here, there are 64 total polygons ***
>  msOGRFileNextShape: Returning shape=63, tile=0
>  msOGRFileNextShape: Returning MS_DONE (no more shapes)
>  msOGRLayerClose(webmaps_parishes.shp).
>  msOGRFileClose(/opt/fgs/apps/geomoose2/maps/sdwp/boil_adv/./webmaps_parishes.shp,-1).
>  msConnPoolRelease(parishes_on_boiladv,webmaps_parishes.shp,0x9fdeb68)
>  msConnPoolClose(webmaps_parishes.shp,0x9fdeb68)
>  msDrawMap(): Layer 0 (parishes_on_boiladv), 0.118s
>  msDrawMap(): Drawing Label Cache, 0.000s
>  msDrawMap() total time: 0.126s
>  msSaveImage() total time: 0.311s
>  msFreeMap(): freeing map at 0x9d36ac8.
>  freeLayer(): freeing layer at 0x9d3d7d8.
>  shp2img total time: 0.472s
>
> What else can I test?
>
> If you made it this far, thanks for taking the time to read!
>
> I am very grateful for any and all advice.
> ----------------------
> Johan Forsman
> Geologist
> Safe Drinking Water Program
> Louisiana Department of Health and Hospitals
> Office of Public Health
> Telephone: 225.342.7309
> Telefax: 225.342.7303
>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>


More information about the mapserver-users mailing list