Skip to content

Releases: neighborhoods/kojo

Fix reschedule crashed Jobs race condition

04 Mar 18:47
27643c4
Compare
Choose a tag to compare
  • Tolerating the exception and release the lock for the time being until the Models behavior can be redesigned.

Kill parent and shutdown on Redis \Throwable

21 Feb 19:27
7f2cc3c
Compare
Choose a tag to compare

Kill the parent Worker (Job) Process when the Redis Watchdog Process encounters a Redis \Throwable and shutdown the Redis Watchdog process.

In the future it would be good to send a SIGUSR to the parent Worker Process to indicate that the Redis Watchdog Process was registered and it was safe for the Worker Process to proceed using the distributed mutex subsystem.

Remove remaining kojospace notices

21 Feb 15:10
2899a4c
Compare
Choose a tag to compare

Leverage ErrorException to add fork failure context

15 Feb 21:24
ae4b303
Compare
Choose a tag to compare
  • whitespace
  • try/catch fork syscall
  • attach ErrorException to Forked Exception
  • update runtime exception interface
  • Exit Server Process if a Root Process cannot be added as a child.
  • Remove Server Alarm Process Type.
  • Remove Server Fill Process Type.
  • Add inspection suppression - the error handler throws this.
  • Add Process exit debug log event.

Fixes to signal handling, updates to logging, add error handler, handle fork fault (OOM), disable signal buffering for non-reactive Procs

06 Feb 21:44
7228b58
Compare
Choose a tag to compare
  • cleanup bin/kojo
  • create and use an aggressive error handler for kojo space
  • restore to VM error handler for user space
  • update kojo container builder to comply with symfony deprecations
  • make Mucha happy with newlines and some whitespace updates
  • remove wait counting
  • remove block and unblock
  • update many log levels from info to debug
  • remove pcntl_sigwaitinfo
  • expose toggling signal buffering on and off
  • catch and gracefully handle fork faults
  • add a Forked Exception
  • disable signal buffer for non-reactive processes
  • catch a signal processor throwable

Fix DB schema commands

22 Jan 20:52
a99b358
Compare
Choose a tag to compare

Improve Throwable Logging

16 Jan 22:44
8bc8243
Compare
Choose a tag to compare
  • Catch \Throwables instead of Exceptions.
  • Use the \Throwable message as the logged message.
  • Use the \Throwable __toString method as the logged context.
  • Deprecate Logger\FormatterInterface::getFormattedThrowableMessage.

Gracefully handle existing RDBMS custom types during kōjō setup and teardown

10 Jan 21:37
6ce484f
Compare
Choose a tag to compare

(custom types means user-defined enums, domains, etc)

JSON Serialized Log Context

26 Dec 19:25
766ea1d
Compare
Choose a tag to compare
$this->getApiV1WorkerService()->getLogger()->notice('MESSAGE', ['w00t!', 'p00t'=>'!']);

produces

{
  "time": "Fri, 21 Dec 18 22:13:17.905085 UTC",
  "level": "notice",
  "process_id": "793",
  "process_path": "\/server[781]\/root[785]\/job[793]",
  "message": "MESSAGE",
  "context": {
    "0": "w00t!",
    "p00t": "!"
  },
  "context_json_last_error": 0
}

whilst

$this->getApiV1WorkerService()->getLogger()->notice('MESSAGE', [NAN]);

produces

{
  "time": "Fri, 21 Dec 18 21:45:26.754997 UTC",
  "level": "notice",
  "process_id": "742",
  "process_path": "\/server[734]\/root[738]\/job[742]",
  "message": "MESSAGE",
  "context": [
    
  ],
  "context_json_last_error": 7
}

Optimized server and worker process pool strategies

12 Dec 23:01
129b15a
Compare
Choose a tag to compare
  • Optimized server and worker process pool strategies.