Fixes * Fix lifecycle-related code errors when handling results of batch-mode tasks ([210](https://github.com/lablup/backend.ai-agent/issues/210)) * Fix instability caused by stat-synchronizer processes under heavy loads by collecting statistics periodically only ([212](https://github.com/lablup/backend.ai-agent/issues/212)) * Apply batching when producing "kernel_stat_sync" events to reduce manager loads and increase timeout for caching stats in Redis from 30 seconds to 2 minutes ([213](https://github.com/lablup/backend.ai-agent/issues/213))
19.09.23
---------------------
Fixes * Remove unwanted empty key while setting etcd config with nested dict. ([275](https://github.com/lablup/backend.ai-manager/issues/275)) * Set correct scaling group name during session scheduling. ([276](https://github.com/lablup/backend.ai-manager/issues/276)) * Destroying sessions now returns periodically collected statistics instead of last-moment statistics ([279](https://github.com/lablup/backend.ai-manager/issues/279)) * Apply batching to statistics synchroniztion to minimize time used inside DB transactions by batching and splitting transaction blocks ([280](https://github.com/lablup/backend.ai-manager/issues/280)) * Reduce potential DB transaction deadlocks during scheduling of many (~hundreds) pending sessions ([281](https://github.com/lablup/backend.ai-manager/issues/281))
19.09.22
---------------------
Fixes * Check closing of zmq sockets in code runner to avoid writing on invalid/closed sockets and indefinite waiting for the krunner execution results ([205](https://github.com/lablup/backend.ai-agent/issues/205)) * Introduce "already-terminated" reason for `kernel_terminated` event ([206](https://github.com/lablup/backend.ai-agent/issues/206))
19.09.21
---------------------
Fixes * Ensure unhandled exceptions in aiozmq.rpc handlers to be always msgpack-serializable to keep the agent daemon logs clean ([199](https://github.com/lablup/backend.ai-agent/issues/199)) * Add the force option when calling Docker's container deletion API to avoid rare "stop before removal" errors even when we try deletion after receiving the termination event ([200](https://github.com/lablup/backend.ai-agent/issues/200)) * Keep the docker event processor running regardless of unexpected exceptions in the middle ([202](https://github.com/lablup/backend.ai-agent/issues/202)) * Use destroy() of ZeroMQ context objects instead of term() to stabilize container removals ([203](https://github.com/lablup/backend.ai-agent/issues/203)) * Delete auto-created/temporary volumes with when deleting containers ([204](https://github.com/lablup/backend.ai-agent/issues/204))
Miscellaneous * Adopt towncrier for changelog management ([201](https://github.com/lablup/backend.ai-agent/issues/201))
19.09.20
---------------------
* FEATURE: Place bootstrap script upon session creation (174) * FIX: Update the restricted/reserved list of service port numbers, allowing privileged TCP ports to be used by the kernel image authors. (195)
19.09.19
---------------------
* HOTFIX: Regression in a majority of kernels due to a missing `self.loop` initialization.