Hi artiq users,
I have recently gotten into using "master" dashboard-bound experiment scripts to submit many other dashboard-bound scripts. These occassionally throw an error that I cannot catch related to permissions in ARTIQ's temporary working directory. I decided I'd start here instead of creating an issue on github, primarily because for the life of me I cannot nail down the exact circumstances which lead to the error. It seems to happen something like one in five times, and with a skewing towards the first run in a "while". It usually results in one of the runs I intended to submit not getting submitted.
Here is the trace when an error occurs:
root:Terminating with exception (PermissionError: [WinError 5] Access is denied: 'C:\\Users\\Ions\\Documents\\ARTIQ\\artiq-master\\tmpfokc4d0j' -> 'last_rid.pyon')
File "C:\Users\Ions\Anaconda3\envs\artiq-cotiac4\lib\site-packages\artiq\master\worker.py", line 219, in _handle_worker_requests
data = func(*obj["args"], **obj["kwargs"])
File "C:\Users\Ions\Anaconda3\envs\artiq-cotiac4\lib\site-packages\artiq\master\scheduler.py", line 426, in submit
return pipeline.pool.submit(expid, priority, due_date, flush, pipeline_name)
File "C:\Users\Ions\Anaconda3\envs\artiq-cotiac4\lib\site-packages\artiq\master\scheduler.py", line 132, in submit
rid = self.ridc.get()
File "C:\Users\Ions\Anaconda3\envs\artiq-cotiac4\lib\site-packages\artiq\master\rid_counter.py", line 25, in get
self._update_cache(rid)
File "C:\Users\Ions\Anaconda3\envs\artiq-cotiac4\lib\site-packages\artiq\master\rid_counter.py", line 47, in _update_cache
os.replace(tmpname, self.cache_filename)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\Ions\\Documents\\ARTIQ\\artiq-master\\tmpfokc4d0j' -> 'last_rid.pyon'
And here is a relevant snippet of the code I run:
for z in zb:
for y in yb:
expid["arguments"]["Y_bias"] = y
expid["arguments"]["Z_bias"] = z
self.scheduler.submit('main',expid)
I am using the latest version of artiq 4 available on the conda stream, where artiq_client --version doesn't work yet. ( I know we're up to 5 now and have moved away from conda)