On 08-04-2008 14:42:43 +0200, Romulo Goncalves wrote:
I did a mistake in my scripts to start my mserver and I set my dbname like this: /scratch5/romulo/var/dbfarm/
When I start my mserver I get this information: -bash-3.1$ ../server.sh optimized # MonetDB server v5.5.0, based on kernel v1.23.0 # Serving database '/scratch5/romulo/var/dbfarm' # Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked # Copyright (c) 1993-2008 CWI, all rights reserved
Until now no problem.
The problem comes when I connect a mclient: !SABAOTHgetMyStatus: MALException:sabaoth.assert:SABAOTHgetMyStatus couldn't find a database for /scratch5/romulo/var/dbfarm!
I decided to debug the code and there I decided to print the following variables: printf("%s , %s \n ", GDKgetenv("gdk_dbfarm"), GDKgetenv("gdk_dbname"));
Result: /scratch5/romulo/var/dbfarm , /scratch5/romulo/var/dbfarm
Until now no problem, so what is the reason for the crash? Well, I decide to check my dbfarm: /scratch5/romulo/var/dbfarm
There I found out that the directory with name "/scratch5/romulo/var/dbfarm" does not exist, but instead of that sub-directories were created: /scratch5/romulo/var/dbfarm/scratch5/romulo/var/dbfarm/
My question is: Is the location of the database correct just because in the dbname I defined the name like a path? Or should that name be interpreted as a single string?
Sabaoth and the like assume the dbname is a single directory, and this assumption is wrong in this case, hence it goes screaming. To make the assumption correct, I vote for the dbname to match the following regexp, and otherwise GDK to bail out: [A-Za-z0-9-_]