Skip to content

Releases: rethinkdb/rethinkdb

v2.4.4

11 Dec 01:42
@srh srh
Compare
Choose a tag to compare

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
    • Replace bad zlib URL with working one (#7121)
    • Fix new include errors (#7119)
    • Avoid using deprecated fstat64 function (#7141)
  • Web UI

Contributors

v2.4.3

05 Feb 01:14
@srh srh
Compare
Choose a tag to compare

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
  • Web UI
    • Update jQuery to 3.6.1 (#6937)

Contributors

Special thanks are due to Antoni Mróz and unx for getting the Windows release working.

2.4.2 - Night Of The Living Dead

07 May 19:28
Compare
Choose a tag to compare

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)
  • Web UI

Contributors

Many thanks to the following contributors whose patches made it into
the RethinkDB 2.4.2 server release:

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

14 Aug 19:51
9d8327b
Compare
Choose a tag to compare

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
    • Force flushing when stdout isn't on a TTY (#6819)
    • Fix code style issues (#6842)
    • Fix warnings about missing assignment definitions in clang 10.0.0 (commit 3ca9690)
  • Compilation
    • Fix aarch64 builds in 2.4.x using clang++ (commit 01683d3)
    • Fix Linux Mint 20 build errors (commit 328ebfb)
  • Web UI
    • Reintroduce update checker (#6879)
    • Allow hyphens in table and database names (#6908)

2.4.0 - Night Of The Living Dead

19 Dec 18:30
68f6898
Compare
Choose a tag to compare

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:

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 and get_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 and bit_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)
  • 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)
  • Web UI
    • Implemented a new table viewer widget for browsing the contents of tables. (#6767)
    • Improved table page performance in case with many databases. (#6790)
  • Compilation
    • The web assets are now pre-generated, so that macOS users can build them. (#6770)
    • Debian package building is now parallelized. (#6780)
    • Fixed extproc spawner bug. (#5572)
    • Allowed building against libressl. (#6671)
  • JavaScript Driver
    • Avoided mutating object passed to r.connect. (#6575)
  • Python Driver
  • Other Drivers
    • Changes omitted, as they're in separate repositories.

2.3.6 — Fantasia

23 Jul 02:20
Compare
Choose a tag to compare

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 to union (#6139) -- @AtnNn
    • Fixed a crash caused by eqJoin of system tables when using the uuid 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
    • Fix glibc version detection in RPM packaging script (#6229) -- @gamename
    • Add packages for Ubuntu Yakkety and Zesty (#6364) -- @AtnNn

Official Downloads: https://rethinkdb.com/docs/install/

2.3.5 — Fantasia

29 Aug 21:19
Compare
Choose a tag to compare

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 the union 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-stream map 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 the server_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 cause r.literal objects to remain after the merge
      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)
  • JavaScript driver
    • Fixed the server nonce validation in the connection handshake (#5916)
    • The host argument to connect is now optional (#5846)
  • Java driver
    • Cursors now implement the Closeable interface (#5468)
    • Fixed no-reply queries as run through runNoReply (#5938)
    • Fixed a bug in the reconnect method (#5841)
    • Fixed a memory leak in the Connection object that was caused by the driver not
      properly cleaning up closed cursors (#5980)
  • Python driver
    • The asyncio loop type is now available when using the driver from a Python .egg
      file (#6043)
  • 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.

2.3.4 — Fantasia

04 Jun 05:27
Compare
Choose a tag to compare

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
    • Fixed a segmentation fault in the orderBy.limit changefeed implementation (#5824)
    • Fixed an incompatibility in the cluster protocol between Windows and Linux / OS X
      servers (#5819)
  • Python driver
    • Fixed various bugs in the connection class for the asyncio event loop (#5795, #5816, #5820)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.4.

2.3.3 — Fantasia

01 Jun 18:54
Compare
Choose a tag to compare

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 a Guarantee 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)
  • JavaScript driver
    • The Connection class is now exported from the RethinkDB JavaScript module (#5758)
  • Java driver
    • Added the clientPort and clientAddress methods to the Connection class in the
      Java driver (#5571)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.3.

2.3.2 — Fantasia

06 May 19:00
Compare
Choose a tag to compare

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 a Guarantee 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 return null
      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)
  • 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)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.3.2. In no particular order: