Run manually for releases

Build: #8 was successful Manual run by daryl herzmann

Build result summary

Details

Completed
Queue duration
3 minutes
Duration
2 minutes
Labels
None
Agent
Default Agent
Revision
369a04d751583c7e68596fa6e74e9def30530ea7
Total tests
475
Successful since
#1 ()

Tests

Code commits

Author Commit Message Commit date
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 0dd051fa7e3da230b67ca9de799f51a976963569 OF-2473: Ensure throwables are not lost
If the implementation of the `@OnWebSocketError` annotated methods throws an exception, this exception should not be lost.
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.
Guus der Kinderen Guus der Kinderen fda04032bcc2c796dad07e3be979d011fa879c33 OF-2479: Allow clients that do websockets without the required XMPP framing
This basically is a hack to get Tsung to connect to Openfire of websockets.

The functionality introduced here is switched off by default. If enabled, it replaces `stream` element names with `open` and `close` where appropriate, to conform to 'XMPP framing' as described in https://datatracker.ietf.org/doc/html/rfc7395#section-3.3

Jira issues

IssueDescriptionStatus
2 more issues…
Unknown Issue TypeOF-1373Could not obtain issue details from Jira
Unknown Issue TypeOF-2469Could not obtain issue details from Jira
Unknown Issue TypeOF-2470Could 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

Shared artifacts

Artifact File size
.rpm files 43 MB