Hi,
As I read the source, I see lots of instances
where return values are not checked or not
handled; for example, strdup().
Most recently, this programming idiom triggered
a null pointer dereference, which caused mserver
to segfault (see tracker #2971516 [1]).
In my experience, when the logic encounters a
condition it can't recover from, exiting quickly with
as much information as possible is very useful.
Whe I read locate_file() method and see:
char *mod_path = GDKgetenv("monet_mod_path");
if (mod_path == NULL)
return NULL;
I wonder---how can you recover from this? I want to
submit a patch that says:
if (mod_path == NULL)
errx(1, "locate_file: GDBgetenv("monet_mod_path") is null");
But I'm not sure you guys will accept this. Would you?
It's a large change to error handling style.
What happens to me in #2971516 is simply the library file
name is not found. But instead of a useful error message
that tells me what directories where searched and what
the file name is, I get
ERR control[14875]: (local): failed to fork mserver:
database 'test' has inconsistent state (running
but dead), review merovingian's logfile for any
peculiarities
and an mserver5.core file.
Thanks,
m
[1]
https://sourceforge.net/tracker/index.php?func=detail&aid=2971516&group_id=56967&atid=482468
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers