AiiDA-ABINIT: JTH XML (PAW) pseudo upload fails, PSP8 works

Hi,

I am encountering a strange issue with AiiDA + ABINIT.

Environment

  • AiiDA Core: 2.6.4
  • aiida-abinit: 0.5.0 (editable local development version)
  • aiida-pseudo: 1.8.0
  • AbiPy: 0.9.8 (editable local development version)
  • ABINIT: 10.3.6
  • Transport: core.local
  • Scheduler: core.slurm
  • Filesystem: GPFS scratch
  • Pseudo-version: PAW(JTH v1.1)

I am using a modified development branch of aiida-abinit to support JthXmlData pseudos. I can provide the branch link and modifications if needed.

What works

Norm-conserving PSP8 pseudos work correctly.

Example:

Psp8Data
Si.psp8

SCF calculations run successfully and the pseudo is copied correctly into the working directory.

What fails

PAW JTH XML pseudos fail before the calculation starts.

Example:

JthXmlData
Si.xml

The pseudo node itself seems fine:

pseudo = load_node(PK)

print(pseudo.filename)

with pseudo.open() as handle:
    data = handle.read()

print(len(data))

Output:

Si.xml
929021

The file is present in the repository and can be read normally.

Debugging

I added some debug prints inside calculations.py and found:

PSEUDO FILE: Si.xml
PSEUDO SIZE: 929021
SOURCE PATH: /tmp/tmpXXXX/Si.xml
SOURCE SIZE: 929021

LOCAL COPY LIST =
[('uuid', 'Si.xml', './pseudo/Si.xml')]

So AiiDA correctly:

loads the pseudo node
reads the file
creates the local copy list
Failure

The upload fails during:

transport.put(...)

with:

OSError: [Errno 122] Disk quota exceeded

Traceback points to:

shutil.copyfile(localpath, destination)

inside AiiDA's upload step.

Strange observation

The destination file is created:

./pseudo/Si.xml

but it is 0 bytes.

Example:

pseudo/Si.xml
0 bytes

ABINIT then fails because the pseudo file is empty.

Additional information
Transport: core.local
Scheduler: core.slurm
Work directory is on GPFS scratch.
Manual cp of the same Si.xml file to the same filesystem works.
Manual shutil.copyfile() tests also work.
The problem only appears when AiiDA uploads a JthXmlData pseudo.
PSP8 pseudos work normally.

Has anyone seen similar behaviour with JthXmlData / PAW pseudos or local transport uploads?

Any suggestions for further debugging would be greatly appreciated.

Hi @RRRashmi

Your debugging script contains the following message:

Are you using different directories for your manual test and when running AiiDA? Because from your log it simply seems that you ran out of disk space/your quota is exceeded, wherefore AiiDA couldn’t insert the actual content.

Best,
Timo

Hello @t-reents ,

Yes, I am explicitly using the $SCRATCH directory on our Belgian HPC (Lucia).

I believe I found the issue a couple of weeks ago. After discussing it with the HPC administrators, we concluded that the problem appears to be related to file permissions on the HPC system. The administrators are now aware of it and are planning to address it during a scheduled maintenance.

Thank you for your reply. I really appreciate your help.

Best regards,
Rashmi

No worries, happy to help!

Please let us know in case you still encounter any issue after the maintenance.

Best,
Timo