Skip to content

Releases: AliceO2Group/Control

v0.17.2

30 Oct 09:41
@teo teo
Compare
Choose a tag to compare

This is a patch release that works around an issue with aliswmod delaying task launch. It also improves the machine id source for the unique task/environment ID generator.

  • [common] Acquire machine-id for Sonyflake generator
  • [executor] Increase gRPC dial timeout to workaround slow aliswmod issue

v0.17.1

13 Oct 12:20
@teo teo
Compare
Choose a tag to compare

This is a patch release that fixes a crash when running the core in certain types of container.

  • [common] Ensure a machine ID is always passed to the uid generator

v0.17.0

12 Oct 12:20
@teo teo
Compare
Choose a tag to compare

This release brings numerous reliability and integration improvements. Important user-facing changes include shortened Environment and Task ID strings, and richer InfoLogger output. This release also includes a preview of walnut, the AliECS workflow administration and linting utility, which provides validation of AliECS workflow configuration files and conversion of DPL dumps into AliECS workflow and task templates.

  • Log output improvements:

    • [common] Default InfoLogger role field to detected hostname
    • [common] Pass correct username to IL
    • [common] Ensure a default rolename is always passed to IL
    • [common] Set IL level for all messages
    • [core][executor] Update logger facility field
    • [core] Always set system to FLP for controlled tasks
    • [core] Override system for O2_ROLE/O2_SYSTEM env vars passed to tasks
    • [core] Set less relevant messages to Trace severity
    • [core] Push envId as partition in core
  • Short IDs:

    • [core] Environment ID is now a 20-char xid vs. 36 for earlier UUID
    • [core] Task ID is now a xid
    • [core] Executor ID is now a xid
    • [core] MesosCommand ID is now a xid
    • [core] Use sony/sonyflake via indigo for short environment IDs
    • [core] Use short UID for task ID and executor ID
    • [coconut] Adapt task id table for short UID
  • Miscellaneous improvements:

    • [build] Ensure we build a true static binary
    • [coconut] Fix documentation string for coconut repo default-revision
    • [core] Remove obsolete locking in server.go
    • [core] Clarify naming of some task slices/maps in scheduler.go
    • [core] Adjust executor name string
    • [executor] Ensure we always have a PID we can use to kill a task
    • [executor] Workaround for os.user.GroupIds unavailable with !osusergo
  • New documentation formatter (Mkdocs):

    • [build] Minor make doc/docs improvement
    • [misc] Mkdocs stub
    • [misc] Rebuild coconut documentation
    • [misc] Split peanut docs from OCC
    • [misc] Update documentation TOC
    • [misc] Update deployment instructions
    • [misc] Fix coconut env create documentation
    • [misc] Fix template list documentation
    • [misc] Update doc nav
    • [misc] Update documentation
    • [misc] Trash all Minimesos and DCOS stuff
    • [misc] Update running and development instructions
    • [misc] Update README
    • [misc] Add FAQ page stub
    • [misc] Begin AliECS Handbook with user-oriented documentation
    • [misc] Point to ControlWorkflows readme in mkdocs.yml

v0.16.0

20 Aug 16:37
@teo teo
Compare
Choose a tag to compare

This release brings a major new feature, hook tasks. A hook task is any stateless process (e.g. a Linux shell command) that can be run synchronously with the environment state machine, in response to an event and/or as a condition for completing a transition. It also adds support for disabling portions of the workflow tree when creating an environment, some user interface improvements in coconut, as well as support for the O² Configuration library in the OCC library.

  • Support for hook tasks:

    • [common] controlmode.String should not have ptr receiver
    • [core] New MesosCommand_TriggerHook
    • [core] Support for loading hook definitions from workflow template
    • [core] MesosCommand_TriggerHook handling
    • [core] task.Manager.TriggerHook implementation
    • [core] Tie hooks to environment state machine triggers
    • [core] Better error output on failed MesosCommandResponse
    • [core] Fix timeout representation
    • [core] Improve commandqueue error handling
    • [core] Timeout support in task.Task
    • [core] Improve error output, controlmode representation, GetRoles lock
    • [core] Handle hooks in scheduler
    • [core] Hook timeout support and hook handling fixes in environment
    • [executor] New HookTask + BasicTask refactor
    • [executor] MesosCommand_TriggerHook handling
    • [executor] Refactor taskCmd lifetime for basic+hooks
    • [executor] Add basic/hook task timeout support via context
    • [executor] Implement triggering of hook tasks
  • Support for launch-time role disabling:

    • [core] Add support for enabling/disabling roles at deployment time
    • [core] Make iteratorRange/iteratorRole copyable
  • coconut interface improvements:

    • [coconut] Accept lowercase event names as well as short start/stop
    • [coconut] Support for --nospinner flag
  • Configuration library support in OCC library:

    • [occ] Fill configuration ptree with local file
    • [occ][OCTRL-295] Improve code documentation of PR#156

v0.15.0

27 Jul 13:07
@teo teo
Compare
Choose a tag to compare

This release brings initial integration of ODC (the process control component of the O²/EPN cluster), support for pushing component configuration to controlled tasks as boost::property_tree::ptree as well as major improvements to process end of life management. It also exposes the PIDs of all running tasks in the GetTasks RPC call.

  • ODC integration:

    • [build] Add o2-aliecs-odc-shim to Makefile
    • [odcshim] Initial commit for ODC shim task
    • [odcshim] Update to newest ODC protofile
    • [odcshim] Use RUN instead of lower level API + refactor OCC handler
    • [odcshim] Do SetProperties before Configure
    • [odcshim] Topology provided as env var + implement remaining commands
    • [odcshim] AliECS<->ODC state conversion facilities
    • [odcshim] Correctly report ODC state
  • Configuration as ptree:

    • [core] Add ptree marker to properties map with ToPtree function
    • [core] Add support for syntax spec in ToPtree template function
    • [core] Add support for timestamp-less payloads in confsys
    • [occ] Process incoming ptree key as ptree
    • [occ] Correctly graft payload ptree
  • Process end of life:

    • [core] Fix deadlock caused from state.Event
    • [core] Make state.Event unbuffered channel
    • [executor] Do a SIGTERM before the SIGKILL
    • [executor] Handle Kill concurrently
    • [executor] Run SIGKILL immediately after a failed SIGTERM
    • [executor] Fix SIGSEV
    • [executor] kill process using PID from OCC
    • [executor] Update proto to export PID
    • [executor] use OCC pid to kill task on ERROR
    • [executor] Set kill timeout to 3 seconds
    • [occ] Export PID to protobuf
  • Expose PID in API:

    • [coconut] Print PID on GetTasks
    • [common] Create TaskMessage event
    • [core] Handle TaskMessage in scheduler
    • [core] Extend role with GetTaskPID
    • [core] Export Task PID to API
    • [core] Move PID to task.Task from role
    • [executor] Send TaskMessage with PID to scheduler
  • Miscellaneous:

    • [coconut] Regenerate coconut documentation
    • [coconut] Adapt config import to new behavior of GetLatestTimestamp
    • [core] Set periodic output severity to Trace
    • [core] Export GetConfig function in all template environments
    • [executor] Handle HEARTBEAT event
    • [peanut] Simulate run number

v0.14.91

24 Jul 13:04
@teo teo
Compare
Choose a tag to compare
v0.14.91 Pre-release
Pre-release

This release brings initial integration of ODC (the process control component of the O²/EPN cluster), support for pushing component configuration to controlled tasks as boost::property_tree::ptree as well as major improvements to process end of life management. It also exposes the PIDs of all running tasks in the GetTasks RPC call.

  • ODC integration:

    • [build] Add o2-aliecs-odc-shim to Makefile
    • [odcshim] Initial commit for ODC shim task
    • [odcshim] Update to newest ODC protofile
    • [odcshim] Use RUN instead of lower level API + refactor OCC handler
    • [odcshim] Do SetProperties before Configure
    • [odcshim] Topology provided as env var + implement remaining commands
    • [odcshim] AliECS<->ODC state conversion facilities
    • [odcshim] Correctly report ODC state
  • Configuration as ptree:

    • [core] Add ptree marker to properties map with ToPtree function
    • [core] Add support for syntax spec in ToPtree template function
    • [core] Add support for timestamp-less payloads in confsys
    • [occ] Process incoming ptree key as ptree
    • [occ] Correctly graft payload ptree
  • Process end of life:

    • [executor] Do a SIGTERM before the SIGKILL
    • [executor] Handle Kill concurrently
    • [executor] Run SIGKILL immediately after a failed SIGTERM
    • [executor] Fix SIGSEV
    • [executor] kill process using PID from OCC
    • [executor] Update proto to export PID
    • [executor] use OCC pid to kill task on ERROR
    • [occ] Export PID to protobuf
  • Expose PID in API:

    • [coconut] Print PID on GetTasks
    • [common] Create TaskMessage event
    • [core] Handle TaskMessage in scheduler
    • [core] Extend role with GetTaskPID
    • [core] Export Task PID to API
    • [core] Move PID to task.Task from role
    • [executor] Send TaskMessage with PID to scheduler
  • Miscellaneous:

    • [coconut] Regenerate coconut documentation
    • [coconut] Adapt config import to new behavior of GetLatestTimestamp
    • [core] Set periodic output severity to Trace
    • [core] Export GetConfig function in all template environments
    • [executor] Handle HEARTBEAT event
    • [peanut] Simulate run number

v0.14.90

23 Jul 09:34
@teo teo
Compare
Choose a tag to compare
v0.14.90 Pre-release
Pre-release

This release brings initial integration of ODC (the process control component of the O²/EPN cluster), support for pushing component configuration to controlled tasks as boost::property_tree::ptree as well as major improvements to process end of life management.

  • ODC integration:

    • [build] Add o2-aliecs-odc-shim to Makefile
    • [odcshim] Initial commit for ODC shim task
    • [odcshim] Update to newest ODC protofile
    • [odcshim] Use RUN instead of lower level API + refactor OCC handler
    • [odcshim] Do SetProperties before Configure
    • [odcshim] Topology provided as env var + implement remaining commands
    • [odcshim] AliECS<->ODC state conversion facilities
    • [odcshim] Correctly report ODC state
  • Configuration as ptree:

    • [core] Add ptree marker to properties map with ToPtree function
    • [core] Add support for syntax spec in ToPtree template function
    • [core] Add support for timestamp-less payloads in confsys
    • [occ] Process incoming ptree key as ptree
    • [occ] Correctly graft payload ptree
  • Process end of life:

    • [executor] Do a SIGTERM before the SIGKILL
    • [executor] Handle Kill concurrently
    • [executor] Run SIGKILL immediately after a failed SIGTERM
    • [executor] Fix SIGSEV
    • [executor] kill process using PID from OCC
    • [executor] Update proto to export PID
    • [executor] use OCC pid to kill task on ERROR
    • [occ] Export PID to protobuf
  • Miscellaneous:

    • [coconut] Regenerate coconut documentation
    • [core] Set periodic output severity to Trace
    • [core] Export GetConfig function in all template environments
    • [executor] Handle HEARTBEAT event
    • [peanut] Simulate run number

v0.14.4

29 Jun 14:57
@teo teo
Compare
Choose a tag to compare

This patch release brings bug fixes, plus a working preview of the event stream feature with the goal of notifying the GUI of state changes. The gRPC dependency is also bumped for use with newly patched gRPC (alisw-grpc+v1.30.0-alice1).

  • Event stream:

    • [core] create message Event stream
    • [core] update protos with Events
    • [core] create Subscribe call handler
    • [core] create core Events
  • Miscellaneous:

    • [build] Bump gRPC dependency
    • [common] Update go-git dependency
    • [core] Change warnings about repo access to debug
    • [peanut] tview deadlock
    • [peanut] go.mod inform for tview deadlock issue

Nota bene as of v0.14.2: if you have a habit of running the AliECS core with --veryVerbose, your debug output will suddenly become noisier, including repetitive periodic output. InfoLogger is not affected by this change. It is safe to drop the --veryVerbose flag to suppress this new output if you're not debugging specific core internals.

v0.14.3

15 Jun 08:45
@teo teo
Compare
Choose a tag to compare

This patch release implements a force destroy feature, with the goal of disbanding a running environment even if its state doesn't allow further transitions because of an unresponsive task.

  • Environment force destroy:
    • [coconut] add force flag in environment destroy
    • [core] protos add force option in DestroyEnvironmentRequest
    • [core] handle force destroy request
    • [executor] add timeout to OCC transition
    • [executor] set timeout to 15s for OCC transition

Nota bene as of v0.14.2: if you have a habit of running the AliECS core with --veryVerbose, your debut output will suddenly become noisier, including repetitive periodic output. InfoLogger is not affected by this change. It is safe to drop the --veryVerbose flag to suppress this new output if you're not debugging specific core internals.

v0.14.2

12 Jun 10:23
@teo teo
Compare
Choose a tag to compare

This patch release fixes an issue which could cause incomplete channel configuration to be pushed in some situations. It also includes a performance improvement in the executor when launching tasks, and other minor fixes.

  • Executor performance:

    • [executor] Make task launch asynchronous
  • Channel configuration:

    • [core] Fix template processing of channel targets
  • Miscellaneous:

    • [core] Enable TRACE level logging if --veryVerbose
    • [occ] Make deserialization of transition requests more robust

Nota bene: if you have a habit of running the AliECS core with --veryVerbose, your debut output will suddenly become noisier, including repetitive periodic output. InfoLogger is not affected by this change. It is safe to drop the --veryVerbose flag to suppress this new output if you're not debugging specific core internals.