Open jnimoth opened 2 months ago
Thanks for letting us know! I will try to reproduce that on a VM. Can you please paste the content of the ~/.ibridges/ibridges-gui.log here?
Sure, but there is not much to see:
$ cat ~/.ibridges/ibridges-gui.log
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:30:33.026504
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:44:32.958262
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:49:39.949979
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:51:57.800514
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:52:06.566994
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:52:12.264242
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T16:59:44.716232
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-12T17:01:00.509523
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-14T10:45:04.742795
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-14T10:47:30.240627
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Starting iBridges-GUI
2024-06-14T11:02:38.199202
__________________________________________________
__________________________________________________
Three trials from today, but also some entries from two days ago when I tried it already and had the same issue.
I see .... I will make a branch with some more debug statements to find out where exactly it hangs. Please bear with me ... ;)
It lies in the Tab Synchronise data
. As soon as this one is commented out in the __main__.py
the GUI works as expected.
It must be in the constructor, maybe in these lines:
57 self._init_local_fs_tree()
58 self._init_irods_tree()
@jnimoth I think I found the issue, it indeed lies in the initialising of the iRODS tree. If I am not mistaken you also have read rights in the iRODS path "/" which I did not expect in the code. It is fixed now in the branch 205-freeze.
Can you please install the GUI from there again and see whether it solves the issue?
pip install pip install git+https://github.com/chStaiger/iBridges-Gui.git@205-freeze
So I just tested with this branch and the behavior is now indeed different: I can start the GUI with all the tabs, also sync tab being enabled. It does not freeze anymore!
But:
If I am in the sync tab, it crashes when I open a folder on the iRODS side. It first works, and I can open the tree, but as soon as I want to open the level /rug/home/
, it crashes. The same was seen if I want to go to /rug/trash/home/
.
The error shown when the program crashed is:
CRITICAL:irods.connection:Read 0 bytes from socket instead of expected 4 bytes
ERROR:irods.connection:Could not receive server response
Traceback (most recent call last):
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/connection.py", line 133, in recv
msg = iRODSMessage.recv(self.socket)
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/message/__init__.py", line 294, in recv
rsp_header_size = _recv_message_in_len(sock, 4)
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/message/__init__.py", line 230, in _recv_message_in_len
raise socket.error(msg)
OSError: Read 0 bytes from socket instead of expected 4 bytes
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/ibridgesgui/irods_tree_model.py", line 140, in refresh_subtree
self.add_subtree(tree_item, tree_item_data)
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/ibridgesgui/irods_tree_model.py", line 110, in add_subtree
for item in parent_coll.subcollections + parent_coll.data_objects:
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/collection.py", line 53, in subcollections
return [iRODSCollection(self.manager, row) for row in query]
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/collection.py", line 53, in <listcomp>
return [iRODSCollection(self.manager, row) for row in query]
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/query.py", line 235, in get_results
for result_set in self.get_batches():
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/query.py", line 226, in get_batches
result_set.continue_index).execute()
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/query.py", line 197, in execute
result_message = conn.recv()
File "/home/jelte/python_venvs/ibridges_venv_2/lib/python3.10/site-packages/irods/connection.py", line 144, in recv
raise NetworkException("Could not receive server response")
irods.exception.NetworkException: Could not receive server response
fish: Job 1, 'ibridges-gui' terminated by signal SIGABRT (Abort)
Also, I see the folder structure two times in the iRODS tree in the sync tab:
Ok, one step further ;) I will take look at a normal iRODS instance ... so far we used Yoda instances to develop the GUI.
I just saw that this error seems to be just observed if the user in question is "rodsadmin". With a non-rodsadmin account, the sync tab does not seem to crash and I can navigate to different folder level. Here also some screenshots how it looks for different users:
Rodsadmin:
No rodsadmin:
I fixed the double listing of the root collection. It is an iRODS thing, that the collection /
also contains itself ...
(https://github.com/UtrechtUniversity/iBridges/issues/203)
>>> irods_path = IrodsPath(session, "/")
>>> irods_path.collection.subcollections
[<iRODSCollection 10003 b''>, <iRODSCollection 10004 b'tempZone'>]
Now the only problem that stays and which I could not reproduce is the crashing ...
Describe the bug Just tried to start iBridges GUI on my Linux device and the program/window freezes completely after I specify password and try to connect.
No error is shown. It just freezes.
The program was freshly installed via
pip
in a new Python venv. Normalibridges
without GUI works fine with the same config.To Reproduce Install iBridges-gui via pip, start it, select "connect", then specify password and start connection.
Expected behavior ibridges-gui starts and I can use it.
Screenshots![image](https://github.com/chStaiger/iBridges-Gui/assets/109157914/04c76814-0fc0-49c7-9879-e524c387cd2b)
Provide some information: