Opened 9 years ago

Closed 9 years ago

#1146 closed defect (wontfix)

start_rasdaman.sh should check RASBASE directory exists first

Reported by: Bang Pham Huu Owned by: Alex Toader
Priority: minor Milestone: 9.2
Component: rasserver Version: development
Keywords: start_rasdaman, rasserver Cc: Dimitar Misev, George Merticariu, Alex Dumitru, Peter Baumann
Complexity: Medium

Description

When reinstall Rasdaman in /home/rasdaman/install, I forgot to create_db.sh to create RASBASE data. However, start_rasdaman.sh can start without any error.

In fact, only in log file of Rasdaman show error

Base DBMS file not found at '/home/rasdaman/install/data/RASBASE', please run create_db.sh first.

and Petascope show error in the log also

  WARN RasUtil@408: Failed retrieving rasdaman version
RasdamanUnavailable: Unable to get a free rasdaman server.

start_rasdaman.sh notice that

start_rasdaman.sh: starting all rasdaman servers...
    Started 9 servers on 1 hosts

and when terminate servers, I only see 2 server was killed

stop_rasdaman.sh: terminating all rasdaman servers
stop_rasdaman.sh: terminating server N1...    Server N1 was killed
done.
stop_rasdaman.sh: terminating server N3...    Server N3 was killed

So start_rasdaman.sh should check where is RASBASE does exist first.

Change History (9)

comment:1 by Bang Pham Huu, 9 years ago

Owner: set to Bang Pham Huu
Status: newassigned

This problem also happens on rasnet so I will add to start_rasdaman.sh a check error.

comment:2 by Dimitar Misev, 9 years ago

Ok before implementing anything write down your idea on how to fix it here first.

comment:3 by Dimitar Misev, 9 years ago

Owner: changed from Bang Pham Huu to Alex Toader

Actually there's no good way to do this in start_rasdaman.sh itself.

Ideally rasmgr would detect if rasservers fail to start and exit with an error as well.

Alex what do you think?

comment:4 by Alex Toader, 9 years ago

I will have to experiment a bit. Ideally, rasserver should return an error code when it fails to start because the DB is missing. If this happens, rasmgr can see the error code and abort with an error message.

comment:5 by Bang Pham Huu, 9 years ago

@Toader: its run perfectly without checking RASBASE in rasserver, so you can check also.

comment:6 by Alex Toader, 9 years ago

I have been looking into this issue. When a server process is created, it receives the connect string for the database host with which it is associated as a command line parameter.

On a single rasmgr instance, you can have multiple database hosts defined by the user. This means that rasmgr cannot check at startup if the database hosts exist. At this point they are not even defined.

If you define two DBHs, one that exists, and one that doesn't, and you have servers for each DBH, the ones serving the missing DBH will die upon creation while the ones serving the existing DBH will function correctly. This means that rasmgr cannot be killed if a server dies/or a set of servers die.

I think that we can probably solve this problem for users that use the default configuration which forget to run create_db.sh. A solution would be to have create_db.sh create a file when it is run (independent of the type of DB and connect string) and start_rasdaman.sh would check for the existence of that file. I do not like this solution and I am open to suggestions.

comment:7 by Alex Toader, 9 years ago

Cc: George Merticariu Alex Dumitru Peter Baumann added

comment:8 by Dimitar Misev, 9 years ago

Priority: majorminor

I think it's not worth investing much time on this.
Users should follow the installation guide, and a simple look at the server log will reveal the issue.
I suggest we just close the ticket as wontfix.

comment:9 by Alex Toader, 9 years ago

Resolution: wontfix
Status: assignedclosed
Note: See TracTickets for help on using tickets.