Opened 20 years ago

Last modified 19 years ago

#832 new defect

msInsertHashTable error on WMS client layers

Reported by: bartvde@… Owned by: mapserverbugs
Priority: high Milestone:
Component: WMS Server Version: 4.2
Severity: normal Keywords:
Cc:

Description

-- original e-mail -- :
Hello list,
 
I usually use the MS_ERRORFILE environment variable to have Mapserver
output errors to the Apache error log.
 
Using Mapserver 4.2 most of the error messages seem to be like (in the
past months):
 
msBuildPath: Unable to access file.
msInsertHashTable: Hash table error. Invalid hash table or key
 
So the log becomes very large while these errors don't seem to be fatal
though.
 
Did anybody experience the same? What are they caused by normally? Should
they be reported in error mode or only in debug mode?
 
-- answer Frank Warmerdam --:

Bart,
 
Did you get feedback on this?  These certainly don't seem like they ought
to be going to the error file, though they might indicate something specific
about your configuration that is worth investigating.  For instance the
msInsertHashTable() message would seem to indicate that an invalid
msInsertHashTable call is being made.
 
The msBuildPath() report is likely due to a perfectly valid situation
and we should likely consider switching it to at most a debug message and
possibly not even that.
 
You are likely to need to provide a simple map that demonstrates some of
these problems in situations you feel is inappropriate and submit it as a
bug report.

Attachments (1)

bug832.tgz (493.9 KB ) - added by bartvde@… 20 years ago.
contains WMS server gemeentes and chameleon app geoservices05

Download all attachments as: .zip

Change History (5)

comment:1 by bartvde@…, 20 years ago

I have tried to analyze this a little bit more.

If a do a normal WMS GetMap request, I always get the msBuildPath error. I will
submit my MAP file plus data as an attachment.

If I go through a simple Chameleon application, I get both the msBuildPath error
and the hashtable error, the hashtable error is the first one.

Every error appears with every zoomin, pan etc.

I will also submit my Chameleon MS4W application called Geoservices05. Can the
error logs come from Mapserv CGI only and not from PHP/Mapscript?

by bartvde@…, 20 years ago

Attachment: bug832.tgz added

contains WMS server gemeentes and chameleon app geoservices05

comment:2 by bartvde@…, 19 years ago

Okay, I have done a bit more analyzing of the msInsertHashTable error message.

I added a little debugging and got at least the key which is getting inserted
with a null value:

msInsertHashTable: Hash table error. Invalid hash table or key (layer_group)
((null))

If I add a GROUP to my LAYER definition though, I get:

msFreeHashItems(): Hash table error. Can't free NULL table

Any ideas on what might be causing this behaviour?

comment:3 by bartvde@…, 19 years ago

Cc: steve.lime@… added
Also added Steve to the cc as he might know this.

In maptemplate.c there is quite some inconsistency in the way msFreeHashTable is
called.

Sometimes there is a check on if the hashtable is not NULL, sometimes there
isn't. Also, sometimes the hashtable is set explicitly to NULL in maptemplate.c,
but this is already done by the msFreeHashTable function.

One of the following calls causes the msFreeHashItems error which I get when
defining a GROUP on my LAYER: 

   if (groupArgs)
   {
     msFreeHashTable(groupArgs);
   }
   if (layerArgs)
   {
     msFreeHashTable(layerArgs);
   }
   if (classArgs)
   {
     msFreeHashTable(classArgs);
   }

So if I give my WMS client layer a GROUP value now (quite useless ofcourse), and
change the code above, I have no error messages anymore in my error file.

But ofcourse this does not seem ideal. Why are the following calls always made
on an optional LAYER parameter such as GROUP? Why is there no check on NULL
values before inserting it into the hashtable?

msInsertHashTable(myHashTable, "layer_group", map->layers[nIdxLayer].group);

comment:4 by bartvde@…, 19 years ago

Summary: too much error loggingmsInsertHashTable error on WMS client layers
Changed the summary to something more appropriate.
Note: See TracTickets for help on using tickets.