Can not init scidb


#1

Hi all,

I am running a scidb-11.06 on debian system.

After running the scidb-prepare and try “scidb init” command it still can’t find the catalog. It says:
What(): Storage is not defined in system catalog.

I check this link viewtopic.php?f=11&t=189, but I can not find scidb-0.7.5 in my version. So can not init scidb…

Thanks for help!

Best,
Xiaowei


#2

Hi Xiaowei,

The instructions for initializing and starting SciDB in Release 11.06 are here:
trac.scidb.org/wiki/Docs/Release … tall_11.06

Please post your config.ini (/opt/scidb/11.06/etc/config.ini and also attach any log files from the base-path directory).

You should make sure that the base-path specified in the config.ini exists and is writeable by the SciDB user.

Hope this helps!
Suchi


#3

I’m stuck at this step as well.
Steps completed so far:
-virtual box running with 64bit ubuntu 10.10 server image, with postgres
-installed scidb-Release-11.06.0.2877-Ubuntu-10.10-amd64.deb
-made environment variable changes
-created config.ini

[test1]
node-0=localhost,0
db_user=singleinstance
db_passwd=singleinstance
install_root=/opt/scidb/11.06
metadata=/opt/scidb/11.06/share/scidb/meta.sql
pluginsdir=/opt/scidb/11.06/lib/scidb/plugins
logconf=/opt/scidb/11.06/share/scidb/log4cxx.properties
base-path=/home/scidb/DB-SingleInstance
base-port=1239
interface=eth0

-trying to run :
@scidb64:/opt/scidb/11.06/bin$ sudo ./scidb-prepare-db.sh
No metadata initialization file found.
Please run from /opt/scidb/11.06/bin.

-trying to run :
@scidb64:/opt/scidb/11.06/bin$ python scidb.py initall test1
Cleaning up old logs and storage files.
init(node 0 (localhost) instance 0)
Reinitializing and registering local scidb instance/storage.

sudo privileges are required to configure the postgres database.
mkdir: cannot create directory `/home/scidb’: Permission denied
Traceback (most recent call last):
File “scidb.py”, line 397, in
initAll()
File “scidb.py”, line 243, in initAll
init(n,0)
File “scidb.py”, line 260, in init
createDirsAndLinks(node, instance)
File “scidb.py”, line 230, in createDirsAndLinks
executeIt(cmdList, node, instance, useConnstr=False)
File “scidb.py”, line 147, in executeIt
p = subprocess.Popen(cmdList, cwd=currentDir, stderr=serr, stdout=sout, shell=useShell)
File “/usr/lib/python2.6/subprocess.py”, line 623, in init
errread, errwrite)
File “/usr/lib/python2.6/subprocess.py”, line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory: ‘/home/scidb/DB-SingleInstance/000/0’

BOTTOM LINE : installation instructions are not entirely clear for me from the points on mentioned above?
I’ve tried a couple of different variantions, but nothing seems to work or give any clues about what I might be misunderstanding here. Your help is very much appreciated! Can’t wait to give this one a test.


#4

schalekamp, I have a similar situation. I think it’s important to run scidb-prepare-db.sh as user postgres. Doing that allowed me to get past that step with no apparent error.

My configuration is a little different because I am trying to run SciDB on an EC2 cluster, but my error from the initall step is similar to yours. Here is my config:

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/etc$ cat config.ini
[scidb]
node-0=10.114.51.125,1
node-1=10.196.189.141,1
node-2=10.98.58.228,1
node-3=10.114.66.58,1
install_root=/nfs/software/scidb/11.06
metadata=/nfs/software/scidb/11.06/share/scidb/meta.sql
pluginsdir=/nfs/software/scidb/11.06/lib/scidb/plugins
logconf=/nfs/software/scidb/11.06/share/scidb/log1.properties
base-path=/ephemeral/0/scratch/scidb_data
base-port=1239
interface=eth0

scidb@ec2-50-16-20-226:~$ scidb.py initall scidb /nfs/software/scidb/11.06/etc/config.ini
Cleaning up old logs and storage files.
init(node 0 (10.114.51.125) instance 0)
Reinitializing and registering local scidb instance/storage.

sudo privileges are required to configure the postgres database.
Traceback (most recent call last):
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 397, in
initAll()
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 243, in initAll
init(n,0)
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 267, in init
stdoutFile=“init-stdout.log”, stderrFile=“init-stderr.log”)
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 147, in executeIt
p = subprocess.Popen(cmdList, cwd=currentDir, stderr=serr, stdout=sout, shell=useShell)
File “/usr/lib/python2.7/subprocess.py”, line 672, in init
errread, errwrite)
File “/usr/lib/python2.7/subprocess.py”, line 1213, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings

I have no clue what this is trying to tell me. User scidb does have sudo privileges:

scidb@ec2-50-16-20-226:~$ sudo ls -l /etc/sudoers
-r–r----- 1 root root 739 2011-12-28 22:19 /etc/sudoers

Postgres is running on the same node:

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/etc$ psql scidb
psql (8.4.9)
Type “help” for help.

scidb=> \dt
List of relations
Schema | Name | Type | Owner
--------±-------------------±------±------
public | array | table | scidb
public | array_attribute | table | scidb
public | array_dimension | table | scidb
public | array_partition | table | scidb
public | array_version | table | scidb
public | array_version_lock | table | scidb
public | cluster | table | scidb
public | libraries | table | scidb
public | node | table | scidb
(9 rows)

scidb=>

scidb.py must be able to write to the base-path because:

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/etc$ ls -l /ephemeral/0/scratch/scidb_data/000/0/init-std*
-rw-r–r-- 1 scidb users 0 2011-12-28 22:26 /ephemeral/0/scratch/scidb_data/000/0/init-stderr.log
-rw-r–r-- 1 scidb users 0 2011-12-28 22:26 /ephemeral/0/scratch/scidb_data/000/0/init-stdout.log

but those logs are zero-length.

Any ideas?


#5

I tried granting superuser to PG role scidb but no effect.


#6

Running as root doesn’t help either; same error:

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/etc$ sudo su -
root@ec2-50-16-20-226:~# which scidb.py
/nfs/software/scidb/11.06/bin/scidb.py
root@ec2-50-16-20-226:~# scidb.py initall scidb /nfs/software/scidb/11.06/etc/config.ini
Cleaning up old logs and storage files.
init(node 0 (10.114.51.125) instance 0)
Reinitializing and registering local scidb instance/storage.

sudo privileges are required to configure the postgres database.
Traceback (most recent call last):
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 397, in
initAll()
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 243, in initAll
init(n,0)
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 267, in init
stdoutFile=“init-stdout.log”, stderrFile=“init-stderr.log”)
File “/nfs/software/scidb/11.06/bin/scidb.py”, line 147, in executeIt
p = subprocess.Popen(cmdList, cwd=currentDir, stderr=serr, stdout=sout, shell=useShell)
File “/usr/lib/python2.7/subprocess.py”, line 672, in init
errread, errwrite)
File “/usr/lib/python2.7/subprocess.py”, line 1213, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings


#7

It turns out that the error was caused by missing parameters in config.ini, namely db_user and db_passwd. My colleague exposed this by adding some console output to scidb.py to aid in interpreting the error messages. This realization helped us advance a bit further as follows:

Cleaning up old logs and storage files.
init(node 0 (10.114.51.125) instance 0)
Reinitializing and registering local scidb instance/storage.

sudo privileges are required to configure the postgres database.
cmdList:  ['mkdir', '-p', '/ephemeral/0/scratch/scidb_data/000/0']
cmdList:  ['rm', '-f', '/ephemeral/0/scratch/scidb_data/000/0/SciDB-000-0-1239']
cmdList:  ['ln', '-fs', '/nfs/software/scidb/11.06/bin/scidb', 'SciDB-000-0-1239']
cmdList:  ['sudo', '-u', 'postgres', '/nfs/software/scidb/11.06/bin/init-db.sh', 'scidb', 'scidb', 'scidb', '/nfs/software/scidb/11.06/share/scidb/meta.sql']
cmdList:  ['/nfs/software/scidb/11.06/bin/scidb', '-p', '1239', '-r', '-i', '10.114.51.125', '-s', '/ephemeral/0/scratch/scidb_data/000/0/storage.cfg', '-l', '/nfs/software/scidb/11.06/share/scidb/log1.properties', '--initialize', '--metadata', '/nfs/software/scidb/11.06/share/scidb/meta.sql', '-c', 'host=10.114.51.125 port=5432 dbname=scidb user=scidb password=scidb']
log4cxx: Could not read configuration file [/nfs/software/scidb/11.06/share/scidb/log1.properties].
log4cxx: No appender could be found for logger (scidb.entry).
log4cxx: Please initialize the log4cxx system properly.
NOTICE:  drop cascades to 6 other objects
DETAIL:  drop cascades to constraint array_version_array_id_fkey on table array_version
drop cascades to constraint array_version_version_array_id_fkey on table array_version
drop cascades to constraint array_version_lock_array_id_fkey on table array_version_lock
drop cascades to constraint array_partition_array_id_fkey on table array_partition
drop cascades to constraint array_attribute_array_id_fkey on table array_attribute
drop cascades to constraint array_dimension_array_id_fkey on table array_dimension
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_pkey" for table "array"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "array_name_key" for table "array"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_version_pkey" for table "array_version"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "array_version_array_id_key" for table "array_version"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_version_lock_pkey" for table "array_version_lock"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "node_pkey" for table "node"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_partition_pkey" for table "array_partition"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_attribute_pkey" for table "array_attribute"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "array_attribute_array_id_key" for table "array_attribute"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "array_dimension_pkey" for table "array_dimension"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "array_dimension_array_id_key" for table "array_dimension"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "libraries_pkey" for table "libraries"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "libraries_name_key" for table "libraries"
WARNING:  there is no transaction in progress
Cleaning up old logs and storage files.
register(node 0 (10.114.51.125) instance 1)
cmdList:  ['mkdir', '-p', '/ephemeral/0/scratch/scidb_data/000/1']
cmdList:  ['rm', '-f', '/ephemeral/0/scratch/scidb_data/000/1/SciDB-000-1-1240']
cmdList:  ['ln', '-fs', '/nfs/software/scidb/11.06/bin/scidb', 'SciDB-000-1-1240']
cmdList:  ['/nfs/software/scidb/11.06/bin/scidb', '--register', '-s', '/ephemeral/0/scratch/scidb_data/000/1/storage.cfg', '-l', '/nfs/software/scidb/11.06/share/scidb/log1.properties', '-i', '10.114.51.125', '-c', 'host=10.114.51.125 port=5432 dbname=scidb user=scidb password=scidb']
log4cxx: Could not read configuration file [/nfs/software/scidb/11.06/share/scidb/log1.properties].
log4cxx: No appender could be found for logger (scidb.entry).
log4cxx: Please initialize the log4cxx system properly.
Cleaning up old logs and storage files.
register(node 1 (10.196.189.141) instance 1)
Cleaning up old logs and storage files.
register(node 2 (10.98.58.228) instance 1)
Cleaning up old logs and storage files.
register(node 3 (10.114.66.58) instance 1)

Now to start the cluster:

scidb@ec2-50-16-20-226:~$ scidb.py startall scidb /nfs/software/scidb/11.06/etc/config.ini
start(node 0 (10.114.51.125) instance 0)
cmdList:  ['mkdir', '-p', '/ephemeral/0/scratch/scidb_data/000/0']
cmdList:  ['rm', '-f', '/ephemeral/0/scratch/scidb_data/000/0/SciDB-000-0-1239']
cmdList:  ['ln', '-fs', '/nfs/software/scidb/11.06/bin/scidb', 'SciDB-000-0-1239']
Starting SciDB server.
cmdList:  ['/ephemeral/0/scratch/scidb_data/000/0/SciDB-000-0-1239', '-i', '10.114.51.125', '-p', '1239', '', '--merge-sort-buffer', '512', '--cache', '256', '--chunk-cluster-size', '1048576', '-k', '-l', '/nfs/software/scidb/11.06/share/scidb/log1.properties', '--plugins', '/nfs/software/scidb/11.06/lib/scidb/plugins', '', '', '-s', '/ephemeral/0/scratch/scidb_data/000/0/storage.cfg', '-c', 'host=10.114.51.125 port=5432 dbname=scidb user=scidb password=scidb']
start(node 0 (10.114.51.125) instance 1)
cmdList:  ['mkdir', '-p', '/ephemeral/0/scratch/scidb_data/000/1']
cmdList:  ['rm', '-f', '/ephemeral/0/scratch/scidb_data/000/1/SciDB-000-1-1240']
cmdList:  ['ln', '-fs', '/nfs/software/scidb/11.06/bin/scidb', 'SciDB-000-1-1240']
Starting SciDB server.
cmdList:  ['/ephemeral/0/scratch/scidb_data/000/1/SciDB-000-1-1240', '-i', '10.114.51.125', '-p', '1240', '', '--merge-sort-buffer', '512', '--cache', '256', '--chunk-cluster-size', '1048576', '-k', '-l', '/nfs/software/scidb/11.06/share/scidb/log1.properties', '--plugins', '/nfs/software/scidb/11.06/lib/scidb/plugins', '', '', '-s', '/ephemeral/0/scratch/scidb_data/000/1/storage.cfg', '-c', 'host=10.114.51.125 port=5432 dbname=scidb user=scidb password=scidb']
start(node 1 (10.196.189.141) instance 1)
Starting SciDB server.
start(node 2 (10.98.58.228) instance 1)
Starting SciDB server.
start(node 3 (10.114.66.58) instance 1)
Starting SciDB server.

So far, so good, apparently. Now check status:

scidb@ec2-50-16-20-226:~$ scidb.py status scidb /nfs/software/scidb/11.06/etc/config.ini
cmdList:  ['export PGPASSWORD=scidb;psql -h localhost --username scidb --dbname scidb -c "select node_id,host,port,online from node"']
 node_id |     host      | port | online 
---------+---------------+------+--------
       0 | 10.114.51.125 | 1239 | t
       1 | 10.114.51.125 | 1240 | t
(2 rows)

This is the IP of the master node, which suggests to me that there is some problem with inter-node communication/authentication, but:

scidb@ec2-50-16-20-226:~$ ssh 10.196.189.141
The authenticity of host '10.196.189.141 (10.196.189.141)' can't be established.
RSA key fingerprint is a9:0d:3b:e9:38:02:d4:32:39:23:77:a3:12:c5:83:87.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.196.189.141' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-virtual i686)
. . .
scidb@ec2-184-73-55-75:~$ 

Public key authentication between the nodes appears to be working.

Maybe the log4cxx errors are not so benign?

Does anyone recognize what is going on here?

Here is my config.ini:

[scidb]
node-0=10.114.51.125,1
node-1=10.196.189.141,1
node-2=10.98.58.228,1
node-3=10.114.66.58,1
install_root=/nfs/software/scidb/11.06
metadata=/nfs/software/scidb/11.06/share/scidb/meta.sql
pluginsdir=/nfs/software/scidb/11.06/lib/scidb/plugins
logconf=/nfs/software/scidb/11.06/share/scidb/log1.properties
base-path=/ephemeral/0/scratch/scidb_data
base-port=1239
interface=eth0
db_user=scidb
db_passwd=scidb

#8

Three things I have done since last post:

  1. installed packages on nodes that were called for in order to compile except for *-dev in case there were implicit dependencies

  2. cleared log4cxx errors by symlinking log1.properties to log4cxx.properties

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/share/scidb$ ln -s log4cxx.properties log1.properties
  1. created /ephmeral/0/scratch and chmod go+w on it. the initialization was unable to create children of it recursively and failed silently.

scidb@ec2-50-16-20-226:/nfs/software/scidb/11.06/etc$ scidb.py status scidb config.ini node_id | host | port | online ---------+----------------+------+-------- 0 | 10.114.51.125 | 1239 | t 1 | 10.114.51.125 | 1240 | t 2 | 10.196.189.141 | 1240 | t 3 | 10.98.58.228 | 1240 | t 4 | 10.114.66.58 | 1240 | t (5 rows)

So I seem to be getting somewhere. Now to load some data and exercise it a bit. I can’t tell if steps 1) and 2) were critical to solving this problem, but I can’t imagine they would hurt anything, so I will proceed from here.