Releases: realm/realm-object-server
Release 3.16.2
Enhancements
- None
Fixed
- Fixed an issue in logging where hi-res timestamps were visible, e.g.,
log message ... 0=123456 1=789012345
. - Fix of a bug that made the server crash with message: "Assertion failed: m_unblocked_changesets_from_downstream_byte_size == 0". (#2658)
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.16.1
Enhancements
- None
Fixed
- A segfault related to state size calculation could cause frequent restarts of the server. (Issue #1374)
- When deleting a reference Realm, partial views associated with it will now be removed. (Issue #1021)
- Fixed a bug that would prevent a user from logging in with two different authentication providers. This could be observed if two JWT providers were setup and produced identical user ids (e.g. a
user
andadmin
JWT providers where an admin user can login with both) or when users were manually created by calling theAuthService.createOrUpdateUser
API. (Issue #1372) - Fixed several log messages printing not providing contextual variable information. For example, the message "Permissions: The user with ID '%1' is not a member of any roles that have Class-level permissions. This is usually an error." will now print the the user id instead of "%1".
- Fixed a an issue that caused the server crash with message: "Assertion failed: m_unblocked_changesets_from_downstream_byte_size == 0". (Issue #2641).
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.16.0
Enhancements
- The server will now periodically "vacuum" random Realms by freeing unused reserved space and likely reduce the file size on disk. By default, this will happen every 120 seconds, but that can be configured by providing a value for
vacuumIntervalInSeconds
inserver.start()
. If you want to disable the feature, specify a negative value. (realm-sync/#2497) - Exposed an endpoint to update the status of users. Currently, only two statuses are supported -
active
andsuspended
. When a user issuspended
, they won't be able to authenticate against ROS or obtain new access tokens. Their existing access tokens will not be revoked, so they will still be able to synchronize until the access tokens expire (typically 6 minutes). (realm-sync/#2578) - The log compaction algorithm has been improved, and should produce better results. It should also consume less memory while running.
- The error message emitted when trying to open a Realm with an invalid path has been enhanced to provide more relevant information. Previously, the message was a static text, describing all scenarios which could produce invalid Realm paths (it used to start with
path is invalid. It should start with a slash, consist of Latin letters...
) and now it will specify what exactly is wrong with the path, for example:The path '/~/cæt' (decoded: '/f52bcb1b8dc752ece60db5fe283820df/cæt') is invalid: encountered an invalid segment: 'cæt'. Error: segment is not composed of alphanumeric characters
. (#1287)
Fixed
- URL for documentation in the servers home page has been fixed to point to the correct Platform doc page. (#1153)
- An index out of range error in query based sync is fixed. The bug would manifest itself with a "list ndx out of range" error.
- The
LIMIT
predicate was previously run before object level permissions were applied, which could result in less results being returned than were actually available. - If encryption was enabled, decrypted pages were not released until the file was closed, causing excessive usage of memory. Pages are now reclaimed periodically, ensuring that memory usage stays low.
- The server will now notify clients that a client reset has occurred, even if the Realm is opened at the time. Previously clients would not be notified until the Realm was closed and reopened.
- Fixed an issue that could result in a shutdown of the sync-worker with the message "...PartialSync: Violation of no-merge invariant...".
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.15.0
Release 3.15.0 (2018-11-21)
Enhancements
- Added support for the latest Node.js 10 LTS.
- In cases of very high load the server could run out of memory. It's now possible to configure the maximum size of the backlog of changes that the server will accept before it starts rejecting connections. Clients will wait 5 min after a rejection before connecting again.
TheSyncServiceConfig.maxUploadBacklog
should therefore be configured so high that the server will be busy handling the queued work for at least 5 min.
Fixed
- Fixed an issue that could cause ROS to unnecessarily delete its entire cache folder when a user is deleted rather than just the files associated with that user. (#1348, since v3.1.3)
- Fixed an issue that would prevent the proxy from connecting to the sync service if a request arrives before the sync service has started. This would have resulted in log messages, similar to
HTTP upgrade failed (service did not respond properly) ... "detail":"Timeout occured upgrading websocket request"
. (#1349, since v2.0.7)
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.14.0
Enhancements
- Added two new config parameters -
verifyRealmsAtStart
andrunPrecheckInChildProcess
to replace the now deprecatedskipVerifyRealmsAtStart
anddisablePrecheckInChildProc
in theSyncService
configuration object. The defaults for the new parameters arefalse
, so unless explicitly configured, consistency checks of the partial Realms will not be run on startup. The old parameters will continue to be respected but will be removed in a future version. (#1338) - Expose
SyncServiceConfig.maxFilesInCache
to control the max number of files that will be kept in the sync server cache. (#1340)
Fixed
- Clarified the wording around an error that was occasionally being logged at a
warn
level with a message starting withInternal sync error
. The error message now starts withUnable to connect to a Realm
and there's a clarification that this is a transient error that the server will recover automatically from. Also, reduced the log level todetail
to properly reflect the ephemeral nature of the error. (#1291)
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.13.1
Enhancements
- None
Fixed
- When using query-based sync, fatal error messages in the server log containing
name=realm::_impl::CorruptedPartialFileAssoc, message=Expired reference version
could be seen. This situation could be experienced if a reference file was accessed both through query-based sync and regular sync (i.e., through Realm Studio), and the server decided to perform log compaction on the reference file. This has now been fixed. - A set of bugs that could lead to bad changesets were fixed. An example of an assertion, caused by these bugs, is:
[realm-core-5.10.0] Assertion failed: ndx < size() with (ndx, size()) = [742, 742]
. An example of an error in a log file, caused by these bugs, is:ERROR: Client[1]: Connection[1]: Session[14]: Failed to parse, or apply received changeset: ndx out of range
.
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.13.0
Enhancements
- None
Fixed
- Fix some cases where a ROS cluster on top of Consul will return
503 Service Unavailable
responses even though there was nothing wrong. Additionally, we've added more information when returning 503 responses, so it's easier to diagnose which service is causing problems. - The Realm Object Server will now store all Realms it opens under the
data/realms
folder. Previously it stored some of the files under the documents folder of the currently logged in user or in theRealm Object Server
folder where ROS is running from. The Realms in the old location (Documents/Realm Object Server
andROS-install-folder/Realm Object Server
) can be safely deleted to reclaim some space.
Breaking changes
- None
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.12.4
Release 3.12.4 (2018-10-25)
Enhancements
- Reduced verbosity of some log messages.
Fixed
- A bug in log compaction of link lists was fixed. This bug would lead to errors of the type "index out of range" or "ndx < size()".
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.12.2
Enhancements
- Added
syncServiceConfigOverride
callback toBasicServer
's start params to allow customizing the default values for the sync service config properties without having to add all services manually. (#1303)
Fixed
- Added ability to override
enableRealmStateSizeReporting
setting tofalse
using an endpoints annotation.
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).
Release 3.12.1
Enhancements
- The vacuum command is enhanced to take options history-type and bump-realm-version.
Fixed
- Avoid crashing the server when compaction is requested for a file whose history type is not yet set to server (realm/realm-sync#2492).
Compatibility
- Server API's are backwards compatible with all previous ROS releases in the 3.x series.
- The server is compatible with all previous SDKs supporting the ROS 3.x series.
Installation & rollback instructions
Please see the Realm Docs for installation, upgrade and rollback instructions.
Notable known issues
- Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.
- Server side Realm files do not compact automatically. The standalone commandline tool "realm-vacuum" can be manually executed to compress free space and old history (See https://docs.realm.io/platform/self-hosted/manage/server-side-file-growth#vacuum-utility).