irods / irods_testing_environment

BSD 3-Clause "New" or "Revised" License
8 stars 14 forks source link

Symbolic link in plugin directory pointing to itself causes issues in plugin install #201

Open MartinFlores751 opened 5 months ago

MartinFlores751 commented 5 months ago

Mini explanation

When running the test for prep (initially concurrently) tests would fail. Tried running serially, still got an error. Adding some more verbosity, the error seems to be that the installation process may be trying to do something recursive?

Issue Notes:

Command executed (after sourcing testing virtualenv):

python3 /home/marflo/Documents/iRODS/irods_testing_environment/run_plugin_tests.py --project-directory /home/marflo/Documents/iRODS/irods_testing_environment/projects/rockylinux-9/rockylinux-9-postgres-14.8/ --irods-package-directory /home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/packages/ --output-directory /home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/logs/ --plugin-package-directory /home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep -vv irods_rule_engine_plugin_python

From the logs (with extra before & after error):

...
2024-04-29 12:47:32,655 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: running test [None]                                                                                                                
2024-04-29 12:47:34,266 - Processing /tmp/tmpz9gyo_bk/irods_python_ci_utilities                                                                                                                                    

2024-04-29 12:47:34,266 -   DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to t
est your packages with this new behavior before it becomes the default.                                                                                                                                            
   pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.                                                                         

2024-04-29 12:47:34,607 - Using legacy 'setup.py install' for irods-python-ci-utilities, since package 'wheel' is not installed.                                                                                   

2024-04-29 12:47:34,732 - Installing collected packages: irods-python-ci-utilities                                                                                                                                 

2024-04-29 12:47:34,734 -     Running setup.py install for irods-python-ci-utilities: started                                                                                                                      

2024-04-29 12:47:35,084 -     Running setup.py install for irods-python-ci-utilities: finished with status 'done'                                                                                                  

2024-04-29 12:47:35,093 - Successfully installed irods-python-ci-utilities-0.1                                                                                                                                     

2024-04-29 12:47:35,093 - WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instea
d: https://pip.pypa.io/warnings/venv                                                                                                                                                                               

2024-04-29 12:47:37,879 - Traceback (most recent call last):                                                                                                                                                       
  File "/tmp/tmpcaq1wrbz/irods_rule_engine_plugin_python/irods_consortium_continuous_integration_test_hook.py", line 46, in <module>                                                                               

2024-04-29 12:47:37,880 - Last metadata expiration check: 0:00:28 ago on Mon Apr 29 17:47:08 2024.                                                                                                                 
Dependencies resolved.                                                                                                                                                                                             
Nothing to do.                                                                                                                                                                                                     
Complete!                                                                                                                                                                                                          

Last metadata expiration check: 0:00:29 ago on Mon Apr 29 17:47:08 2024.                                                                                                                                           
Not a valid rpm file path: /home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep/Rocky linux_9/Rocky linux_9                                                                                              

Error: Nothing to do.                                                                                                                                                                                              

2024-04-29 12:47:37,880 -     main()                                                                                                                                                                               
  File "/tmp/tmpcaq1wrbz/irods_rule_engine_plugin_python/irods_consortium_continuous_integration_test_hook.py", line 25, in main                                                                                   

2024-04-29 12:47:37,881 -     irods_python_ci_utilities.install_os_packages_from_files([os.path.join(plugin_dir, entry) for entry in os.listdir(plugin_dir)])                                                      
  File "/usr/local/lib/python3.9/site-packages/irods_python_ci_utilities/irods_python_ci_utilities.py", line 139, in install_os_packages_from_files                                                                

2024-04-29 12:47:37,881 -     dispatch_map[get_distribution()](files)                                                                                                                                              
  File "/usr/local/lib/python3.9/site-packages/irods_python_ci_utilities/irods_python_ci_utilities.py", line 115, in install_os_packages_from_files_dnf                                                            

2024-04-29 12:47:37,881 -     subprocess_get_output(args, check_rc=True)                                                                                                                                           
  File "/usr/local/lib/python3.9/site-packages/irods_python_ci_utilities/irods_python_ci_utilities.py", line 64, in subprocess_get_output

2024-04-29 12:47:37,882 -     raise RuntimeError('''subprocess_get_output() failed
RuntimeError: subprocess_get_output() failed
args: (['sudo', 'dnf', 'localinstall', '-y', '--nogpgcheck', '/home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep/Rocky linux_9/irods-rule-engine-plugin-python-4.3.2.0-0.el9.x86_64.rpm', '/home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep/Rocky linux_9/Rocky linux_9'],)
kwargs: {'stdout': -1, 'stderr': -1}
returncode: 1
stdout: Last metadata expiration check: 0:00:29 ago on Mon Apr 29 17:47:08 2024.
Not a valid rpm file path: /home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep/Rocky linux_9/Rocky linux_9

stderr: Error: Nothing to do.

2024-04-29 12:47:37,907 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: cmd [1] [['python3', '/tmp/tmpcaq1wrbz/irods_rule_engine_plugin_python/irods_consortium_continuous_integration_test_hook.py', '--built_packages_root_directory', '/home/marflo/Documents/iRODS/build-artifacts/rockylinux-9/prep']]
2024-04-29 12:47:37,907 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: test failed [[   5.2512]s] [all tests]
2024-04-29 12:47:37,907 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: Queue is empty!
2024-04-29 12:47:37,908 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: tests that failed [[(None, 5.251229763031006)]]
2024-04-29 12:47:37,908 - [rockylinux-9-postgres-148_irods-catalog-provider_1]: some tests failed
2024-04-29 12:47:37,909 - [[1]]
2024-04-29 12:47:37,909 - [[1]]
2024-04-29 12:47:37,909 - ==== begin test run results ====
...

Directory of prep looks like so:

marflo@westwing:~/Documents/iRODS$ ls -l build-artifacts/rockylinux-9/prep
total 2144
-rw-r--r-- 1 root   root   2194183 Apr 29 09:51  irods-rule-engine-plugin-python-4.3.2.0-0.el9.x86_64.rpm
lrwxrwxrwx 1 marflo marflo       1 Apr 29 09:29 'Rocky linux_9' -> .

Mini Note

This might be prep specific? This sym-link style worked with some other plugins (curl, index, logical, metadata).

alanking commented 5 months ago

Just noting here that this may be an issue for https://github.com/irods/irods_python_ci_utilities rather than the testing environment. But let's keep it here for now.

SwooshyCueb commented 3 months ago

I have not observed this issue myself, despite using symbolic links like this.