diff --git a/CHANGELOG b/CHANGELOG
index a5bb8d5..8ce9ee6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,5 @@
-Release Notes - Mesos - Version 1.9.0 (WIP)
--------------------------------------------
+Release Notes - Mesos - Version 1.9.0
+-------------------------------------
 This release contains the following highlights:
 
   * Security
@@ -43,6 +43,194 @@
     NOTE: This new overload is only available when libprocess is compiled
     with `--enable-ssl`.
 
+ Unresolved Critical Issues:
+  * MESOS-9889 - Master CPU high due to unexpected foreachkey behaviour in Master::__reregisterSlave
+  * MESOS-9697 - Release RPMs are not uploaded to bintray
+  * MESOS-9579 - ExecutorHttpApiTest.HeartbeatCalls is flaky.
+  * MESOS-9536 - Nested container launched with non-root user may not be able to write to its sandbox via the environment variable `MESOS_SANDBOX`
+  * MESOS-9520 - IOTest.Read hangs on Windows
+  * MESOS-9500 - spark submit with docker image on mesos cluster fails.
+  * MESOS-9426 - ZK master detection can become forever pending.
+  * MESOS-9393 - Fetcher crashes extracting archives with non-ASCII filenames.
+  * MESOS-9365 - Windows - GET_CONTAINERS API call causes the Mesos agent to fail
+  * MESOS-9355 - Persistence volume does not unmount correctly with wrong artifact URI
+  * MESOS-9352 - Data in persistent volume deleted accidentally when using Docker container and Persistent volume
+  * MESOS-9053 - Network ports isolator can falsely trigger while destroying containers.
+  * MESOS-9006 - The agent's GET_AGENT leaks resource information when using authorization
+  * MESOS-8877 - Docker container's resources will be wrongly enlarged in cgroups after agent recovery
+  * MESOS-8840 - `cpu.cfs_quota_us` may be accidentally set for command task using docker during agent recovery.
+  * MESOS-8803 - Libprocess deadlocks in a test.
+  * MESOS-8679 - If the first KILL stuck in the default executor, all other KILLs will be ignored.
+  * MESOS-8608 - RmdirContinueOnErrorTest.RemoveWithContinueOnError fails.
+  * MESOS-8257 - Unified Containerizer "leaks" a target container mount path to the host FS when the target resolves to an absolute path
+  * MESOS-8256 - Libprocess can silently deadlock due to worker thread exhaustion.
+  * MESOS-8096 - Enqueueing events in MockHTTPScheduler can lead to segfaults.
+  * MESOS-8038 - Launching GPU task sporadically fails.
+  * MESOS-7971 - PersistentVolumeEndpointsTest.EndpointCreateThenOfferRemove test is flaky
+  * MESOS-7911 - Non-checkpointing framework's tasks should not be marked LOST when agent disconnects.
+  * MESOS-7748 - Slow subscribers of streaming APIs can lead to Mesos OOMing.
+  * MESOS-7721 - Master's agent removal rate limit also applies to agent unreachability.
+  * MESOS-7566 - Master crash due to failed check in DRFSorter::remove
+  * MESOS-7386 - Executor not cleaning up existing running docker containers if external logrotate/logger processes die/killed
+  * MESOS-6285 - Agents may OOM during recovery if there are too many tasks or executors
+  * MESOS-5989 - Libevent SSL Socket downgrade code accesses uninitialized memory / assumes single peek is sufficient.
+
+All Resolved Issues:
+
+** Bug
+  * [MESOS-2842] - Master crashes when framework changes principal on re-registration
+  * [MESOS-5804] - ExamplesTest.DynamicReservationFramework is flaky
+  * [MESOS-6382] - Add option to enable parallel test runner for cmake builds
+  * [MESOS-6605] - configure looks for wrong header file for elfio
+  * [MESOS-8968] - Wire `UPDATE_QUOTA` call.
+  * [MESOS-9353] - libprocess triggers deprecation warnings when built against openssl 1.1.
+  * [MESOS-9395] - Check failure on `StorageLocalResourceProviderProcess::applyCreateDisk`.
+  * [MESOS-9482] - Resource provider manager can crash on invalid data from resource providers
+  * [MESOS-9560] - ContentType/AgentAPITest.MarkResourceProviderGone/1 is flaky
+  * [MESOS-9594] - Test `StorageLocalResourceProviderTest.RetryRpcWithExponentialBackoff` is flaky.
+  * [MESOS-9609] - Master check failure when marking agent unreachable
+  * [MESOS-9616] - `Filters.refuse_seconds` declines resources not in offers.
+  * [MESOS-9667] - Check failure when executor for task using resource provider resources subscribes before agent is registered
+  * [MESOS-9698] - DroppedOperationStatusUpdate test is flaky
+  * [MESOS-9707] - Calling link::lo() may cause runtime error
+  * [MESOS-9711] - Avoid shutting down executors registering before a required resource provider.
+  * [MESOS-9712] - StorageLocalResourceProviderTest.CsiPluginRpcMetrics is flaky.
+  * [MESOS-9719] - Test `AgentFailoverHTTPExecutorUsingResourceProviderResources` is flaky.
+  * [MESOS-9727] - Heartbeat calls from executor to agent are reported as errors
+  * [MESOS-9733] - Random sorter generates non-uniform result for hierarchical roles.
+  * [MESOS-9750] - Agent V1 GET_STATE response may report a complete executor's tasks as non-terminal after a graceful agent shutdown
+  * [MESOS-9765] - Test `ROOT_CreateDestroyPersistentMountVolumeWithReboot` is flaky.
+  * [MESOS-9766] - /__processes__ endpoint can hang.
+  * [MESOS-9779] - `UPDATE_RESOURCE_PROVIDER_CONFIG` agent call returns 404 ambiguously.
+  * [MESOS-9782] - Random sorter fails to clear removed clients.
+  * [MESOS-9785] - Frameworks recovered from reregistered agents are not reported to master `/api/v1` subscribers.
+  * [MESOS-9786] - Race between two REMOVE_QUOTA calls crashes the master.
+  * [MESOS-9803] - Memory leak caused by an infinite chain of futures in `UriDiskProfileAdaptor`.
+  * [MESOS-9808] - libprocess can deadlock on termination (cleanup() vs use() + terminate())
+  * [MESOS-9811] - Don't use reverse DNS for hostname validation
+  * [MESOS-9831] - Master should not report disconnected resource providers.
+  * [MESOS-9835] - `QuotaRoleAllocateNonQuotaResource` is failing.
+  * [MESOS-9836] - Docker containerizer overwrites `/mesos/slave` cgroups.
+  * [MESOS-9852] - Slow memory growth in master due to deferred deletion of offer filters and timers.
+  * [MESOS-9854] - /roles endpoint should return both guarantees and limits.
+  * [MESOS-9856] - REVIVE call with specified role(s) clears filters for all roles of a framework.
+  * [MESOS-9861] - Make PushGauges support floating point stats.
+  * [MESOS-9870] - Simultaneous adding/removal of a role from framework's roles and its suppressed roles crashes the master.
+  * [MESOS-9875] - Mesos did not respond correctly when operations should fail
+  * [MESOS-9881] - StorageLocalResourceProviderTest.RetryOperationStatusUpdateAfterRecovery is flaky.
+  * [MESOS-9882] - Mesos.UpdateFrameworkV0Test.SuppressedRoles is flaky.
+  * [MESOS-9886] - RoleTest.RolesEndpointContainsConsumedQuota is flaky.
+  * [MESOS-9887] - Race condition between two terminal task status updates for Docker/Command executor.
+  * [MESOS-9888] - /roles and GET_ROLES do not expose roles with only static reservations
+  * [MESOS-9890] - /roles and GET_ROLES does not always expose parent roles.
+  * [MESOS-9893] - `volume/secret` isolator should cleanup the stored secret from runtime directory when the container is destroyed
+  * [MESOS-9894] - Mesos failed to build due to fatal error C1083 on Windows using MSVC.
+  * [MESOS-9895] - SlaveTest.DrainingAgentRejectLaunch is flaky
+  * [MESOS-9901] - jsonify uses non-standard mapping for protobuf map fields.
+  * [MESOS-9902] - Mesos failed to build due to error C2280 on windows with MSVC
+  * [MESOS-9906] - Libprocess tests hangs on arm
+  * [MESOS-9909] - Mesos agent crashes after recovery when there is nested container joins a CNI network
+  * [MESOS-9922] - MasterQuotaTest.RescindOffersEnforcingLimits is flaky
+  * [MESOS-9925] - Default executor takes a couple of seconds to start and subscribe Mesos agent
+  * [MESOS-9930] - DRF sorter may omit clients in sorting after removing an inactive leaf node.
+  * [MESOS-9934] - Master does not handle returning unreachable agents as draining/deactivated
+  * [MESOS-9935] - The agent crashes after the disk du isolator supporting rootfs checks.
+  * [MESOS-9952] - ExampleTest.DiskFullFramework is slow
+
+** Epic
+  * [MESOS-9534] - CSI Spec v1.0 Support.
+  * [MESOS-9784] - Client side SSL certificate verification in Libprocess.
+  * [MESOS-9795] - Support configurable /dev/shm and IPC namespace.
+
+** Improvement
+  * [MESOS-7258] - Provide scheduler calls to subscribe to additional roles and unsubscribe from roles.
+  * [MESOS-8456] - Allocator should allow roles to burst above guarantees but below limits.
+  * [MESOS-8789] - /roles and webui roles table should display distinct offered and allocated resources.
+  * [MESOS-9254] - Make SLRP be able to update its volumes and storage pools.
+  * [MESOS-9545] - Marking an unreachable agent as gone should transition the tasks to terminal state
+  * [MESOS-9618] - Display quota consumption in the webui.
+  * [MESOS-9640] - Add authorization support for `UPDATE_QUOTA` call.
+  * [MESOS-9668] - Add authorization support for the new `GET_QUOTA` call.
+  * [MESOS-9669] - Deprecate v0 quota calls.
+  * [MESOS-9695] - Remove the duplicate pid check in Docker containerizer
+  * [MESOS-9701] - Allocator's roles map should track reservations.
+  * [MESOS-9724] - Flatten the weighted shuffling in the random sorter.
+  * [MESOS-9758] - Take ports out of the GET_ROLES endpoints.
+  * [MESOS-9759] - Log required quota headroom and available quota headroom in the allocator.
+  * [MESOS-9760] - Decouple Docker runtime isolator manifest configuration from image provider
+  * [MESOS-9769] - Add direct containerized support for filesystem operations.
+  * [MESOS-9770] - Add no-new-privileges isolator.
+  * [MESOS-9771] - Mask sensitive procfs paths.
+  * [MESOS-9778] - Randomized the agents in the second allocation stage.
+  * [MESOS-9787] - Log slow SSL (TLS) peer reverse DNS lookup.
+  * [MESOS-9791] - Libprocess does not support server only SSL certificate verification.
+  * [MESOS-9799] - Adopt container file operations in secrets volumes.
+  * [MESOS-9802] - Remove quota role sorter in the allocator.
+  * [MESOS-9805] - Run cgroup subsystems before moving the target PID.
+  * [MESOS-9806] - Address allocator performance regression due to the addition of quota limits.
+  * [MESOS-9807] - Introduce a `struct Quota` wrapper.
+  * [MESOS-9812] - Add achievability validation for update quota call.
+  * [MESOS-9820] - Add `updateQuota()` method to the allocator.
+  * [MESOS-9833] - Introduce an agent flag for the default `/dev/shm` size
+  * [MESOS-9876] - Use geteuid to determine subprocess' user when launching task.
+  * [MESOS-9878] - Enable libprocess users to pass a custom SSL context when using Socket
+  * [MESOS-9900] - Include overlayfs upperdir in disk quota accounting.
+  * [MESOS-9908] - Introduce a new agent flag and support docker volume chown to task user.
+  * [MESOS-9917] - Store a role tree in the allocator.
+  * [MESOS-9932] - Removal of a role from the suppression list should be equivalent to REVIVE.
+
+** Task
+  * [MESOS-8486] - Webui should display role limits.
+  * [MESOS-9485] - Unit test for master operation authorization.
+  * [MESOS-9565] - Unit tests for creating and destroying persistent volumes in SLRP.
+  * [MESOS-9598] - Update GET `/quota` to return both guarantees and limits.
+  * [MESOS-9599] - Update `GET_QUOTA` to return both guarantees and limits.
+  * [MESOS-9600] - Deprecate `SET_QUOTA` and `REMOVE_QUOTA` calls in favor of `UPDATE_QUOTA`.
+  * [MESOS-9601] - Persist `QuotaConfig`s in the registry.
+  * [MESOS-9602] - Provide backward compatibility for old quota configurations.
+  * [MESOS-9603] - Add quota limits metrics.
+  * [MESOS-9627] - Test CSI v1 in SLRP unit tests.
+  * [MESOS-9699] - Pull in glog 0.4.0
+  * [MESOS-9710] - Add tests to ensure random sorter performs correct weighted sorting.
+  * [MESOS-9715] - Support specifying output file name for curl fetcher plugin
+  * [MESOS-9754] - Design doc for agent draining
+  * [MESOS-9757] - Design doc for container debug endpoint.
+  * [MESOS-9775] - Design doc for UCR shared memory.
+  * [MESOS-9788] - Configurable IPC namespace and shared memory in `namespaces/ipc` isolator
+  * [MESOS-9793] - Implement UPDATE_FRAMEWORK call in V0 API for C++/Java
+  * [MESOS-9809] - Use OpenSSL built-in functions for hostname validation
+  * [MESOS-9810] - Reject certificate-less ciphers when certificate verification is enabled
+  * [MESOS-9814] - Implement DrainAgent master/operator call with associated registry actions
+  * [MESOS-9816] - Add draining state information to master state endpoints
+  * [MESOS-9817] - Add minimum master capability for draining and deactivation states
+  * [MESOS-9818] - Implement minimal agent-side draining handler
+  * [MESOS-9821] - Agent kills all tasks when draining
+  * [MESOS-9822] - Agent recovery code for task draining
+  * [MESOS-9823] - Agent should modify status updates while draining
+  * [MESOS-9825] - Introduce an agent flag to disallow sharing the IPC namespace from the host.
+  * [MESOS-9826] - Set up `/dev/shm` in `filesystem/linux` isolator only when `namespaces/ipc` isolator is not enabled
+  * [MESOS-9827] - Introduce the configurable shm protobuf API.
+  * [MESOS-9828] - Document the IPC namespace and shm on UCR.
+  * [MESOS-9829] - Implement the container debug endpoint on slave/http.cpp
+  * [MESOS-9837] - Implement `FutureTracker` class along with helper functions.
+  * [MESOS-9839] - Implement `IsolatorTracker` class.
+  * [MESOS-9840] - Implement `LauncherTracker` class.
+  * [MESOS-9841] - Integrate `IsolatorTracker` and `LinuxLauncher` with Mesos containerizer.
+  * [MESOS-9842] - Implement tests for the `FutureTracker` class and for its helper functions.
+  * [MESOS-9845] - Add docs for automatic agent draining
+  * [MESOS-9846] - Update UI for agent draining
+  * [MESOS-9849] - Add support for per-role REVIVE / SUPPRESS to V0 scheduler driver.
+  * [MESOS-9853] - Update Docker executor to allow kill policy overrides
+  * [MESOS-9860] - Agent should erase DrainInfo when draining complete
+  * [MESOS-9862] - Agent should fail task launches while draining
+  * [MESOS-9871] - Expose quota consumption in /roles endpoint.
+  * [MESOS-9874] - Add environment variable `MESOS_ALLOCATION_ROLE` to the task/container.
+  * [MESOS-9892] - Test various agent state transitions involving agent draining
+  * [MESOS-9907] - Retain agent draining start time in master
+
+** Documentation
+  * [MESOS-9427] - Revisit quota documentation.
+
 
 Release Notes - Mesos - Version 1.8.2 (WIP)
 -------------------------------------------
