Bug 57345 - Exam mode failes - ConnectionResetError: [Errno 104] - Connection to Veyon WebAPI Server (UCS@school Veyon Proxy) failed
Summary: Exam mode failes - ConnectionResetError: [Errno 104] - Connection to Veyon We...
Status: RESOLVED DUPLICATE of bug 57604
Alias: None
Product: UCS@school
Classification: Unclassified
Component: UMC - Exam mode
Version: UCS@school 5.0
Hardware: Other Linux
: P5 normal
Target Milestone: ---
Assignee: UCS@school maintainers
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-27 11:27 CEST by Mirac Erdemiroglu
Modified: 2024-09-20 12:38 CEST (History)
2 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 5: Major Usability: Impairs usability in key scenarios
Who will be affected by this bug?: 1: Will affect a very few installed domains
How will those affected feel about the bug?: 5: Blocking further progress on the daily work
User Pain: 0.143
Enterprise Customer affected?:
School Customer affected?: Yes
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2024041721000145, 2024090521002228
Bug group (optional):
Customer ID:
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mirac Erdemiroglu univentionstaff 2024-05-27 11:27:32 CEST
UCS: 5.0-6 errata904
Installed: cups=2.2.1 dhcp-server=12.0 prometheus-node-exporter=2.0.1 radius=5.0 samba4=4.16 self-service=5.0 squid=3.5 ucsschool=5.0 v4 4.4/ucsschool-veyon-proxy=4.7.4.14-0
Upgradable:


In this case, Exam Mode is simply terminated or canceled due to a connection problem with the Veyon. This does not help in this case, as it is not clear to teachers in the UMC why it was canceled.
Instead of throwing a traceback, I would like to see, for example, a pop-up in which the user decides whether to "try again", whereby this button only becomes clickable after x seconds.
clickable or whether to continue without monitoring or whether to cancel.
I also think that it should be left to the user to decide whether they want to continue without monitoring or whether
the teacher wants to cancel. In this case, the module decides whether to cancel.



17.05.24 16:05:14.979  MODULE      ( PROCESS ) : component:72  Vorbereiten der Raumeinstellungen
17.05.24 16:05:14.979  MODULE      ( PROCESS ) : _thread:763  Acquire room: cn=XX-Testraum2,cn=raeume,cn=groups,ou=XX,dc=unterricht,dc=univention,dc=de
17.05.24 16:05:14.985  MODULE      ( ERROR   ) : Connection to Veyon WebAPI Server (UCS@school Veyon Proxy) failed.
17.05.24 16:05:14.987  MODULE      ( ERROR   ) : Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 385, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 381, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1356, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Die Verbindung wurde vom Kommunikationspartner zurückgesetzt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 368, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 692, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 385, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 381, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1356, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Die Verbindung wurde vom Kommunikationspartner zurückgesetzt'))
Comment 8 Mirac Erdemiroglu univentionstaff 2024-09-05 15:37:15 CEST
Request: room_acquire

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 385, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 381, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1356, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 368, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 387, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 307, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=11080): Read timed out. (read timeout=5.0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ucsschool/veyon_client/client.py", line 165, in test_connection
    requests.head("{}/feature".format(self._url), timeout=self._ping_timeout)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 101, in head
    return request('head', url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 535, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 648, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=11080): Read timed out. (read timeout=5.0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/univention/management/console/modules/computerroom/__init__.py", line 406, in _room_acquire
    self._computerroom.veyon_client.test_connection()
  File "/usr/lib/python3/dist-packages/ucsschool/veyon_client/client.py", line 167, in test_connection
    raise VeyonConnectionError("No response from WebAPI Server ({}).".format(self._url))
ucsschool.veyon_client.models.VeyonConnectionError: No response from WebAPI Server (http://localhost:11080/api/v1).
Comment 9 Jan-Luca Kiok univentionstaff 2024-09-20 12:38:21 CEST
As stated in some of the comments this error can be addressed by decoupling exam mode and computerroom functionality. This was recently implemented and released via Bug #57604, so I am closing this issue as a duplicate.

Feel free to re-open or clone this bug if the error still persists.

*** This bug has been marked as a duplicate of bug 57604 ***