Releases: rethinkdb/rethinkdb
v2.4.4
2.4.4 - Night of the Living Dead
Fixes for Data Explorer autocomplete, compilation fixes, other small
fixes.
Compatibility
No migration is required when upgrading from RethinkDB 2.4.x. Please read the RethinkDB 2.4.0 release notes if you're upgrading from an older version.
RethinkDB 2.4.x servers cannot be mixed with servers running RethinkDB 2.3.x or earlier in the same cluster.
API-breaking changes
None.
Changes
- Server
- Avoid unaligned memory accesses and bus errors on 32-bit ARM (#7128)
- Compilation
- Web UI
Contributors
- @sg5506844
- Sam Hughes (@srh)
v2.4.3
2.4.3 - Night of the Living Dead
Windows release, FreeBSD 13 compilation, certificate chain support, no update checker complaint.
Brings some low-key compilation future-proofing.
Compatibility
No migration is required when upgrading from RethinkDB 2.4.x. Please read the RethinkDB 2.4.0 release notes if you're upgrading from an older version.
RethinkDB 2.4.x servers cannot be mixed with servers running RethinkDB 2.3.x or earlier in the same cluster.
API-breaking changes
None. Some console output is altered, though.
Changes
- Server
- Fail correctly when failing to remove directory (#4647)
- Improve --initial-password help text (#7064)
- Add machine arch and uname to rethinkdb version output (#7060)
- Improve general help formatting (#7095)
- Update OpenSSL version (if fetched and statically linked) to 3.0.7 (#7099)
- Make TLS configuration support certificate chains (#6969)
- Regenerate the version correctly (eliminating update checker annoyance) (#7100)
- Compilation
- Get the Windows build working (#7074, #7075, #7082, #7083)
- Switch from QuickJS to QuickJSpp (our fork hosted at
https://github.com/rethinkdb/quickjspp )
- Switch from QuickJS to QuickJSpp (our fork hosted at
- Include <time.h> in files using time function (#7091)
- and add more explicit includes for future-proofing (#7098)
- Get FreeBSD build working (#7088, #7098)
- Avoid some uses of egrep (#7092)
- Get the Windows build working (#7074, #7075, #7082, #7083)
- Web UI
- Update jQuery to 3.6.1 (#6937)
Contributors
- Mariano Rodríguez (@MarianoRD)
- Hung-Te Lin (@hungte)
- Antoni Mróz (@MrBoombastic)
- unx (@unxcepted)
- Russel Beswick (@besworks)
- Sam Hughes (@srh)
- Gábor Boros (@gabor-boros)
Special thanks are due to Antoni Mróz and unx for getting the Windows release working.
2.4.2 - Night Of The Living Dead
Bitrot, futureproofing, and bug fix release.
Compatibility
No migration is required when upgrading from RethinkDB 2.4.x. Please read the
RethinkDB 2.4.0 release notes if you're upgrading from
an older version.
RethinkDB 2.4.x servers cannot be mixed with servers running RethinkDB
2.3.x or earlier in the same cluster.
API-breaking changes
The r.js
ReQL command now uses QuickJS to run instead of v8. Because RethinkDB's v8 version was old, this will allow you to use newer JavaScript features. However, performance and the results of your JavaScript code may differ.
Substantive Changes
(Issue numbers point into the https://github.com/rethinkdb/rethinkdb bugtracker. For a completionist list of changes, run git log v2.4.1..v2.4.2
.)
- Server
- Fix 32-bit overflow bug with Raft log indexes (#7036)
- Make
r.http
requests use HTTP/1.1 (#7012). This works around
r.http
's inability to parse HTTP/2 responses. - Fix saslname decode logic (#7016)
- The limit of 127 threads has been removed (#6895)
- On newer MacOSes, make assertion failures abort the process (#7049)
- On newer MacOS builds, upon assertion failures, generate backtraces correctly (#7049)
- Fix an O(1) memory leak (#7010)
- Fix some newer MacOS warnings and compilation errors (#7014)
- Fix some other GCC warnings (various commits)
- Update curl dependency to 7.82.0
- Update jemalloc dependency to 5.2.1
- Update libidn dependency to 1.38
- Update openssl dependency (if fetched) to 3.0.1
- Get Apple M1 building working
- Compilation
- Split out web assets code and its build dependency chain to the
old_admin
branch (#6979) - Package generation updates for Ubuntu 21.10, 22.04, and Debian Bullseye (#7021)
- More package generation updates for Debian (commit da34c2f)
- Make install-include depend on dependency install witness (commit 79c6857)
- Make RPM building explicitly name fetched dependencies and dynamically link (#7035)
- Add RDB_NO_BACKTRACE flag for musl users (#7052)
- A patch for wider boost compatibility was supplied (#6934)
- Split out web assets code and its build dependency chain to the
- Web UI
- The web UI was excised to the branch
https://github.com/rethinkdb/rethinkdb/tree/old_admin (#6979)
- The web UI was excised to the branch
Contributors
Many thanks to the following contributors whose patches made it into
the RethinkDB 2.4.2 server release:
- Rui Chen (@chenrui333)
- Mathieu Schroeter (@Skywalker13)
- Yong-Hao Zou (@zouyonghao)
- zadcha (@zadsza)
- Leo Arias (@ElOpio)
And many thanks go to the driver committers, alternative admin console
client developers, bug reporters, and other helpful people who are not
listed here.
2.4.1 - Night Of The Living Dead
Bug fix release.
Compatibility
No migration is required when upgrading from RethinkDB 2.4.x. Please read the
RethinkDB 2.4.0 release notes if you're upgrading from
an older version.
RethinkDB 2.4.0 servers cannot be mixed with servers running RethinkDB 2.3.x or earlier in the same cluster.
Changes
(Issue numbers point into the https://github.com/rethinkdb/rethinkdb
bugtracker.)
- Server
- Compilation
- Web UI
2.4.0 - Night Of The Living Dead
RethinkDB 2.4 introduces write hooks and bitwise operations besides bug fixes.
Read the blog post for more details.
Compatibility
Data files from RethinkDB version 1.16 onward will be automatically
migrated. As with any major release, back up your data files before
performing the upgrade. Please read the RethinkDB 2.4.0 release
notes if you're upgrading from version 2.3.x or
earlier.
RethinkDB 2.4.0 servers cannot be mixed with servers running RethinkDB
2.3.x or earlier in the same cluster.
Official Drivers
Except for JavaScript, the official drivers are now generally
maintained as separate projects. But note that there is some coupling
of RethinkDB console commands, like rethinkdb dump
, with the Python
driver. RethinkDB 2.4 contains some old copies of the drivers to keep
./test/run
working with minimal effort. The JavaScript driver is
still used in the Web UI. However, the web assets are now
pre-generated, at src/gen/web_assets.cc, making the presence of the
driver in the repository not strictly necessary.
Here are links to the official drivers:
- Python: https://github.com/rethinkdb/rethinkdb-python/
- Ruby: https://github.com/rethinkdb/rethinkdb-ruby/
- Java: https://github.com/rethinkdb/rethinkdb-java/
- JavaScript: https://github.com/rethinkdb/rethinkdb/tree/next/drivers/javascript
API-breaking changes
- Write hooks add a new field to the table configuration.
- A bugfix changes the
match
command's behavior on empty regexes.
It had previously been behaving incorrectly.
Substantive Changes
(Issue numbers point into the https://github.com/rethinkdb/rethinkdb
bugtracker.)
- ReQL
- Added the
set_write_hook
andget_write_hook
commands, which attach to
tables a function that can modify the behavior of any write. (#5813) - Added bitwise operators for number types:
bit_and
,bit_not
,bit_or
,
bit_sal
,bit_sar
andbit_xor
. (#6534) - Permitted the hyphen character (
-
) to be used in table names. (#5537) - Users may be granted permissions on system tables. (#5692)
- Make
iso8601
command round, not truncate. (#6909) - Fix timestamp millisecond down-truncation bug. (#6272)
- Added the
- Server
- Fixed crash with limit change feed
inserted
guarantee failure. (#6710) - Avoid using DNS resolution when finding network interface addresses. (#6588)
- Removed update checker. (#6791)
- Added experimental support for arm64/aarch64. (#6438)
- Added experimental support for Power8/LE platform. (#6317)
- Fixed race condition in the query cache. (#6564)
- Avoid quadratic growth in segmented vector. (#6385)
- Big-Endian fixes and s390x support. (#6242)
- Fixed crash with limit change feed
- Web UI
- Compilation
- JavaScript Driver
- Avoided mutating object passed to
r.connect
. (#6575)
- Avoided mutating object passed to
- Python Driver
- See more details at https://github.com/rethinkdb/rethinkdb-python/releases
- Other Drivers
- Changes omitted, as they're in separate repositories.
2.3.6 — Fantasia
Bug fix release
Notes
This is the first release of RethinkDB since October 2016. The RethinkDB project has joined the Linux Foundation. This release is brought to you by volunteers from the Open RethinkDB team. The RethinkDB source code is now licensed under an ASLv2 license.
Compatibility
On 32-bit platforms and on Windows (64 and 32 bit), RethinkDB 2.3.6 servers should not be mixed with servers running RethinkDB 2.3.3 or older in the same cluster. Doing so can lead to server crashes when using the web UI or when accessing the logs
system table.
On 64-bit platforms, RethinkDB 2.3.6 servers can be mixed with older RethinkDB 2.3.x servers in the same cluster. We recommend that you run a mixed-version cluster only temporarily for upgrading purposes.
No migration is required when upgrading from RethinkDB 2.3.x. Please read the [RethinkDB 2.3.0 release notes][release-notes-2.3.0] if you're upgrading from an older version.
Changes
- Server
- Improved the compatibility of the web UI with Chrome 49 and Edge (#5878, #5426, #5300) -- @danielmewes
- Fixed a crash caused by unwanted connections (#6084) -- @danielmewes
- Fixed a crash caused by recreating indexes with active changefeeds (#6093) -- @danielmewes
- Sizes passed to
sample
are now bound by the array size limit (#6148) -- @AtnNn - Fixed a crashing bug in the implementation of the
interleave
argument tounion
(#6139) -- @AtnNn - Fixed a crash caused by
eqJoin
of system tables when using theuuid
identifierFormat
(#6108) -- @nighelles - Fixed a bug that caused
r.match('')
to return wrong results (#6241) -- @AtnNn - Miscellaneous regression fixes and code improvements by @srh and @VeXocide
- Fixed argument order in pretty-printed queries in the jobs table (#6240) -- @AtnNn
- Packaging
Official Downloads: https://rethinkdb.com/docs/install/
2.3.5 — Fantasia
Bug fix release
Compatibility
On 32-bit platforms and on Windows (64 and 32 bit), RethinkDB 2.3.5 servers should not
be mixed with servers running RethinkDB 2.3.3 or older in the same cluster. Doing so can lead to
server crashes when using the web UI or when accessing the logs
system table.
On 64-bit platforms other than Windows, RethinkDB 2.3.5 servers can be mixed with older
RethinkDB 2.3.x servers in the same cluster. We recommend that you run a mixed-version cluster
only temporarily for upgrading purposes.
No migration is required when upgrading from RethinkDB 2.3.x. Please read the
RethinkDB 2.3.0 release notes if you're upgrading from an older version.
Bug fixes
- Server
- Improved the efficiency of the on-disk garbage collector to reduce the risk of
excessive file growth (#5923) - Improved the latency of read queries under heavy write loads (#6072)
- Fixed a bug that could cause the server to crash with a deserialization error
or to stop completing any table reads (#6033) - Fixed a bug in the implementation of the
interleave
option of theunion
command,
which could potentially lead to results being generated in the wrong order (#6041) - Fixed a bug in the batch handling of the
fold
and multi-streammap
commands,
that would stop results from being generated correctly if these commands were
applied to a changefeed (#6007) - Fixed an issue that could cause proxies to remain listed in the
connected_to
field of theserver_status
table, even after they had disconnected (#5871) - Fixed the detection of non-deterministic conflict functions in the
insert
command
(#5842) - Improved the Raft election timeout logic to avoid infinite Raft election loops (#6038)
- Improved the response time when reading from the
table_status
system table (#4589) - The server no longer logs the message
Rejected a connection from server X since one is already open
when trying to connect
to itself (#5456) - Fixed a bug that could cause an
Uncaught exception
server crash if a TLS-encrypted
connection was closed during a certain connection stage (#5904) - Fixed a bug in
merge
that could causer.literal
objects to remain after themerge
and be stored in a table (#5977) - On Windows: Fixed a bug in the
r.http
command that resulted in decoding issues (#5924) - On Windows: RethinkDB now binds TCP ports exclusively (#6008)
- On Windows: No longer print an error to the log whenever a connection attempt fails
(no issue #) - Fixed a build issue that caused system libraries to not be found during
make
on
OpenSUSE (#2363)
- Improved the efficiency of the on-disk garbage collector to reduce the risk of
- JavaScript driver
- Java driver
- Python driver
- The
asyncio
loop type is now available when using the driver from a Python .egg
file (#6043)
- The
- Ruby driver
- Fixed a rounding issue with time objects (#5825)
Contributors
Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.5.
- Arve Seljebu (@arve0)
- Ben Sharpe (@bsharpe)
- Brian Chavez (@bchavez)
- Dan Wiechert (@DWiechert)
- mbains (@mbains)
- QianJin2013 (@QianJin2013)
- Raman Gupta (@rocketraman)
2.3.4 — Fantasia
Bug fix release
Compatibility
On 32-bit platforms and on Windows (64 and 32 bit), RethinkDB 2.3.4 servers should not
be mixed with older RethinkDB 2.3.x servers in the same cluster. Doing so can lead to
server crashes when using the web UI or when accessing the logs
system table.
On 64-bit platforms, RethinkDB 2.3.4 servers can be mixed with older RethinkDB 2.3.x
servers in the same cluster. We recommend that you run a mixed-version cluster only
temporarily for upgrading purposes.
No migration is required when upgrading from RethinkDB 2.3.x. Please read the
RethinkDB 2.3.0 release notes if you're upgrading from an
older version.
Bug fixes
- Server
- Python driver
Contributors
Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.4.
- Ultrabug (@ultrabug)
2.3.3 — Fantasia
Bug fix release
Compatibility
RethinkDB 2.3.3 servers can be mixed with older RethinkDB 2.3.x servers in the same
cluster. We recommend that you run a mixed-version cluster only temporarily for upgrading
purposes.
No migration is required when upgrading from RethinkDB 2.3.x. Please read the
RethinkDB 2.3.0 release notes if you're upgrading from an
older version.
Windows support
RethinkDB 2.3.0 was the first version to include native Windows compatibility. In
RethinkDB 2.3.3, the Windows port is ready to emerge from "beta" testing. We now
officially support RethinkDB on the Windows platform alongside our existing support for
Linux and Mac OS X. We're also extending our commercial support services
to include RethinkDB on Windows.
Although RethinkDB is now stable on Windows, there are still a few remaining limitations
that we are actively working to address. We also haven't yet carried out as much
performance tuning on the Windows port as we have on the Linux and OS X releases.
Bug fixes
- Server
- Fixed a bug in
orderBy.limit
changefeeds that caused the server to crash with
Guarantee failed: [sub_it != real_added.end()]
(#5561) - Improved the performance of the
table_status
system table when the cluster is under
high load (#5586) - Fixed a race condition in the cluster connection logic that could cause occasional
crashes with aGuarantee failed: [refcount == 0]
error (#5783) - Fixed a stack overflow when executing queries with a very high number of chained
commands (#5792) - Made the
fold
command work on a changefeed stream (#5800) - Fixed the server uptime calculation on Windows (#5388)
- Fixed source code incompatibilities with GCC 6.0 (#5757)
- Fixed a bug in
- JavaScript driver
- The
Connection
class is now exported from the RethinkDB JavaScript module (#5758)
- The
- Java driver
- Added the
clientPort
andclientAddress
methods to theConnection
class in the
Java driver (#5571)
- Added the
Contributors
Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.3.
- Gergely Nemeth (@gergelyke)
2.3.2 — Fantasia
Bug fix release
Compatibility
RethinkDB 2.3.2 servers can be mixed with older RethinkDB 2.3.x servers in the same
cluster. We recommend that you run a mixed-version cluster only temporarily for upgrading
purposes.
No migration is required when upgrading from RethinkDB 2.3.x. Please read the
RethinkDB 2.3.0 release notes if you're upgrading from an
older version.
Bug fixes
- Server
- Fixed a data corruption issue in the secondary index construction logic. The issue
could be triggered by creating a secondary index while the table is under write load
and could result in aGuarantee failed: [token.has()]
error when accessing
the index (#5715) - Fixed an issue in the Windows beta release that caused data corruption whenever
growing a table to more than 4 GB (#5719) - Fixed a crash with the message
Guarantee failed: [num_subs == 0]
that could occur
when shutting down a server while trying to start new changefeeds at the same time
(#5708) - Fixed a crash with the message
Guarantee failed: [!pair.first.inner.overlaps(region.inner)]
that could occur when
using changefeeds while resharding (#5745) - Added a
--tls-min-protocol
server option for reducing the minimum required TLS
protocol version. Drivers using an old OpenSSL version (e.g. on OS X) might require
this option in order to connect to a TLS-enabled RethinkDB server (#5734) - Added a check to disallow using
order_by
with a non-deterministic predicate function
(#5548) - Fixed a segmentation fault at address 0x18 that could occur in low-memory conditions
on Linux (#5348) - Fixed a stack overflow issue when parsing very deeply nested objects (#5601)
- Improved the stack protection logic in order to avoid exceeding the system's memory
map limit. This issue affected Linux servers when having a very high number of
concurrently running queries (#5591) - The server is now built with jemalloc version 4.1 on Linux (#5712)
- Fixed the message that is displayed when a query times out in the Data Explorer
(#5113) - Improved the handling and reporting of OpenSSL-related errors (#5551)
- Added a new server option
--cluster-reconnect-timeout
to control how quickly
RethinkDB gives up trying to reconnect to a previously connected server (#5701) - Fixed a race condition when writing to system tables that could lead to incorrect
update results (#5711) - A custom conflict resolution function for the
insert
command can now returnnull
in order to delete a conflicting document (#5713) - Improved the error message emitted when opening a changefeed on an
orderBy.limit
query that has additional transformations (#5721) - Fixed an incompatibility with Safari that could cause undesired page reloads in the
web UI (#3983)
- Fixed a data corruption issue in the secondary index construction logic. The issue
- Python driver
- The Python driver's
ssl
option now supports older Python versions from 2.7 up
(#4815) - Added a REPL mode that can be launched through the new
python -m rethinkdb
command
(#5147) - Added a cache for PBKDF2 authentication tokens to reduce the costs of repeatedly
opening connections (#5614) - Refactored how the RethinkDB import and export scripts load the driver (#4970)
- Improved the error message reported when attempting to connect to a pre-2.3.0 server
(#5678) - Fixed an incompatibility with Python 3 in the
rethinkdb dump
script that caused
name 'file' is not defined
errors (#5694) - Fixed an incompatibility with Python 3.3 in the protocol handshake code (#5742)
- The Python driver's
Contributors
Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.2. In no particular order: