diff --git a/site2/website/release-notes.md b/site2/website/release-notes.md
index 462110b25acc52612aed9a80138defc0e72adef2..d14d0220a283c7ef7c6613d0a190bad1fac9ef94 100644
--- a/site2/website/release-notes.md
+++ b/site2/website/release-notes.md
@@ -1,6 +1,106 @@
## Apache
+### 2.4.2 — 2019-12-04
+
+#### Fixes
+
+* Fixed don't set interrupt flag again after catching interrupt exception in Pulsar Client [#5643](https://github.com/apache/pulsar/pull/5643)
+* Fixed data is not deleted after expiration due to connected readers [#5621](https://github.com/apache/pulsar/pull/5621)
+* Fixed the go client docs missing in website [#5595](https://github.com/apache/pulsar/pull/5595)
+* Fixed schema def build error with protobuf schema [#5569](https://github.com/apache/pulsar/pull/5569)
+* Fixed docs about reset cursor [#5551](https://github.com/apache/pulsar/pull/5551)
+* Fixed repeated initialization of connectorsManager [#5545](https://github.com/apache/pulsar/pull/5545)
+* Fixed Functions unnecessarily restart during FunctionRuntimeManager init phase [#5527](https://github.com/apache/pulsar/pull/5527)
+* Fixed list non-persistent topics shows the persistent topics [#5502](https://github.com/apache/pulsar/pull/5502)
+* Return after triggering callback with empty result [#5500](https://github.com/apache/pulsar/pull/5500)
+* Fixed dispatcher skipping delivery of a batch during concurrent replays [#5499](https://github.com/apache/pulsar/pull/5499)
+* Fixed reader_listener option for Python API [#5487](https://github.com/apache/pulsar/pull/5487)
+* Fixed wrongly report "3600 messages have timed-out" [#5477](https://github.com/apache/pulsar/pull/5477)
+* Fixed broken custom auth-provider that uses authenticationData [#5462](https://github.com/apache/pulsar/pull/5462)
+* Fixed negative ack tracker constructor sequence [#5453](https://github.com/apache/pulsar/pull/5453)
+* Fixed StringSchema static initialization [#5445](https://github.com/apache/pulsar/pull/5445)
+* Fixed message corruption on OOM for batch messages [#5443](https://github.com/apache/pulsar/pull/5443)
+* Fixed couple functions related integration tests [#5434](https://github.com/apache/pulsar/pull/5434)
+* Fixed bug that namespace policies does not take effect due to NPE [#5408](https://github.com/apache/pulsar/pull/5408)
+* Fixed race condition : Failed to read-more entries on dispatcher [#5391](https://github.com/apache/pulsar/pull/5391)
+* Fixed potential deadlock that can occur in addConsumer [#5371](https://github.com/apache/pulsar/pull/5371)
+* Fixed proxy to be able to re-send request body [#5361](https://github.com/apache/pulsar/pull/5361)
+* Fixed pulsar can't load the customized SerDe [#5357](https://github.com/apache/pulsar/pull/5357)
+* Fixed instability in Pulsar Function window integration test [#5337](https://github.com/apache/pulsar/pull/5337)
+* Fixed bk write failure, use signals to resume writing [#5322](https://github.com/apache/pulsar/pull/5322)
+* Fixed bad_weak_ptr error when closing producer [#5315](https://github.com/apache/pulsar/pull/5315)
+* Fixed typo(massage->message) causing prometheus metrics display error [#5299](https://github.com/apache/pulsar/pull/5299)
+* Fixed invalidate cache on zk-cache timeout [#5298](https://github.com/apache/pulsar/pull/5298)
+* Fixed memory leak caused by not being executed ClientConnection destructor [#5286](https://github.com/apache/pulsar/pull/5286)
+* Fixed producer blocked after send an over size message while batch enabled [#5282](https://github.com/apache/pulsar/pull/5282)
+* Fixed race condition while triggering message redelivery after an ack-timeout event [#5276](https://github.com/apache/pulsar/pull/5276)
+* Fixed behavior when getting a key from functions state that doesn't exist [#5272](https://github.com/apache/pulsar/pull/5272)
+* Fixed Cmake to build _pulsar for osx [#5263](https://github.com/apache/pulsar/pull/5263)
+* Fixed client backoff setting does not take effect [#5261](https://github.com/apache/pulsar/pull/5261)
+* Fixed memory leak caused by deadline_timer holding object reference [#5246](https://github.com/apache/pulsar/pull/5246)
+* Fixed in Message Deduplication that may cause incorrect client/broker interaction [#5243](https://github.com/apache/pulsar/pull/5243)
+* Fixed bug that fails to search namespace bundle due to NPE [#5191](https://github.com/apache/pulsar/pull/5191)
+* Fixed bug that message delivery stops after resetting cursor for failover subscription [#5185](https://github.com/apache/pulsar/pull/5185)
+* Fixed exception type check order bug [#5174](https://github.com/apache/pulsar/pull/5174)
+* Fixed spark receiver to account for all the consumer config options [#5152](https://github.com/apache/pulsar/pull/5152)
+* Fixed broker fails to start with function worker enabled and broker client using TLS [#5151](https://github.com/apache/pulsar/pull/5151)
+* Fixed deadlock when resetting cursor [#5136](https://github.com/apache/pulsar/pull/5136)
+* Fixed windowed functions were broken when we changed java function instance to use classloaders [#5117](https://github.com/apache/pulsar/pull/5117)
+* Fixed storage size always 0 without subscription [#5108](https://github.com/apache/pulsar/pull/5108)
+
+#### Enhancements
+
+* Add subscribe position param for consumer of sink [#5532](https://github.com/apache/pulsar/pull/5532)
+* Efficiency improvements for delay delivery tracker [#5498](https://github.com/apache/pulsar/pull/5498)
+* Add is_read_compacted to create_reader() in python API [#5483](https://github.com/apache/pulsar/pull/5483)
+* Make some common use method of ManagedLedger public [#5472](https://github.com/apache/pulsar/pull/5472)
+* Avoid leak on publish failure on batch message [#5442](https://github.com/apache/pulsar/pull/5442)
+* Record message failure and avoid exiting from process on publish failure [#5441](https://github.com/apache/pulsar/pull/5441)
+* Add support for partitioned topic consumer seek by time [#5435](https://github.com/apache/pulsar/pull/5435)
+* Add default loader for latest pyyaml [#5432](https://github.com/apache/pulsar/pull/5432)
+* Trim messages which less than mark delete position for message redelivery [#5378](https://github.com/apache/pulsar/pull/5378)
+* Make skip all messages async [#5375](https://github.com/apache/pulsar/pull/5375)
+* Set default ensemble size to 2 in service conf, to match broker.conf [#5339](https://github.com/apache/pulsar/pull/5339)
+* Only seek when reading unexpected entry [#5356](https://github.com/apache/pulsar/pull/5356)
+* Don't require both region and endpoint to be specified [#5355](https://github.com/apache/pulsar/pull/5355)
+* If cursor is not durable, close dispatcher when all consumers are removed from subscription [#5340](https://github.com/apache/pulsar/pull/5340)
+* Disable stickyRead by default [#5321](https://github.com/apache/pulsar/pull/5321)
+* Allow to specify delivery delay in C++ client [#5317](https://github.com/apache/pulsar/pull/5317)
+* Add debug log + fix thread-factory name [#5302](https://github.com/apache/pulsar/pull/5302)
+* Don't attempt to append on read-only cursor ledger [#5297](https://github.com/apache/pulsar/pull/5297)
+* Close previous dispatcher when subscription type changes [#5288](https://github.com/apache/pulsar/pull/5288)
+* Improve error handling logic for effectively once [#5271](https://github.com/apache/pulsar/pull/5271)
+* Upgrade dependencies for security fixes [#5232](https://github.com/apache/pulsar/pull/5232)
+* Allow for topic deletions with regex consumers [#5230](https://github.com/apache/pulsar/pull/5230)
+* Ensure consumer background tasks are cancelled after subscribe failures [#5204](https://github.com/apache/pulsar/pull/5204)
+* Added missing enum value KeyShared on the python wrapper [#5196](https://github.com/apache/pulsar/pull/5196)
+* Make some member variables of Dispatcher volatile [#5193](https://github.com/apache/pulsar/pull/5193)
+* Ensure getting list of topics for namespace is handled asynchronously [#5188](https://github.com/apache/pulsar/pull/5188)
+* Close RateLimiter instance [#5155](https://github.com/apache/pulsar/pull/5155)
+* Throw an error if the key was not specified for querying state [#5145](https://github.com/apache/pulsar/pull/5145)
+* Allow configuring region aware placement related settings [#5100](https://github.com/apache/pulsar/pull/5100)
+* DeleteBookieRack should remove the rack info from zookeeper [#5084](https://github.com/apache/pulsar/pull/5084)
+* Use "info" as the default root logger level [#5079](https://github.com/apache/pulsar/pull/5079)
+* Modify BatcherBuilder interface and it's subs to implement java.io.Serializable, otherwise java.io.NotSerializableException occurs when we use plusar-flink-connector [#5068](https://github.com/apache/pulsar/pull/5068)
+* Don't return DEFAULT_RACK if ZkBookieRackAffinityMapping can't resolve network location [#5067](https://github.com/apache/pulsar/pull/5067)
+* Reload zk cache asynchronously [#5049](https://github.com/apache/pulsar/pull/5049)
+* Add different cache flags to ConcurrentOpenLongPairRangeSet for size() and toString() [#5040](https://github.com/apache/pulsar/pull/5040)
+* Introduce number of threads in perf producer program [#5036](https://github.com/apache/pulsar/pull/5036)
+* Completing connector configuration [#4999](https://github.com/apache/pulsar/pull/4999)
+* Add checkstyle validation and fix style violations in the common module [#4989](https://github.com/apache/pulsar/pull/4989)
+* Trim deleted entries after recover cursor [#4987](https://github.com/apache/pulsar/pull/4987)
+* Expose getLastMessageId method in ConsumerImpl [#4911](https://github.com/apache/pulsar/pull/4911)
+* Add a documentation page for metrics reference [#4910](https://github.com/apache/pulsar/pull/4910)
+* Provide a convenient method for C++ client producer batch container [#4885](https://github.com/apache/pulsar/pull/4885)
+* Add schema admin api get schema info with schema version [#4877](https://github.com/apache/pulsar/pull/4877)
+* Return Message ID for send for cpp and cgo client [#4811](https://github.com/apache/pulsar/pull/4811)
+* Add the schema admin api [#4800](https://github.com/apache/pulsar/pull/4800)
+* Clarify how retention interacts with readers [#4780](https://github.com/apache/pulsar/pull/4780)
+* Get schema info with topic partition [#4751](https://github.com/apache/pulsar/pull/4751)
+* Remove failed stale producer from the connection [#4741](https://github.com/apache/pulsar/pull/4741)
+* Update logic for picking active consumer for failover subscription on non-partitioned topic [#4604](https://github.com/apache/pulsar/pull/4604)
+
### 2.4.1 — 2019-08-30
#### Fixes