hrcorval / behavex

BDD test wrapper for parallel test executions and more!
https://github.com/hrcorval/behavex
MIT License
85 stars 20 forks source link

OSError: AF_UNIX path too long #118

Closed Roman-Churakov closed 1 day ago

Roman-Churakov commented 9 months ago

Describe the bug Since the release of behaveX 3.2.0 some of our builds have started to fail with 'AF_UNIX path too long' error. (By saying 'some builds', I mean that we noticed that for the same repo a build for master is still OK, but a build for a branch has started to fail, even though is was OK yesterday.) By pinning behaveX version to 3.0.0 we have achieved that our build is successful in all repos and branches.

To Reproduce Steps to reproduce the behavior: 15:32:24 + python3 -m behavex --parallel-processes 8 --parallel-scheme scenario --logging-level ERROR '--tags=~Isolated' 15:32:25 |--------------------| ------------------------------------------------------------| 15:32:25 |ENV. VARIABLE | VALUE | 15:32:25 |--------------------| ------------------------------------------------------------| 15:32:25 |HOME | /home/ec2-user | 15:32:25 |CONFIG | /home/ec2-user/.local/lib/python3.8/site-packages/behavex/conf_behavex.cfg| 15:32:25 |OUTPUT | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output| 15:32:25 |TAGS | ~Isolated | 15:32:25 |PARALLEL_SCHEME | scenario | 15:32:25 |PARALLEL_PROCESSES | 8 | 15:32:25 |FEATURES_PATH | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/features| 15:32:25 |TEMP | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output/temp| 15:32:25 |LOGS | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output/outputs/logs| 15:32:25 |LOGGING_LEVEL | ERROR | 15:32:25 |--------------------| ------------------------------------------------------------| 15:32:25 Process SyncManager-1: 15:32:25 Traceback (most recent call last): 15:32:25 File "/usr/lib64/python3.8/multiprocessing/process.py", line 315, in _bootstrap 15:32:25 self.run() 15:32:25 File "/usr/lib64/python3.8/multiprocessing/process.py", line 108, in run 15:32:25 self._target(*self._args, **self._kwargs) 15:32:25 File "/usr/lib64/python3.8/multiprocessing/managers.py", line 608, in _run_server 15:32:25 server = cls._Server(registry, address, authkey, serializer) 15:32:25 File "/usr/lib64/python3.8/multiprocessing/managers.py", line 154, in init 15:32:25 self.listener = Listener(address=address, backlog=16) 15:32:25 File "/usr/lib64/python3.8/multiprocessing/connection.py", line 448, in init 15:32:25 self._listener = SocketListener(address, family, backlog) 15:32:25 File "/usr/lib64/python3.8/multiprocessing/connection.py", line 591, in init 15:32:25 self._socket.bind(address) 15:32:25 OSError: AF_UNIX path too long

Expected behavior (captured after pinning behaveX to 3.0.0) 16:04:03 + python3 -m behavex --parallel-processes 8 --parallel-scheme scenario --logging-level ERROR '--tags=~Isolated' 16:04:03 |--------------------| ------------------------------------------------------------| 16:04:03 |ENV. VARIABLE | VALUE | 16:04:03 |--------------------| ------------------------------------------------------------| 16:04:03 |HOME | /home/ec2-user | 16:04:03 |CONFIG | /home/ec2-user/.local/lib/python3.8/site-packages/behavex/conf_behavex.cfg| 16:04:03 |OUTPUT | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output| 16:04:03 |TAGS | ~Isolated | 16:04:03 |PARALLEL_SCHEME | scenario | 16:04:03 |PARALLEL_PROCESSES | 8 | 16:04:03 |FEATURES_PATH | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/features| 16:04:03 |TEMP | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output/temp| 16:04:03 |LOGS | /mnt/jenkins/workspace/orders_SP-896-Add-Non-Sales-Type/src/test/output/outputs/logs| 16:04:03 |LOGGING_LEVEL | ERROR | 16:04:03 |--------------------| ------------------------------------------------------------| 16:04:27 HTTP API_ID: **** 16:04:27 HTTP URL: https://** 16:04:27 HTTP Status: 200 16:04:27 HTTP Body: "{ "status": "success", "data": null }" 16:04:27 HTTP API_ID: * 16:04:27 HTTP URL: https://** 16:04:27 HTTP PARAM: "2023-11-23 15:04:06:*" 16:04:27 HTTP Status: 200 16:04:27 HTTP Body: "{ "status": "success", "data": { ** AND SO ON

Running on Aws Linux image packed by hashicorp.com (latest) installed: git, gcc, java-1.8.0-openjdk, mysql, mysql-connector-java, mysqldef_linux_amd64.tar.gz, xorg-x11-server-Xvfb, jfrog.io, Node.sh

hrcorval commented 9 months ago

Hi @Roman-Churakov, maybe the issue is related to a small change in the way we are using the multiprocessing library to start implementing a lock in a shared area. We will analyze this. In the meantime, I have seen a workaround can be to export the environment variable $TMPDIR to a shorter path. Regards,

manrodrigues commented 5 months ago

@Roman-Churakov this was a worthwhile workaround for us:

TMPDIR=/tmp/ behavex -t=@tag --parallel-processes=10 --parallel-scheme=scenario

(instead of the usual behavex -t=@tag --parallel-processes=10 --parallel-scheme=scenario)