#1146 closed defect (wontfix)

start_rasdaman.sh should check RASBASE directory exists first

Reported by: bphamhuu Owned by: atoader
Priority: minor Milestone: 9.2
Component: rasserver Version: development
Keywords: start_rasdaman, rasserver Cc: dmisev, gmerticariu, mdumitru, pbaumann
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 Changed 21 months ago by bphamhuu

  • Owner set to bphamhuu
  • Status changed from new to assigned

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

comment:2 Changed 21 months ago by dmisev

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

comment:3 Changed 21 months ago by dmisev

  • Owner changed from bphamhuu to atoader

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 Changed 21 months ago by atoader

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 Changed 21 months ago by bphamhuu

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

comment:6 Changed 21 months ago by atoader

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 Changed 21 months ago by atoader

  • Cc gmerticariu mdumitru pbaumann added

comment:8 Changed 21 months ago by dmisev

  • Priority changed from major to minor

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 Changed 21 months ago by atoader

  • Resolution set to wontfix
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.