Skip to content
6e6d018
Compare
Choose a tag to compare

[2.7.3] - 2021-10-27

Changed

  • Disabled role's validate_config is not called during config validation.

  • Update @tarantool.io/ui-kit and frontend-core dependencies to support the new design style.
    image

[2.7.2] - 2021-10-08

Added

  • 'Make all instances writeable' configuration field can be hidden via frontend-core's set_variable feature or at runtime.

  • New get_issues callback in role API to collect user-defined issues. The issues are gathered from the enabled roles only (which are present in service-registry).

  • Allow disabling built-in HTTP "admin" user:

    • by specifying auth_builtin_admin_enabled: false in the instances.yml;
    • using TARANTOOL_AUTH_BUILTIN_ADMIN_ENABLED=false environment variable;
    • permanently in init.lua:
-- init.lua

require('cartridge.auth-backend').set_builtin_admin_enabled(false)
cartridge.cfg({
    auth_backend_name = 'cartridge.auth-backend',
    ...
})

Changed

  • Make built-in HTTP "admin" user a part of default auth backend. Custom backends are free of it now.

Fixed

  • Eliminate unnecessary transactions after the restart before the replication sync. This reduces the chance the hardware restart leads to WAL corruption (#1546).

  • Fix net.box clients compatibility with future tarantool 2.10 versions.

  • Fix vshard rebalancer broken by roles reload.

[2.7.1] - 2021-08-10

Fixed

  • Update errors dependency to 2.2.1 (Fix compatibility with Tarantool 2.9).

[2.7.0] - 2021-08-10

Added

  • New suggestion to restart replication. Whenever the replication isn't running and the reason isn't in the dead upstream, Cartridge will show the corresponding banner in WebUI.
    image

  • More server details in WebUI: membership, vshard-router, and vshard-storage.

  • Roles are stopped with the on_shutdown trigger where it's supported (in Tarantool 2.8+).

  • New cartridge.cfg options:

    • webui_prefix (default: "") allows to modify WebUI routes.
    • webui_enforce_root_redirect (default: true) manage redirection.

    To sum up, now they look as follows:

    • <PREFIX>/admin/;
    • <PREFIX>/admin/api;
    • <PREFIX>/admin/config;
    • <PREFIX>/admin/cluster/*;
    • <PREFIX>/static/*;
    • <PREFIX>/login;
    • <PREFIX>/logout;
    • / and <PREFIX>/ redirect to /<PREFIX>/admin (if enabled).
  • Support rebalancer_max_sending vshard option.

  • New validate_config method in GraphQL API.

  • Add zone and zone_distances parameters to test helpers.

Changed

  • Merge "Schema" and "Code" pages. Also, allow validating all files, not only the schema.yml.

  • Allow expelling a leader. Cartridge will appoint a new leader according to the failover priority from the topology.

  • Add default pool.map_call timeout 10 seconds.

  • Forbid starting an instance absent in instances.yml.

  • Update errors dependency to 2.2.0 with a new method errors.netbox_wait_async to wait for netbox.future result.

  • Update membership dependency to 2.4.0 (Changelog).

  • Update ddl dependency to 1.5.0 which supplements the clusterwide config with an example schema (Changelog).

  • Update vshard to 0.1.18 ([Changelog](<https://github.com/tarantool/vshard/releases/tag/0.1.18)).

Fixed

  • Leaders replaced during stateful failover can be expelled now.

  • Make failover logging more verbose.

  • Fix hot-reload for roles that leave gaps in httpd routes.

  • Check user e-mail uniqueness when editing.

  • Expelled instances are removed from the _cluster space.

  • Fix get_enabled_roles to work w/o arguments.

  • Don't default to syslog driver unless /dev/log or /var/run/syslog are available.

  • Fix inappropriate consistency timeout that led to "Timed out" error during forceful leader promotion.

  • Support automatic parsing of Tarantool Enterprise box options audit_log and audit_nonblock.

  • Instance won't suspect any members during RecoveringSnapshot and BootstrappingBox.

Enhanced in WebUI

  • Allow to blacklist subpages for complex modules.

  • Fix notifications displaying. Close it by clicking anywhere. Keep it open while the mouse is over.

  • Various styles enhancements.

766d24b
Compare
Choose a tag to compare

[2.7.2] - 2021-10-08

Added

  • 'Make all instances writeable' configuration field can be hidden via frontend-core's set_variable feature or at runtime.

  • New get_issues callback in role API to collect user-defined issues. The issues are gathered from the enabled roles only (which are present in service-registry).

  • Allow disabling built-in HTTP "admin" user:

    • by specifying auth_builtin_admin_enabled: false in the instances.yml;
    • using TARANTOOL_AUTH_BUILTIN_ADMIN_ENABLED=false environment variable;
    • permanently in init.lua:
-- init.lua

require('cartridge.auth-backend').set_builtin_admin_enabled(false)
cartridge.cfg({
    auth_backend_name = 'cartridge.auth-backend',
    ...
})

Changed

  • Make built-in HTTP "admin" user a part of default auth backend. Custom backends are free of it now.

Fixed

  • Eliminate unnecessary transactions after the restart before the replication sync. This reduces the chance the hardware restart leads to WAL corruption (#1546).

  • Fix net.box clients compatibility with future tarantool 2.10 versions.

  • Fix vshard rebalancer broken by roles reload.

[2.7.1] - 2021-08-10

Fixed

  • Update errors dependency to 2.2.1 (Fix compatibility with Tarantool 2.9).

[2.7.0] - 2021-08-10

Added

  • New suggestion to restart replication. Whenever the replication isn't running and the reason isn't in the dead upstream, Cartridge will show the corresponding banner in WebUI.
    image

  • More server details in WebUI: membership, vshard-router, and vshard-storage.

  • Roles are stopped with the on_shutdown trigger where it's supported (in Tarantool 2.8+).

  • New cartridge.cfg options:

    • webui_prefix (default: "") allows to modify WebUI routes.
    • webui_enforce_root_redirect (default: true) manage redirection.

    To sum up, now they look as follows:

    • <PREFIX>/admin/;
    • <PREFIX>/admin/api;
    • <PREFIX>/admin/config;
    • <PREFIX>/admin/cluster/*;
    • <PREFIX>/static/*;
    • <PREFIX>/login;
    • <PREFIX>/logout;
    • / and <PREFIX>/ redirect to /<PREFIX>/admin (if enabled).
  • Support rebalancer_max_sending vshard option.

  • New validate_config method in GraphQL API.

  • Add zone and zone_distances parameters to test helpers.

Changed

  • Merge "Schema" and "Code" pages. Also, allow validating all files, not only the schema.yml.

  • Allow expelling a leader. Cartridge will appoint a new leader according to the failover priority from the topology.

  • Add default pool.map_call timeout 10 seconds.

  • Forbid starting an instance absent in instances.yml.

  • Update errors dependency to 2.2.0 with a new method errors.netbox_wait_async to wait for netbox.future result.

  • Update membership dependency to 2.4.0 (Changelog).

  • Update ddl dependency to 1.5.0 which supplements the clusterwide config with an example schema (Changelog).

  • Update vshard to 0.1.18 ([Changelog](<https://github.com/tarantool/vshard/releases/tag/0.1.18)).

Fixed

  • Leaders replaced during stateful failover can be expelled now.

  • Make failover logging more verbose.

  • Fix hot-reload for roles that leave gaps in httpd routes.

  • Check user e-mail uniqueness when editing.

  • Expelled instances are removed from the _cluster space.

  • Fix get_enabled_roles to work w/o arguments.

  • Don't default to syslog driver unless /dev/log or /var/run/syslog are available.

  • Fix inappropriate consistency timeout that led to "Timed out" error during forceful leader promotion.

  • Support automatic parsing of Tarantool Enterprise box options audit_log and audit_nonblock.

  • Instance won't suspect any members during RecoveringSnapshot and BootstrappingBox.

Enhanced in WebUI

  • Allow to blacklist subpages for complex modules.

  • Fix notifications displaying. Close it by clicking anywhere. Keep it open while the mouse is over.

  • Various styles enhancements.

8e57ed8
Compare
Choose a tag to compare

[2.7.1] - 2021-08-10

Fixed

  • Update errors dependency to 2.2.1 (Fix compatibility with Tarantool 2.9).

[2.7.0] - 2021-08-10

Added

  • New suggestion to restart replication. Whenever the replication isn't running and the reason isn't in the dead upstream, Cartridge will show the corresponding banner in WebUI.
    image

  • More server details in WebUI: membership, vshard-router, and vshard-storage.

  • Roles are stopped with the on_shutdown trigger where it's supported (in Tarantool 2.8+).

  • New cartridge.cfg options:

    • webui_prefix (default: "") allows to modify WebUI routes.
    • webui_enforce_root_redirect (default: true) manage redirection.

    To sum up, now they look as follows:

    • <PREFIX>/admin/;
    • <PREFIX>/admin/api;
    • <PREFIX>/admin/config;
    • <PREFIX>/admin/cluster/*;
    • <PREFIX>/static/*;
    • <PREFIX>/login;
    • <PREFIX>/logout;
    • / and <PREFIX>/ redirect to /<PREFIX>/admin (if enabled).
  • Support rebalancer_max_sending vshard option.

  • New validate_config method in GraphQL API.

  • Add zone and zone_distances parameters to test helpers.

Changed

  • Merge "Schema" and "Code" pages. Also, allow validating all files, not only the schema.yml.

  • Allow expelling a leader. Cartridge will appoint a new leader according to the failover priority from the topology.

  • Add default pool.map_call timeout 10 seconds.

  • Forbid starting an instance absent in instances.yml.

  • Update errors dependency to 2.2.0 with a new method errors.netbox_wait_async to wait for netbox.future result.

  • Update membership dependency to 2.4.0 (Changelog).

  • Update ddl dependency to 1.5.0 which supplements the clusterwide config with an example schema (Changelog).

  • Update vshard to 0.1.18 ([Changelog](<https://github.com/tarantool/vshard/releases/tag/0.1.18)).

Fixed

  • Leaders replaced during stateful failover can be expelled now.

  • Make failover logging more verbose.

  • Fix hot-reload for roles that leave gaps in httpd routes.

  • Check user e-mail uniqueness when editing.

  • Expelled instances are removed from the _cluster space.

  • Fix get_enabled_roles to work w/o arguments.

  • Don't default to syslog driver unless /dev/log or /var/run/syslog are available.

  • Fix inappropriate consistency timeout that led to "Timed out" error during forceful leader promotion.

  • Support automatic parsing of Tarantool Enterprise box options audit_log and audit_nonblock.

  • Instance won't suspect any members during RecoveringSnapshot and BootstrappingBox.

Enhanced in WebUI

  • Allow to blacklist subpages for complex modules.

  • Fix notifications displaying. Close it by clicking anywhere. Keep it open while the mouse is over.

  • Various styles enhancements.

c8cfb91
Compare
Choose a tag to compare

[2.7.0] - 2021-08-10

Added

  • New suggestion to restart replication. Whenever the replication isn't running and the reason isn't in the dead upstream, Cartridge will show the corresponding banner in WebUI.
    image

  • More server details in WebUI: membership, vshard-router, and vshard-storage.

  • Roles are stopped with the on_shutdown trigger where it's supported (in Tarantool 2.8+).

  • New cartridge.cfg options:

    • webui_prefix (default: "") allows to modify WebUI routes.
    • webui_enforce_root_redirect (default: true) manage redirection.

    To sum up, now they look as follows:

    • <PREFIX>/admin/;
    • <PREFIX>/admin/api;
    • <PREFIX>/admin/config;
    • <PREFIX>/admin/cluster/*;
    • <PREFIX>/static/*;
    • <PREFIX>/login;
    • <PREFIX>/logout;
    • / and <PREFIX>/ redirect to /<PREFIX>/admin (if enabled).
  • Support rebalancer_max_sending vshard option.

  • New validate_config method in GraphQL API.

  • Add zone and zone_distances parameters to test helpers.

Changed

  • Merge "Schema" and "Code" pages. Also, allow validating all files, not only the schema.yml.

  • Allow expelling a leader. Cartridge will appoint a new leader according to the failover priority from the topology.

  • Add default pool.map_call timeout 10 seconds.

  • Forbid starting an instance absent in instances.yml.

  • Update errors dependency to 2.2.0 with a new method errors.netbox_wait_async to wait for netbox.future result.

  • Update membership dependency to 2.4.0 (Changelog).

  • Update ddl dependency to 1.5.0 which supplements the clusterwide config with an example schema (Changelog).

  • Update vshard to 0.1.18 ([Changelog](<https://github.com/tarantool/vshard/releases/tag/0.1.18)).

Fixed

  • Leaders replaced during stateful failover can be expelled now.

  • Make failover logging more verbose.

  • Fix hot-reload for roles that leave gaps in httpd routes.

  • Check user e-mail uniqueness when editing.

  • Expelled instances are removed from the _cluster space.

  • Fix get_enabled_roles to work w/o arguments.

  • Don't default to syslog driver unless /dev/log or /var/run/syslog are available.

  • Fix inappropriate consistency timeout that led to "Timed out" error during forceful leader promotion.

  • Support automatic parsing of Tarantool Enterprise box options audit_log and audit_nonblock.

  • Instance won't suspect any members during RecoveringSnapshot and BootstrappingBox.

Enhanced in WebUI

  • Allow to blacklist subpages for complex modules.

  • Fix notifications displaying. Close it by clicking anywhere. Keep it open while the mouse is over.

  • Various styles enhancements.

cc607f5
Compare
Choose a tag to compare

[2.6.0] - 2021-04-26

Added

  • Update vshard to 0.1.17. (Changelog).

  • Update graphql to 0.1.1. (Changelog).

  • New test helper: cartridge.test-helpers.stateboard.

  • New failover option in the cluster test helper for easier failover setup.

Changed

  • Move DDL related code out of Cartridge and ship it as a permaent role in the ddl rock. No observable functionality is affected. The roles remains registered implicitly. Nonetheless it's recomended to add it explicitly to cartridge.cfg({roles = {'cartridge.roles.ddl-manager'}}) (if it's actually used) as this implicity may be removed in future.

Fixed

  • Fix unclear timeout errors in case of InitError and BootError states.

  • Fix inconsistency which could occur while longpolling stateboard in unstable networks.

  • Increase timeout for the validate_config stage from 1 to 10 seconds. It afftected config_patch_clusterwide in v2.5, mostly on large clusters.

Enhanced in WebUI

  • Highlight if file name exists in file create/rename mode on Code page.
a9a113f
Compare
Choose a tag to compare

[2.5.1] - 2021-03-24

Added

  • Extend GraphQL issues API with aliens topic. The issue warns if two separate clusters share the same cluster cookie.

  • Enhance error messages when they're transferred over the network. Supply it with the connection URI.

Fixed

  • Don't skip two-phase commit prematurely. From now on, the decision to skip the apply_config is made by every instance individually. The validation step is never skipped.

  • Avoid WebUI and pool.map_call requests hanging because of network connection problems.

  • Fix unclear "Timeout exceeded" error. It affects v2.5.0 two-phase commit when an instance is stuck in ConfiguringRoles state.

7d6e496
Compare
Choose a tag to compare

[2.5.0] - 2021-03-05

Issues and suggestions

  • Show an issue when ConfiguringRoles state gets stuck for more than 5s.

  • Show a suggestion to disable broken instances.

  • Show a suggestion to force reapply clusterwide configuration.

Configuration options

  • New cartridge.cfg option webui_enabled (default: true). Otherwise, HTTP server remains operable (and GraphQL too), but serves user-defined roles API only.

  • New cartridge.cfg option http_host (default: 0.0.0.0) which allows to specify the bind address of the HTTP server.

Miscellaneous enhancements

  • Allow observing cluster from an unconfigured instance WebUI.

  • Introduce a new graphql parser (libgraphqlparser instead of lulpeg). It conforms to the newer GraphQL specification and provides better error messages. The "null" literal is now supported. But some other GraphQL expressions are considered invalid (e.g. empty subselection).

  • Properly handle etcd index updates while polling stateful failover updates. The problem affected long-running clusters and resulted in flooding logs with the "Etcd cluster id mismatch" warnings.

  • Refactor two-phase commit (patch_clusterwide) logics: don't use hardcoded timeout for the prepare stage, move upload to a separate stage.

  • Eliminate GraphQL error "No value provided for non-null ReplicaStatus" when a replica is removed from the box.space._cluster.

  • Allow specifying server zone in join_server API.

  • Don't make formatting ugly during config upload.

  • Hide the bootstrap button when it's not necessary (e.g. before the cluster is bootstrapped, and in vshardless cluster too).

  • Properly display an error if changing server zone fails.

  • Fix disabled instances style.

Compare
Choose a tag to compare

[2.4.0] - 2020-12-29

Fencing and failover

  • The new fencing feature protects a replicaset from the presence of multiple leaders when the network is partitioned. It forces an isolated leader to become read-only.

  • New failover parameter failover_timeout specifies the time (in seconds) used by membership to mark suspect members as dead which triggers failover. The default value of failover_timeout increased from 3 to 20 seconds (important change).

  • The rpc_* functions now consider suspect members as healthy to be in agreement with failover (important change).

  • All these parameters, fencing_enabled, fencing_pause, fencing_timeout, are available for customization via Lua and GraphQL API, and in WebUI too.

Zones and zone distances

  • Add support of replica weights and zones via a cluster-wide config new section zone_distances and a server parameter zone.

  • Update server details dialog in WebUI.

Issues and suggestions

  • Fix upstream.idle issue tolerance to avoid unnecessary warnings "Replication: long idle (1 > 1)".

  • Indicate config checksum mismatch in the issues list.

  • Indicate the change of arvertise_uri in the issues list.

  • Show an issue if the cluster-wide config is locked on an instance.

  • Show a suggestion to heal the cluster after relocating servers and changing their advertise_uri.

  • Don't get stuck in ConnectingFullmesh state when an instance is restarted with a different advertise_uri. Also, keep the "Server details" dialog in WebUI operable in this case.

  • Allow applying config when an instance is in OperationError state. It doesn't cause a loss of quorum anymore.

Hot-reload

  • Add new feature for hot reloading roles code without restarting an instance: cartridge.reload_roles(). The feature is experimental and should be enabled explicitly: cartridge.cfg({roles_reload_allowed = true}). Use it with caution.

Miscellaneous enhancements

  • New cartridge.cfg option swim_broadcast to manage instances auto-discovery on start. Default: true.

  • New argparse options for tarantool 2.5+: replication_synchro_quorum, replication_synchro_timeout, memtx_use_mvcc_engine.

  • Stop vshard fibers when the corresponding role is disabled.

  • Make console.listen error more clear when console_sock exceeds UNIX_PATH_MAX limit.

  • Allow removing spaces from DDL schema for the sake of drop migrations.

  • Make DDL schema validation stricter. Forbid redundant keys in schema top-level and make spaces mandatory.

  • Refresh interval and stat refresh period variables can be customized via frontend-core set_variable feature or at runtime. See #1061.

  • Properly display errors on WebUI pages "Users" and "Code".

2ed8fb5
Compare
Choose a tag to compare

[2.3.0] - 2020-08-26

Added

  • When failover mode is stateful, all manual leader promotions will be consistent: every instance before becoming writable performs wait_lsn operation to sync with previous one. If consistency couldn't be reached due to replication failure, a user could either revert it (promote previous leader), or force promotion to be inconsistent.
  • Early logger initialization (for Tarantool > 2.5.0-100, which supports it).
  • Add probe_uri_timeout argparse option responsible for retrying "Can't ping myself" error on startup.
  • New test helper: cartridge.test-helpers.etcd.
  • Support on_push and on_push_ctx options for cartridge.rpc_call().
  • Changing users password invalidates HTTP cookie.
  • Support GraphQL default variables.

Fixed

  • Eventual failover may miss an event while roles are being reconfigured.
  • Compatibility with pipe logging, see tarantool/tarantool#5220.
  • Non-informative assertion when instance is bootstrapped with a distinct advertise_uri.
  • Indexing nil value in get_topology() query.
  • Initialization race of vshard storage which results in OperationError.
  • Lack of vshard router reconnection attempts to the replicas.
  • Make GraphQL syntax errors more clear.
  • Better errors.pcall() performance, errors rock updated to v2.1.4.

Enhanced is WebUI

  • Show instance names in issues list.
  • Show app name in window title.
  • Add "Force leader promotion" button in stateful failover mode.
  • Indicate consistent switchover problems with a yellow leader flag.
Compare
Choose a tag to compare

[2.2.1] - 2020-08-11

Fixed

  • Eventual failover may miss an event while roles are being reconfigured.
  • ApplyConfigError: fiber is cancelled (#994)