Build: #38 was successful Scheduled with changes by Guus der Kinderen

Build result summary

Details

Completed
Queue duration
22 minutes
Duration
1 minute
Labels
None
Agent
Default Agent
Revision
57f909ffe32b1e5d1986e411c3c290027a476595
Total tests
475
Successful since
#1 ()

Tests

Code commits

Author Commit Message Commit date
Guus der Kinderen Guus der Kinderen 57f909ffe32b1e5d1986e411c3c290027a476595 OF-2467: Do not reload admin page when changing MUC affiliation dropdown
The admin console page that allows you to change MUC room permissions / affiliations has a drop-down box that lists all possible affiliations. Whenever that drop-down is changed, the page used to reload, causing all modifications to be lost. This was done to show or hide the 'nickname' input field.

This commit shows/hides that field with javascript magic, removing the need for a page reload.
Guus der Kinderen Guus der Kinderen 3071be44badf1fee4830ab9ab64d3a71328f092f OF-2466: Groups presented in MUC room affiliation page should be ordered
Guus der Kinderen Guus der Kinderen 369a04d751583c7e68596fa6e74e9def30530ea7 OF-2480: Ensure that admin console starts after setup
During setup, the CertificateStore manager is started briefly, to ensure that it contains at least a minimum viable certificate. After this has been established, it is shut down again.

This brief occurrence starts an entity that watches the file system for changes (OF-1373: Allow certificate changes to be applied without a restart). Having this watcher running prevents the admin console webserver from being restarted quickly, causing the admin console to be unavailable for about half a minute.

With the changes in this commit, the initial start of CertificateStoreManager will now happen without the 'watching' being started. This prevents issues with reloading the web server.
Guus der Kinderen Guus der Kinderen 31aa3d756032d934ebdd08afe806ad32b3bf05e9 OF-2473: Guard access to websocket session state
By having more asynchronous operations being introduced as part of OF-2473, the need to guard state increased. This commit adds some mutexes.
Guus der Kinderen Guus der Kinderen 5470afb4efca55a3f287e778555e15f0792ab3f5 OF-2473: Prevent websocket deadlock
Jetty's websocket implementation invokes `@OnWebSocketError` and `@OnWebSocketClose` annotated methods when certain erroneous conditions occur. These invocations happen synchronously.

As a result, a 'close' operation is called synchronously to the processing of the original request, which can happen under guard of a mutex. This leads to the 'close' implementation being called while a mutex is held that is intended to be held only while inbound data is being processed. This has lead to deadlocks.

An example scenario is when a websocket request arrives that asks to close the connection. Sometimes (presumably if the per immediately disconnects the connection, rather than waiting for an answer), returning a response fails ('EOF'). This then triggers error handling.

This commit makes the `@OnWebSocketError` and `@OnWebSocketClose` methods be asynchronous, to ensure that its processing is decoupled from the inbound data that might have tirggered their invocation.

Jira issues

IssueDescriptionStatus
2 more issues…
Unknown Issue TypeOF-1373Could not obtain issue details from Jira
Unknown Issue TypeOF-2466Could not obtain issue details from Jira
Unknown Issue TypeOF-2467Could not obtain issue details from Jira
Unknown Issue TypeOF-2472Could not obtain issue details from Jira
Unknown Issue TypeOF-2473Could not obtain issue details from Jira