OCR Sharing Violation

I am occasionally encountering the following error when trying to run Eggplant scripts in Jenkins:

Searching For Image: OCR Error: A sharing violation occurred while accessing C:\ProgramData\ABBYY\SDK\12\FineReader Engine\UserDictionaries\7568BB3D1C13AA3BBE1F352E5045F9B5ABEEDDDA.423.ame.

I am assuming here that since we run Eggplant builds concurrently, that one process is trying to use OCR while another process is already doing so. Has anyone else encountered this issue? Shouldn’t multiple processes be able to use OCR at the same time, licensing permitting?

1 Like

Hi,
the path is not the same but issue seems to be known.
If one uses the OCR with ‘validWords’ filter, then a temporary file in a hardcoded path is used by eggplant. This path is calculated based on the drive letter (for winX) the ‘Default Suite Directory’ is pointing to. Parallel execution of several ep processes on the same suites-repository result in above mentioned violations. I suggest to contact the ep-support if the feature is a must-have for you.
Best regards.

Many thanks for the help!

@GammaG, do you know if this locking is limited to OCR? Today, I only have a handful DAI models deployed, but they share some suites. As I add more models, I imagine I’ll eventually encounter this locking issue unless I know what to avoid
Regards

Hi phillihp, till today i did not face similar issue with DAI. What i mentioned is, that in DAI environment the epFunctional ScriptResults-Function returns an empty property. This influences e.g. the CaptureScreen command - so one has to take care about the path where to write these images.
Regards

We are also facing this issue when trying to run multiple Eggplant Functional sessions on a Windows server. It seems to be a known problem with the ABBY FineReader component. Contacting Eggplant support has not proven helpful for now.

The only workaround at the moment seems to be to run Eggplant Functional in a sandbox, that redirects all disk IO of EPF to a session-specific folder and thereby avoids concurrent access to the same location. :frowning: