ISISComputingGroup / ISISComputingGroup/IBEX
genie_python/CaChannel: Error creating multiple channels on multiple threads
- Dominant language
- No language data
- Stars
- 6
- Forks
- 2
- Avg merge
- 16h 40m
- Merged PRs (30d)
- 2
Description
We believe that the genie python code is doing the following in ca channel (although this is a recreation of the path through get_chan). We we run it we 100 threads on NDHSpare70 it generates a connection error, with 10 threads it is fine:
```
from CaChannel import ca, CaChannel, CaChannelException
from threading import Event
from concurrent.futures import ThreadPoolExecutor
name = "TE:SPARE70:CS:BLOCKSERVER:SERVER_STATUS"
def test(index):
def putCB(epics_args, user_args):
user_args[0].set()
event = Event()
chan = CaChannel(name)
#CaChannelWrapper.installHandlers(chan)
chan.setTimeout(3)
chan.search_and_connect(None, putCB, event)
interval = 0.1
count = 0
timeout = 3
while not event.wait(interval) and timeout < interval * count:
chan.pend_io(interval)
count +=1
if not event.is_set():
print("Connect Fail")
else:
print(index)
def run_me(threads, pre_thread=1):
THREADPOOL = ThreadPoolExecutor(max_workers=threads)
for index in range(threads*pre_thread):
THREADPOOL.submit(test, index)
THREADPOOL.shutdown(wait=True)
```
Is this our bug or should we communicate it to the CaChannel author.
Output is:
```
In [17]: run_me(100)
Connect FailConnect FailConnect Fail
Connect FailConnect Fail
Connect FailConnect FailConnect FailConnect Fail
Connect FailConnect FailConnect Fail
Connect FailConnect FailConnect FailConnect Fail
Connect FailConnect FailConnect FailConnect FailConnect FailConnect FailConnect
FailConnect Fail
Connect FailConnect FailConnect FailConnect Fail
Connect Fail
Connect Fail
Connect Fail
Connect Fail
Connect Fail
Connect FailConnect FailConnect FailConnect FailConnect FailConnect Fail
Connect FailConnect Fail
Connect FailConnect Fail
Connect Fail
Connect FailConnect FailConnect Fail
Connect FailConnect FailConnect FailConnect FailConnect FailConnect Fail
Connect FailConnect FailConnect FailConnect FailConnect Fail
Connect FailConnect FailConnect FailConnect FailConnect FailConnect FailConnect
FailConnect Fail
Connect Fail
Connect Fail
Connect FailConnect FailConnect Fail
Connect FailConnect Fail
Connect Fail
Connect FailConnect Fail
Connect Fail
Connect Fail
Connect Fail
Connect FailConnect FailConnect FailConnect FailConnect FailConnect FailConnect
Fail
Connect FailConnect Fail
Connect FailConnect FailConnect Fail
Connect Fail
Connect Fail
Connect FailConnect FailConnect Fail
Connect FailConnect Fail
Connect Fail
Connect Fail
```
One time we got the error:
```
In [18]: Context: " Source File: c:\instrument\apps\epics\base\master\mod
ules\ca\src\client\cac.cpp line 1237
"
Current Time: Tue Oct 20 2020 16:33:13.603591416
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.