Skip to content

Refresh and simplify

Luc Everse requested to merge odds-and-ends into development

Description

The bulk of these changes stem from March 2021. I don't have the commit history anymore and restoring it would take a lot of git add -p and time.

As for the UI, I think git subtree is overkill for a repository such as the UI's.

Changes

  • Updated Gradle from 6.6 to 7.3.
    • Fixed breakages and usages of deprecated interfaces.
  • Removed old and should-have-been-deprecated constructors from Message.
  • Most processing steps within the worker can now throw InterruptedExceptions directly, allowing for quick and error-less interruptions.
    • Updated existing components to not tunnel the exception anymore.
  • The checker routine no longer swallows analyzer exceptions.
  • Worker logging is synchronized. This was causing crashes extremely rarely.
  • The worker Python detector now also indicates the path to the found Python executables.
  • Exceptions raised within jobs now include the full stack trace and not just the message.
  • Worker shutdowns through messages now happen within three seconds (down from two minutes).
  • The CORS patch filter now also fires if Access-Control-Request-Headers is not present.
  • Sending messages from the core to a worker is now thread-safe.
  • Killing all workers now happens in parallel to speed up shutdown.

Additions

  • AuTA.js and the UI are now included in this repository. The old repositories should be archived now.
    • The UI is automatically built and packaged as part of the core jar.
    • These have also been updated, with improved worker management (viewing logs is a single click, just like canceling or outright purging the worker).
  • An in-worker watchdog that terminates the worker if no ping response arrives within a set interval.
  • Submissions indicate whether their job was canceled.
  • Users can request the datetime their current token will expire.
  • Worker ping and cancellation messages contain additional metadata:
    • Pings indicate when the next ping should arrive.
    • Cancellations can request the cancellation of a specific job, avoiding race conditions.
  • An API endpoint, /api/v1/worker/events, that sends server-sent events with interesting happenings around workers. The UI uses these to update the Workers page, instead of hammering the getWorkers endpoint slightly faster than twice per second.

Test and Review

To be filled in by the reviewers

  • All of the methods are commented to expectation

  • The methods are tested to satisfaction

  • There are no unnecessary files present in the MR

  • The continuous integration has no problems with the MR

  • The MR is filled in as requested (including labels, milestones, and reviewers)

  • The documentation is up-to-date

  • All nullable parameters are marked as such

Edited by Luc Everse

Merge request reports