Releases: couchbase/sync_gateway
Sync Gateway 2.8.1 - February, 2021
https://docs.couchbase.com/sync-gateway/2.8/release-notes.html#lbl-rel281
Note: Release 2.8.1 has now been superseded by Release 2.8.2 (March 2021). Users of 2.8.1 should upgrade to 2.8.2 as soon as practicable.
New Features
Metrics REST API
Release 2.8.1 sees the transition to general availability of Couchbase Sync Gateway’s Metrics REST API, which was introduced as a developer preview in release 2.8.0.
This feature exposes Sync Gateway’s extensive stats in both JSON and Prometheus-compatible format. For more on how to enable the integration of Sync Gateway’s metrics with one of the most popular monitoring and alerting solutions — see: Prometheus Integration
Enhancements
Configuration Changes
Custom Response Headers
It is now possible to remove product versions from Sync Gateway responses using the hide_product_versions
setting in the Config file. This customization of responses avoids revealing the version of the Sync Gateway to HTTP requests to the root path — see: Hide Product Version in Headers and CBG-1235
Connection String Overrides
It is now possible to use the server connection string to override the current heuristic-driven behavior for selecting internal/external networking matches — see: Couchbase Server Connection String and CBG-1276
Other Enhancements
- CBG-1152 — Additional logging context for SGR2 checkpointing
- CBG-1235 — Customizable HTTP response to ""/"" (suppress headers)"
- CBG-1254 — Add a new rev option for document_changed event handler
- CBG-1267 — Exit early from DocChange after running callback for _sync:cfg docs
- CBG-1270 — Add USE INDEX to index readiness queries
- CBG-1274 — Add Prometheus alert examples
- CBG-1276 — Implement network connstr flag for cbdatasource alt address shims
Issues and Resolutions
Known Issues
- CBG-798 — Sync Gateway requires Couchbase Server nodes to use the same SSL memcached port
- CBG-1127 — Treat resurrected tombstones as non-conflict when no shared history
- CBG-1341 — Creating mobile tombstone for existing CBS tombstone causes loop
Fixed Issues
- CBG-1203 — sgcollect_info not collecting system information
- CBG-1234 — Prevent import cfg startup races
- CBG-1252 — Changes limit incorrectly applied in case of CBG-946
- CBG-1263 — Pre-2.8 cbgt index definitions not being removed post-upgrade
- CBG-1265 — Missing document in changes feed when using a compound sequence number as since parameter
- CBG-1311 — ISGR: Pull replications incompatible with active-side allow_conflicts=false
Sync Gateway 2.8.0 - October, 2020
https://docs.couchbase.com/sync-gateway/2.8/release-notes.html#lbl-rel280
API Changes
This release introduces two new endpoints to the Admin Rest API.
_replication
- used to initialize Inter-Sync Gateway Replication_replicationStatus
- used to set or query the status of a replication- The
_replicate
and_active_tasks
endpoints are both deprecated, as they are replaced by the above.
Other Enhancements
- CBG-1022 — Require replication to be stopped prior to upsert
- CBG-921 — Ignore transaction ATR documents during DCP processing
- CBG-905 — Support using custom OIDC claim as Sync Gateway username
- CBG-880 — Python 3 support for sgcollect
- CBG-877 — Remove inappropriate logging warning related JSON parsing from ReadJSONFromMIME when request body is empty
- CBG-876 — Include Bearer prefix when sending token base authentication request in OIDC E2E tests
- CBG-864 — Improve addJSON-related error handling
- CBG-821 — Limit on channel queries triggered by 2.x replication
- CBG-820 — Add state for OIDC auth code authentication
- CBG-803 — Support for OIDC provider config refresh
- CBG-802 — Being able to configure OIDC Test Provider with HTTPS
- CBG-801 — Auto-generated OIDC callback URL should include provider when non-default
- CBG-800 — OnDemandImportForWrite bypasses migrate handling
- CBG-752 — sgcollect: Re-gzip rotated logfiles post-redaction, clean up intermediate extracted files
- CBG-751 — Improve REST-based sgcollect_info options validation
- CBG-719 — Update OIDC library
- CBG-714 — Log warning on ignored, invalid channel data
- CBG-709 — Inter-Sync Gateway Replication
- CBG-697 — SGW startup routine could use more retry logic while CBS warms up
- CBG-688 — Improve logging for x.509 connection errors
- CBG-673 — Include USE INDEX hint with channel queries
- CBG-665 — Make trace level logging a typical file logger
- CBG-664 — Enhance trace logging for blip messages
- CBG-658 — Optimize LogKey string lookup
- CBG-653 — Add 'norev' BLIP handler to log detailed error information
- CBG-640 — Wrong content type for _user and _role
- CBG-633 — Clean up duplicate db definitions in blipHandler/blipSyncContext
- CBG-630 — Validate whether multiple databases connect to the same bucket
- CBG-624 — Add database config option for HttpOnly cookies
- CBG-622 — Use secure cookies when SG is configured to listen over TLS
- CBG-600 — sgcollect_info TMPDIR setting should be a real argument
- CBG-585 — Avoid log redaction cost via UD/MD/SD when log-level disabled
- CBG-581 — Write simple JSON HTTP responses directly as raw bytes
- CBG-437 — Return error when receiving deltas for deltaSrc revisions which are tombstoned
Known Issues
- CBG-1127 — Treat resurrected tombstones as non-conflict when no shared history
- CBG-798 — Sync Gateway requires Couchbase Server nodes to use the same SSL memcached port
Fixed Issues
- CBG-1072 — CAS race can result in unordered recentSequences
- CBG-983 — _all_docs with keys parameter not returning revID
- CBG-951 — Deleted documents should set _deleted:true for import filter function
- CBG-946 — Repeated change entries on access grant to doc’s previous channel
- CBG-926 — User name not being logged for initial HTTP request
- CBG-819 — Generate empty delta as {} instead of null
- CBG-812 — Running compact when UseViews=true causes an infinite loop
- CBG-744 — OldDoc body in sync function for tombstone resurrections does not contain _deleted=true
- CBG-743 — Doc body in sync function contains _deleted=false
- CBG-741 — 403 Attachment’s doc not being synced during CBL replication
- CBG-731 — Channels query performance degradation when using limit
- CBG-727 — Panic when connecting to non-standard memcached port using couchbase(s):// scheme
- CBG-695 — Alternate addresses are always used if defined instead of applying heuristic
- CBG-661 — Errors from REST API produce invalid JSON
Sync Gateway 2.7.3 - May, 2020
https://docs.couchbase.com/sync-gateway/2.7/release-notes.html#2-7-3may-2020
Fixed at this Release
2.7.2
2.5.0 — April 2019
As part of this release we had 55 issues closed.
Performance Improvements
- #3662 Collate high-volume logs for improved throughput
- #3667 Move _attachments metadata to _sync
- #3766 Independent timing for skipped sequence processing and cache age-out process
- #3823 Avoid CPU spikes when abandoning skipped sequences
- #3862 Improve channel query queueing
Enhancements
- #3558 Initialize cache after DCP start
- #3609 Add validation to limit log file max_size
- #3677 Make bcrypt cost configurable
- #3791 sgcollect_info: Proxy server support using --upload_proxy
- #3792 Ensure consistent use of http.DefaultTransport
- #3798 Report parameters on N1QL errors
- #3815 Include db and handler context in all db-specific logging
- #3833 CouchbaseServerVersion should use cluster_compat_version
- CBG-268 Limit DCP checkpoint persistency frequency
- CBG-247 Reduce CPU associated with large skipped sequence queue
- CBG-233 Improve efficiency of pending sequences processing
Bugs
- #3414 auth.Save() should be CAS safe
- #3783 Large Number Handled Incorrectly
- MB-32044 cbdatasource workers retry removed nodes indefinitely
- #3838 Failed resync doesn’t revert db state to offline
- #3839 n1ql query timeout should be set at both bucket and cluster level
- #3872 Channel cache prepend can fail for some seq, validFrom combinations
- #3898 Avoid nested read locks on BucketLock
- CBG-282 Panic when putting document with duplicate non-imported doc ID
- CBG-278 Sync Gateway panic when stopping 2.0 pull replication with attachments
- CBG-230 _changes with include_docs=true errors on _user pseudo docs
- CBG-197 Change default console logging behaviour
- CBG-234 Prevent N1QL injection in Sync Gateway via _all_docs with startkey and endkey querystring options
Known Issues
- #1264 Sync Gateway memory usage can climb continously is scenarios with ever increasing numbers of channels
- CBG-394 Upgrade to shared_bucket_access with GSI can cause missed mutations
Where to get it
You can download this release from Couchbase.com
2.1.1
As part of this release we had 87 commits which resulted in 6 issues being closed.
Release 2.1.1
Enhancements
- #1658 Purge doesn't remove cached documents
Bugs
- #3692 Failure to write old revision can result in malformed revision body in revtree
- #3724 Resync with xattrs causes warnings for every no-op
- #3738 2.0 replication doesn't notify clients when unable to send rev message
- #3756 DCP Feed does not seed from all nodes
Where to get it
You can download this release from Couchbase.com
2.1.0
As part of this release we had 178 commits which resulted in 27 issues being closed.
Performance Improvements
- #716 Use sync.atomic to synchronize logging logLevel
- #2396 SyncGateway restart after node automatic failover is taking more time
- #2536 SG-Replicator throughput is not increasing with SG-Accelerator
- #2563 Allow callers to provide current value to WriteUpdateWithXattr
Enhancements
- #145 Switch from base/logging.go to 'clog' package
- #341 Sync_Gateway config file only supports one URL in connection string
- #716 Use sync.atomic to synchronize logging logLevel
- #939 Use W3C log format for HTTP logging
- #1021 Enable log level to be set via SG config
- #1652 Differentiate logging between standard out and standard error
- #1964 Add DCP support to Walrus w/ rollback ability
- #3119 Avoid design doc/view creation when already present
- #3526 2.1.0- sg collect info - Show message if sync gateway is not running
- #3584 Sync-gateway does not show any error on logs when used wrong name/value pairs for logging
Bugs
- #1574 Windows installer does not start and stop service wrapper
- #2173 Go-couchbase 500 errors when rebalancing
- #3548 Windows logs are written to "Program Files (x86)" when running from "Program Files"
- #3549 Incompatible Windows filename from _sgcollect_info endpoint
- #3555 _sgcollect_info endpoint fails with 500 error on build 78
- #3559 Output_directory parameter is ignored on sg_collectinfo rest end point
- #3561 Uploadhost is ignored when upload parameter is not given to _sgcollect_info end point
- #3572 _sg_collect_info rest end point : Throwing bad request error for a requirement for upload host with upload enabled to false
- #3583 Sgcollect : No sgcollect info zip for sg accel
- #3632 Sgcollect rest api fails with no write access to "/opt/couchbase-sync-gateway/tools"
- #3655 Sg collect rest API does not create zip files under /home/sync-gateway
Known Issues
- #3562 Sync Gateway requires Couchbase Server nodes to use the same SSL memcached port
Where to get it
You can download this release from Couchbase.com
1.3.1
As part of this release we had 30 commits which resulted in 8 issues being closed.
Enhancements
- #1745 Add retry when trying to connect to a server node in "warmup" state
- #2005 Tombstones don't grant access, don't propagate to users granted access by the doc
- #2013 Azure returns unsigned ID token in response to refresh request
- #2038 Uptake expvar refactoring for perf usage into 1.3.1
- #2046 Service install script enhancement for Ubuntu 16.04
Bugs
- #973 Can't initiate websocket connection
- #1554 Panic: send on closed channel when closing database
- #1999 Sync Gateway terminating changes requests
Where to get it
You can download this release from Couchbase.com
1.3
As part of this release we had 42 issues closed.
Performance Improvements
- #1631 Disable assimilator when autoImport=false and shadower=nil
- #1752 Major inefficiencies replicating docs with many revisions
Enhancements
- #508 Feature Request: Oauth2 Support
- #656 Special characters in channel names cause error
- #1326 Map URI's without a trailing slash to the same handlers as the trailing backslash routes
- #1331 Create and distribute a diagnostics tool
- #1623 POST to _changes is incompatible with CouchDB's implementation
- #1634 Querying a view via the Public REST API returns total row count
- #1663 Add
_replicate
support to SG admin REST API - #1680 SGW /{db}/{doc}?revs_info=true doesn't show revision info
- #1683 Allow forward slashes in attachment names
- #1685 Misleading error message when trying to add attachment to unavailable document
- #1686 New logging REST API endpoint
- #1688 Implement OpenID Connect relying-party support
- #1710 Ability for Sync Gateway to bring itself back online after unexpected offline
- #1774 Functional tests for OIDC authentication
- #1926 Handle invalid username characters in OIDC issuer, subject
Bugs
- #1024 Sync Gateway not reporting changes
- #1034 SyncGateway not looking up the ancestry to find an attachment
- #1051 Couchbase Server indexing stuck on SG views
- #1286 Removing a node from CB-cluster and rebalance causing writer SG to crash
- #1308 [Distributed Index] User not getting docs in _changes when given access via sync function
- #1384 Changes feed returning duplicates for * channel
- #1388 [Distributed Index] Panic when restarting sync_gateway
- #1471 [Distributed Index] Panic when shutting down sg_accel while it is indexing
- #1575 New warning happening on SG 1.2: "MultiChangesFeed: Terminator missing for Continuous/Wait mode"
- #1631 Disable assimilator when autoImport=false and shadower=nil
- #1656 Users can be created with empty password even though
allow_empty_password
isFalse
- #1691 Latest gocb breaks go get
- #1702 _changes with doc_ids filter does not return deleted docs
- #1706 Attachments fail to sync if revpos ancestor on server has been compacted
- #1712 Return an error for unsupported changes filter
- #1728 Attachments still stored for documents rejected by sync function
- #1736 Intermittent unit test failure - TestPostChangesChannelFilterClock
- #1751 SG master doesn't compile on i386
- #1760 Compiling for i386 fails in
pruneRevisions
- #1769 Filter by channel works with arrays only
- #1857 Changes feed with doc_ids filter omits
deleted
properties
Known Issues
- #1979 OIDC - Azure AD must be default provider when using multiple providers
Where to get it
You can download this release from Couchbase.com
1.3 - Developer Preview
As part of this release we had 77 issues closed.
Performance Improvements
- #1631 Disable assimilator when autoImport=false and shadower=nil
- #1752 Major inefficiencies replicating docs with many revisions
Enhancements
- #508 Feature Request: Oauth2 Support
- #656 Special characters in channel names cause error
- #1331 Create and distribute a diagnostics tool
- #1623 POST to _changes is incompatible with CouchDB's implementation
- #1634 Querying a view via the Public REST API returns total row count
- #1663 Add
_replicate
support to SG admin REST API - #1680 SGW /{db}/{doc}?revs_info=true doesn't show revision info
- #1683 Allow forward slashes in attachment names
- #1685 Misleading error message when trying to add attachment to unavailable document
- #1688 Implement OpenID Connect relying-party support
- #1710 Ability for Sync Gateway to bring itself back online after unexpected offline
- #1774 Functional tests for OIDC authentication
- #1926 Handle invalid username characters in OIDC issuer, subject
Bugs
- #1034 SyncGateway not looking up the ancestry to find an attachment
- #1286 Removing a node from CB-cluster and rebalance causing writer SG to crash
- #1384 Changes feed returning duplicates for * channel
- #1388 [Distributed Index] Panic when restarting sync_gateway
- #1471 [Distributed Index] Panic when shutting down sg_accel while it is indexing
- #1575 New warning happening on SG 1.2: "MultiChangesFeed: Terminator missing for Continuous/Wait mode"
- #1631 Disable assimilator when autoImport=false and shadower=nil
- #1656 Users can be created with empty password even though
allow_empty_password
isFalse
- #1691 Latest gocb breaks go get
- #1702 _changes with doc_ids filter does not return deleted docs
- #1706 Attachments fail to sync if revpos ancestor on server has been compacted
- #1712 Return an error for unsupported changes filter
- #1728 Attachments still stored for documents rejected by sync function
- #1751 SG master doesn't compile on i386
- #1760 Compiling for i386 fails in
pruneRevisions
- #1769 Filter by channel works with arrays only
- #1857 Changes feed with doc_ids filter omits
deleted
properties
Known Issues
- #1382 Resync operation only supported in offline state
- #1536 Improve logging when using sg_accel with non-writer config
Where to get it
You can download this release from Couchbase.com