I set up the nix environment according to the manual, flashed Kasli with the new gateware (Kasli v1.1, SU variant). Working with the dashboard is fine, both for scripts which run on Kasli with @kernel
and script that don't. However, when I try to send experiments via rpc by executing the following python file (using the LED
script from here):
from artiq import *
from sipyco.pc_rpc import Client
schedule = Client("::1", 3251, "master_schedule")
expid_led = {
'file': 'repository/test/led.py',
'class_name': 'LED',
'log_level': 30,
'arguments': {}}
rid = schedule.submit(pipeline_name="main", expid=expid_led,
priority=0, due_date=None, flush=False)
I get the following error:
ERROR:worker(942,led.py):root:Terminating with exception (OSError: source code not available)
Traceback (most recent call last):
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/master/worker_impl.py", line 300, in main
exp_inst.run()
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/language/core.py", line 54, in run_on_core
return getattr(self, arg).run(run_on_core, ((self,) + k_args), k_kwargs)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/coredevice/core.py", line 129, in run
self.compile(function, args, kwargs, set_result)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/coredevice/core.py", line 104, in compile
stitcher.stitch_call(function, args, kwargs, set_result)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/compiler/embedding.py", line 691, in stitch_call
call_node = synthesizer.call(function, args, kwargs, callback)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/compiler/embedding.py", line 363, in call
callee_node = self.quote(callee)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/compiler/embedding.py", line 257, in quote
function_type = self.quote_function(value, self.expanded_from)
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/compiler/embedding.py", line 1088, in _quote_function
self._quote_embedded_function(function,
File "/nix/store/ipbd9hg3z39kd5xizysmdlwv4vd24vbk-python3-3.8.11-env/lib/python3.8/site-packages/artiq/compiler/embedding.py", line 860, in _quote_embedded_function
source_code = inspect.getsource(embedded_function)
File "/nix/store/j2hdhabhzvwy7zbw96pi7m7i066snh2i-python3-3.8.11/lib/python3.8/inspect.py", line 997, in getsource
lines, lnum = getsourcelines(object)
File "/nix/store/j2hdhabhzvwy7zbw96pi7m7i066snh2i-python3-3.8.11/lib/python3.8/inspect.py", line 979, in getsourcelines
lines, lnum = findsource(object)
File "/nix/store/j2hdhabhzvwy7zbw96pi7m7i066snh2i-python3-3.8.11/lib/python3.8/inspect.py", line 790, in findsource
raise OSError('source code not available')
OSError: source code not available
ERROR:master:artiq.master.scheduler:got worker exception in run stage, deleting RID 942
!<
However, when sending an experiment that does not need the core device it works fine. I see in both cases the experiments appearing in the schedule of the dashboard. Everything is run from the same pc at the moment (but I would like to be able to run experiments remotely via jupyter server).