Python program won't work with VirusScope enabled

Hi,

Hope this is the correct place to ask VirusScope questions.
I’m using a Python software (ARTIQ) and following a tutorial example
https://m-labs.hk/artiq/manual/getting_started_mgmt.html
I disabled the Script Analysis > Heuristic Command-Line Analysis, for python and pythonw, in order to install it without problems in the Anaconda3 environment. Thanks to futuretech for his recommendations answering to other users. I tried it and worked first time.

Now I’m getting these “broken pipe” errors when I start the “artiq_master” server in the command line. The server keeps on running, but the repository files are skipped and don’t appear when I start the “artiq_dashboard” client in another window. The error messages (from the master, in the command window, at master startup) make me think that some repository search process is being killed by VirusScope and hence the Broken Pipe errors. I think VirusScope must be involved, since disabling it solves the problem (artiq_master starts without errors and I can see the repository files in the dashboard).

I’m confused because:

  1. “Monitor only apps in container” is checked. I would think only a previously contained app would get VirusScoped, but artiq_master doesn’t show up in the list of “Blocked Applications”

  2. Even manually adding “artiq_master” as Trusted to the File Rating > File List, won’t fix the problem. I have just learned there exist hard links in Windows too, and artiq_master.exe turns out to be a hard link to conda.exe which was already listed as Trusted (Comodo insisted that the file was already on the list, and I could not understand why :-). Just to make sure, I deleted conda.exe from File ratings, and manually added artiq_master.exe as trusted, to no avail.

  3. No pop-up message appears ever. No log event is recorded whatsoever. (Well, there is an allowed firewall log about python.exe TCP OUT to localhost). I cannot find any evidence of Comodo action on artiq_master, except for the fact that disabling VirusScope solves the problem.

I guess I can disable VirusScope, but I wonder if I’m missing some simple option or checkbox that would do the trick, letting me keep VirusScope enabled while avoiding the Broken Pipe errors and getting artiq to work normally.

Sorry I’m not knowledgeable enough to diagnose the problem any further, I’ll happily answer any questions and try any tests you may suggest. Thanks in advance for any advice.


These are the console messages from the artiq_master. I think "Se está cerrando la canalización" is a bad translation for "Pipe closed"

(artiq5) C:\Users\Javier\ARTIQ\Javier\artiq-master>where artiq_master
C:\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_master.exe

(artiq5) C:\Users\Javier\ARTIQ\Javier\artiq-master>fsutil hardlink list …....\anaconda3\envs\artiq5\Scripts\artiq_master.exe
\Users\Javier\anaconda3\Scripts\conda.exe
\Users\Javier\anaconda3\pkgs\conda-4.8.3-py37_0\Scripts\conda.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_client.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_compile.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_coreanalyzer.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\sipyco_rpctool.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_coremgmt.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_ddb_template.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_netboot.exe
\Users\Javier\anaconda3\envs\artiq5\Scripts\artiq_master.exe

(artiq5) C:\Users\Javier\ARTIQ\Javier\artiq-master>artiq_master
ARTIQ master is now ready.
ERROR:master:asyncio:Pipe accept failed
pipe:
Traceback (most recent call last):
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\windows_events.py”, line 343, in loop_accept_pipe
f = self._proactor.accept_pipe(pipe)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\windows_events.py”, line 520, in accept_pipe
connected = ov.ConnectNamedPipe(pipe.fileno())
BrokenPipeError: [WinError 232] Se está cerrando la canalización
ERROR:master:artiq.master.worker:worker exception details
Traceback (most recent call last):
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\experiments.py”, line 27, in process_file
“scan”, os.path.join(root, filename))
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 311, in examine
timeout)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 248, in _worker_action
await self._send(obj)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 173, in _send
f.result() # raise any exceptions
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\futures.py”, line 294, in result
raise self._exception
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\tasks.py”, line 240, in _step
result = coro.send(None)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\sipyco\pipe_ipc.py”, line 174, in drain
await self.writer.drain()
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\streams.py”, line 323, in drain
raise exc
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\proactor_events.py”, line 290, in _loop_writing
self._write_fut = self._loop._proactor.send(self._sock, data)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\windows_events.py”, line 452, in send
ov.WriteFile(conn.fileno(), buf)
BrokenPipeError: [WinError 232] Se está cerrando la canalización
WARNING:master:artiq.master.experiments:Skipping file ‘mgmt_tutorial.py’
Traceback (most recent call last):
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\experiments.py”, line 63, in _scan
await self.process_file(entry_dict, root, filename)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\experiments.py”, line 27, in process_file
“scan”, os.path.join(root, filename))
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 311, in examine
timeout)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 248, in _worker_action
await self._send(obj)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\artiq\master\worker.py”, line 173, in _send
f.result() # raise any exceptions
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\futures.py”, line 294, in result
raise self._exception
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\tasks.py”, line 240, in _step
result = coro.send(None)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\site-packages\sipyco\pipe_ipc.py”, line 174, in drain
await self.writer.drain()
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\streams.py”, line 323, in drain
raise exc
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\proactor_events.py”, line 290, in _loop_writing
self._write_fut = self._loop._proactor.send(self._sock, data)
File “C:\Users\Javier\anaconda3\envs\artiq5\lib\asyncio\windows_events.py”, line 452, in send
ov.WriteFile(conn.fileno(), buf)
BrokenPipeError: [WinError 232] Se está cerrando la canalización

The sources are available from GitHub, artiq is [L]GPLv3

Though there is an artiq_master.exe and artiq_master-script.py in …\anaconda3\envs\artiq5\Scripts, there is also an artiq_master.py in …\anaconda3\envs\artiq5\Lib\site-packages\artiq\frontend

the other files mentioned in the messages are also there of course


You may have come across an unusual bug with virusscope being active, what version of CIS/cfw are you using? I know there was a bug where a specific application would crash when virusscope was enabled, even though the application was trusted.

Hi!
Thanks for the prompt response!

Version 12.1.0.6914. This is the Help Window > About dialog