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.httprequests 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_adminbranch (#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
matchcommand'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_hookandget_write_hookcommands, 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_sarandbit_xor. (#6534) - Permitted the hyphen character (
-) to be used in table names. (#5537) - Users may be granted permissions on system tables. (#5692)
- Make
iso8601command round, not truncate. (#6909) - Fix timestamp millisecond down-truncation bug. (#6272)
- Added the
- Server
- Fixed crash with limit change feed
insertedguarantee 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
- 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
sampleare now bound by the array size limit (#6148) -- @AtnNn - Fixed a crashing bug in the implementation of the
interleaveargument tounion(#6139) -- @AtnNn - Fixed a crash caused by
eqJoinof system tables when using theuuididentifierFormat(#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
interleaveoption of theunioncommand,
which could potentially lead to results being generated in the wrong order (#6041) - Fixed a bug in the batch handling of the
foldand multi-streammapcommands,
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_statustable, even after they had disconnected (#5871) - Fixed the detection of non-deterministic conflict functions in the
insertcommand
(#5842) - Improved the Raft election timeout logic to avoid infinite Raft election loops (#6038)
- Improved the response time when reading from the
table_statussystem table (#4589) - The server no longer logs the message
Rejected a connection from server X since one is already openwhen trying to connect
to itself (#5456) - Fixed a bug that could cause an
Uncaught exceptionserver crash if a TLS-encrypted
connection was closed during a certain connection stage (#5904) - Fixed a bug in
mergethat could causer.literalobjects to remain after themerge
and be stored in a table (#5977) - On Windows: Fixed a bug in the
r.httpcommand 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
makeon
OpenSUSE (#2363)
- Improved the efficiency of the on-disk garbage collector to reduce the risk of
- JavaScript driver
- Java driver
- Python driver
- The
asyncioloop 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.limitchangefeeds that caused the server to crash with
Guarantee failed: [sub_it != real_added.end()](#5561) - Improved the performance of the
table_statussystem 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
foldcommand 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
Connectionclass is now exported from the RethinkDB JavaScript module (#5758)
- The
- Java driver
- Added the
clientPortandclientAddressmethods to theConnectionclass 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-protocolserver 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_bywith 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-timeoutto 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
insertcommand 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
ssloption now supports older Python versions from 2.7 up
(#4815) - Added a REPL mode that can be launched through the new
python -m rethinkdbcommand
(#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 dumpscript that caused
name 'file' is not definederrors (#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: