RPA-Python
RPA-Python copied to clipboard
Ubuntu libssl runtime error running init() - user workaround and some thoughts
About
Running into an issue that may or may not be related to libssl3.
Environment
$ pip3 list
Package Version
---------- -------
pip 22.2.1
rpa 1.48.1
setuptools 63.2.0
tagui 1.48.1
wheel 0.37.1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Pop
Description: Pop!_OS 22.04 LTS
Release: 22.04
Codename: jammy
$ apt list show libssl3
Listing... Done
libssl3/jammy-security,jammy-updates,now 3.0.2-0ubuntu1.6 amd64 [installed]
libssl3/jammy-security,jammy-updates,now 3.0.2-0ubuntu1.6 i386 [installed,automatic]
$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
Steps to Reproduce
Here's the code I'm using:
# main.py
import rpa as r
if __name__ == '__main__':
r.init(visual_automation=False, turbo_mode=False)
$ python3 main.py
[RPA][ERROR] - following happens when starting TagUI...
The following command is executed to start TagUI -
"/home/austinm/.tagui/src/tagui" rpa_python chrome
It leads to following output when starting TagUI -
Auto configuration failed
139837232740288:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory
139837232740288:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
139837232740288:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=ssl_conf, path=ssl_conf
139837232740288:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=ssl_conf
[RPA][ERROR] - unknown error encountered
Workaround
The workaround is to edit the /etc/ssl/openssl.cnf
file and comment out the following lines:
providers = provider_sect
ssl_conf = ssl_sect
Hi @austin-millan thanks for raising this issue, providing detailed context, and sharing your solution!
Python rpa package uses TagUI RPA engine, which uses the PhantomJS headless browser as its JavaScript engine. PhantomJS has a dependency on OpenSSL, which might be the reason for this apparent conflict in your environment. For Mac, there is auto-patching already implemented to fix an issue with OpenSSL/LibreSSL. For Linux, I haven't gotten users feedback that it is affecting Linux users broadly, and thus there isn't any automated-patching during init().
Could you try downloading below PhantomJS for Linux, and replace your copy at ~/.tagui/src/phantomjs
, to see if that works without your workaround above? If it does, I'll have to watch out for more users feedback, to see if that justify auto-patching with that PhantomJS Linux binary. If it doesn't, I still want to store this workaround solution somewhere so that other users can add on to this issue. And hopefully I can build in a fix that doesn't compromise other existing Linux users.
https://phantomjs.org/download.html