-
Notifications
You must be signed in to change notification settings - Fork 74
Open
Description
I am using PRC 3.2.0 and I am connecting to an SSL enabled iRODS instance which uses the pam module to authenticate users.
When I use a wrong username in my irods environment file, the PRC throws a NetworkError while as a user I would expect a CAT_INVALID_USER or CAT_INVALID_AUTHENTICATION:
CRITICAL:irods.connection:Read 0 bytes from socket instead of expected 4 bytes
ERROR:irods.connection:Could not receive server response
NetworkException('Could not receive server response')
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
File /opt/homebrew/lib/python3.13/site-packages/irods/session.py:368, in iRODSSession.__server_version(self)
367 try:
--> 368 conn = next(iter(self.pool.active))
369 return conn.server_version
StopIteration:
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File /opt/homebrew/lib/python3.13/site-packages/irods/pool.py:93, in Pool.get_connection(self)
92 try:
---> 93 conn = self.idle.pop()
95 curr_time = datetime.datetime.now()
KeyError: 'pop from an empty set'
During handling of the above exception, another exception occurred:
OSError Traceback (most recent call last)
File /opt/homebrew/lib/python3.13/site-packages/irods/connection.py:173, in Connection.recv(self, into_buffer, return_message, acceptable_errors)
172 if into_buffer is None:
--> 173 msg = iRODSMessage.recv(self.socket)
174 else:
File /opt/homebrew/lib/python3.13/site-packages/irods/message/__init__.py:341, in iRODSMessage.recv(sock)
338 @staticmethod
339 def recv(sock):
340 # rsp_header_size = sock.recv(4, socket.MSG_WAITALL)
--> 341 rsp_header_size = _recv_message_in_len(sock, 4)
342 rsp_header_size = struct.unpack(">i", rsp_header_size)[0]
File /opt/homebrew/lib/python3.13/site-packages/irods/message/__init__.py:245, in _recv_message_in_len(sock, size)
242 msg = "Read {} bytes from socket instead of expected {} bytes".format(
243 retbuf_size, size
244 )
--> 245 raise socket.error(msg)
247 return retbuf
OSError: Read 0 bytes from socket instead of expected 4 bytes
During handling of the above exception, another exception occurred:
NetworkException Traceback (most recent call last)
File ~/git-repos/iBridges/ibridges/session.py:311, in Session.authenticate_using_auth_file(self)
310 os.unlink(temp_ienv_path)
--> 311 _ = irods_session.server_version # pylint: disable=possibly-used-before-assignment
312 except NonAnonymousLoginWithoutPassword as e:
File /opt/homebrew/lib/python3.13/site-packages/irods/session.py:331, in iRODSSession.server_version(self)
329 @property
330 def server_version(self):
--> 331 return self._server_version()
File /opt/homebrew/lib/python3.13/site-packages/irods/session.py:364, in iRODSSession._server_version(self, version_func)
363 return tuple(ast.literal_eval(reported_vsn))
--> 364 return self.__server_version() if version_func is None else version_func(self)
File /opt/homebrew/lib/python3.13/site-packages/irods/session.py:371, in iRODSSession.__server_version(self)
370 except StopIteration:
--> 371 conn = self.pool.get_connection()
372 version = conn.server_version
File /opt/homebrew/lib/python3.13/site-packages/irods/pool.py:18, in attribute_from_return_value.<locals>.deco.<locals>.method_(self, *s, **kw)
17 def method_(self, *s, **kw):
---> 18 ret = method(self, *s, **kw)
19 setattr(self, attrname, ret)
File /opt/homebrew/lib/python3.13/site-packages/irods/pool.py:117, in Pool.get_connection(self)
116 except KeyError:
--> 117 conn = Connection(self, self.account)
118 new_conn = True
File /opt/homebrew/lib/python3.13/site-packages/irods/connection.py:83, in Connection.__init__(self, pool, account)
82 self._client_signature = None
---> 83 self._server_version = self._connect()
84 self._disconnected = False
File /opt/homebrew/lib/python3.13/site-packages/irods/connection.py:365, in Connection._connect(self)
364 # Server responds with version
--> 365 version_msg = self.recv()
367 if neg_result == USE_SSL:
File /opt/homebrew/lib/python3.13/site-packages/irods/connection.py:184, in Connection.recv(self, into_buffer, return_message, acceptable_errors)
183 self.release(True)
--> 184 raise NetworkException("Could not receive server response")
185 if isinstance(return_message, list):
NetworkException: Could not receive server response
Reactions are currently unavailable