[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