[Wien] Exit code "0" for LAPW1 with an error

Rubel, Oleg rubelo at mcmaster.ca
Wed Sep 9 01:05:11 CEST 2020


Thank you for the suggestions! Below is the end solution in python. The pattern search is "*lapw1*.error" or "*lapwso*.error", etc. I hope it will work with different spins or/and parallel error files. Also "*lapw1*.error" files get cleaned up before executing LAPW1. This prevents any leftovers from previous runs. Do you see any potentials problems with this implementation?

Thank you
Oleg

testerror('lapw1')

def testerror(corename):
    pattern = '*'+corename+'*.error'
    for errfilename in glob.glob(pattern):
        errfilesize = os.path.getsize(errfilename)
        if errfilesize != 0:
            print("ERROR detected in", corename)
            print("Please check the error file:",errfilename)
            sys.exit(1)

________________________________________
From: Wien <wien-bounces at zeus.theochem.tuwien.ac.at> on behalf of Peter Blaha <pblaha at theochem.tuwien.ac.at>
Sent: Tuesday, September 8, 2020 16:01
To: wien at zeus.theochem.tuwien.ac.at
Subject: Re: [Wien] Exit code "0" for LAPW1 with an error

Exactly.
In run_lapw we define an alias (tcsh syntax, in bash it is slightly
different) like:

alias   testerror       'if (! -z \!:1.error) goto error'

and with
x lapw1
testerror lapw1

you can catch a problem.
Instead of "goto error" you could also do something else.

PS: Most of our shell scripts exit with an error code when a real error
came up. This can be catched with     echo $status


Am 08.09.2020 um 20:38 schrieb Yundi Quan:
> The simplest way that I can think of is to check whether the lawp1.error
> file is empty or not after executing x lapw1. If it is empty after
> executing 'x lapw1', then lapw1 terminates without any errors. If it is
> not, then lapw1 terminates with error(s).
>
> On Tue, Sep 8, 2020 at 2:23 PM Rubel, Oleg <rubelo at mcmaster.ca
> <mailto:rubelo at mcmaster.ca>> wrote:
>
>     Dear WIEN2k community,
>
>     suppose we have a code that includes a sequence of commands. Before
>     running the next command, I would like to check if the previous one
>     completed successfully. It is convenient to use exit codes for that
>     purpose. Here is a small example in bash (looking for a file that
>     does not exist):
>
>     [rubel at gra-login3 lambda1]$ ls oleg
>     ls: cannot access 'oleg': No such file or directory
>     [rubel at gra-login3 lambda1]$ echo $?
>     2
>
>     Here "echo $?" returns the exit code of a previous command. If it is
>     not "0", there is a problem (like in this case, there is no "oleg"
>     file).
>
>     Now I try to apply the same strategy to WIEN2k:
>
>     [rubel at gra-login3 lambda1]$ x lapw1
>     LAPW1 - Error
>     0.001u 0.018s 0:00.06 16.6%     0+0k 23592+16io 67pf+0w
>     [rubel at gra-login3 lambda1]$ echo $?
>     0
>
>     This is an unexpected result. The exist status is OK in spite of the
>     fact that LAPW1 exited with an error. Of course, there are error
>     files created for each program + spin up/dn (even process for
>     parallel calculations). But it can be quite elaborate to search
>     through them, and it depends on whether you run lapw1 or lapw2, etc.
>
>     I wonder if there is a _simple_ alternative way for sensing an
>     error? Also message is not always "XXXXX - Error". It can be
>     different (e.g., segmentation fault).
>
>     Thank you in advance
>     Oleg
>
>     --
>     Oleg Rubel (PhD, PEng)
>     Department of Materials Science and Engineering
>     McMaster University
>     JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
>     Email: rubelo at mcmaster.ca <mailto:rubelo at mcmaster.ca>
>     Tel: +1-905-525-9140, ext. 24094
>     Web: http://olegrubel.mcmaster
>
>
>     _______________________________________________
>     Wien mailing list
>     Wien at zeus.theochem.tuwien.ac.at <mailto:Wien at zeus.theochem.tuwien.ac.at>
>     http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
>     SEARCH the MAILING-LIST at:
>     http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
>
>
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at:  http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
>

--
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300             FAX: +43-1-58801-165982
Email: blaha at theochem.tuwien.ac.at    WIEN2k: http://www.wien2k.at
WWW:
http://www.imc.tuwien.ac.at/tc_blaha-------------------------------------------------------------------------

_______________________________________________
Wien mailing list
Wien at zeus.theochem.tuwien.ac.at
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:  http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html


More information about the Wien mailing list