[Wien] cannot touch '/optics.symmat': Read-only file system
Gavin Abo
gsabo at crimson.ua.edu
Thu Nov 14 04:59:39 CET 2019
See if the below simple test script helps. It looks like the / could be
outputted if SCRATCH is blank. Note that because of case sensitivity
SCRATCH is different than scratch in the csh script. It looks like the
sed -e 's/\/$//'` may be doing a substitution were \ is replaced by $/,
where the $ seems to be the initial input string that is just \ in the
case below [1].
username at computername:~/Desktop/test$ ls
test.sh
username at computername:~/Desktop/test$ cat test.sh
#!/bin/csh -f
set scratch =
if ( $?SCRATCH ) then
set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ # we are afraid
# different settings in different
# computing centers
#use global variable for scratch if set
echo $scratch
endif
username at computername:~/Desktop/test$ export SCRATCH=./
username at computername:~/Desktop/test$ test.sh
./
username at computername:~/Desktop/test$ export SCRATCH=
username at computername:~/Desktop/test$ test.sh
/
username at computername:~/Desktop/test$ export SCRATCH='\'
username at computername:~/Desktop/test$ test.sh
\/
[1]
https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html
On 11/13/2019 8:04 PM, Oleg Rubel wrote:
> P.S. I forgot to mention the version:
> WIEN2k_19.1 (Release 25/6/2019)
>
> Oleg
>
> On 11/13/2019 10:01 PM, Oleg Rubel wrote:
>> Dear Wien2k community,
>>
>> I run into a problem when performing optics calculations in parallel
>> mode (not MPI), hybrid with SOC. It is run for Si, but it is just a
>> step stone to heavier materials where SOC really matters.
>>
>> Optics is executed as
>>
>>> [rubel at gra690 optics]$ x optic -so -hf -p
>>> running OPTIC in parallel mode
>>> [1] 4932
>>> OPTIC END
>>> [1] + Done ( cd $PWD; $t $exe
>>> ${def}_${loop}.def; rm -f .lock_$lockfile[$p] ) >> .timeop_$loop
>>> [1] 4937
>>> ...
>>> Summary of opticpara:
>>> localhost user=0 wallclock=203580
>>> scratch=/
>>> touch: cannot touch '/optics.symmat': Read-only file system
>>> touch: cannot touch '/optics.mommat2': Read-only file system
>>> touch: cannot touch '/optics.mat_diag': Read-only file system
>>> touch: cannot touch '/optics.mme': Read-only file system
>>> /optics.symmat: Read-only file system.
>>> /optics.symma1: Read-only file system.
>>> /optics.symma2: Read-only file system.
>>> /optics.mat_diag: Read-only file system.
>>> /optics.mme: Read-only file system.
>>> rm: cannot remove '/optics.symmat_1': No such file or directory
>>> rm: cannot remove '/optics.mat_diag_1': No such file or directory
>>> rm: cannot remove '/optics.mme_1': No such file or directory
>>> ...
>>
>> The output shows that optics actually ends OK, but the script gets
>> stuck with results files pointing to the root directory "/" for some
>> reason. Of course, I have no permission to write there. The same
>> problem was reported earlier on the mailing list
>> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17103.html
>>
>>
>> The problem is the value of "scratch" variable. I edited the file
>>
>>> [rubel at gra690 optics]$ vim $WIENROOT/opticcpara
>>
>> to display the variable. As you can see in the output above, the
>> value is "scratch=/" in spite of the fact that
>>
>>> [rubel at gra690 optics]$ echo $SCRATCH
>>> ./
>>
>> The workaround is to make changes in the file $WIENROOT/opticcpara
>>
>>> if ( $?SCRATCH ) then
>>> set scratch=`echo $SCRATCH | sed -e 's/\/$//'`/ # we are afraid
>>> # different settings in different
>>> # computing centers
>>> #use global variable for scratch if set
>>> echo "scratch=$scratch" # OLEG
>>> set scratch=$SCRATCH # OLEG
>>> endif
>>
>> I am not sure what does the whole command with "sed ..." suppose to
>> do? Why do we need to change $SCRATCH value? I tried in different shells
>>
>>> [rubel at gra-login1 optics]$ scratch=`echo $SCRATCH | sed -e 's/\/$//'`/
>>> [rubel at gra-login1 optics]$ echo $scratch
>>> ./
>>> [rubel at gra-login1 optics]$ /bin/csh
>>> [rubel at gra-login1 optics]$ set scratch=`echo $SCRATCH | sed -e
>>> 's/\/$//'`/
>>> [rubel at gra-login1 optics]$ echo $scratch
>>> ./
>>> [rubel at gra-login1 optics]$ echo $shell
>>> /bin/tcsh
>>
>> I could not reproduce "/" in the command line, but in the script the
>> value is different for some reason.
>>
>> Any thoughts are welcome :)
>>
>> Thank you in advance
>> Oleg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20191113/8342ad31/attachment.html>
More information about the Wien
mailing list