| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Support out-of-sync between db and index in mango
|
|/
|
|
|
|
|
|
|
| |
- under situation where the document is deleted while the mrview
index for this document is not updated, the returned value from
mrview is {doc,null}. There is no such consideration in Mango to
cause case_clause error. This fix is to consider out-of-sync between
documents in database and their index and not to cause 500 when
the _find endpoint is called.
|
|\
| |
| | |
Fixes for _local doc update and _bulk_docs operations with new_edits false
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Fix in get_minimum_purge_seq/1
|
|/
|
|
|
|
|
|
| |
- should pass DbName instead of db record to validate client,
and also display error when client doesn't exist, and mem3:dbname/1
to get DbName for get_design_docs/1
COUCHDB_3326
|
|\
| |
| | |
Allow to return with accepted for mixed nodes in cluster
|
|/
|
|
|
|
|
|
|
| |
- for mixed nodes in cluster, i.e. nodes with different releases,
it is possible that "accepted" result is returned instead of ok when
purge request is sent. This commit is used to address badmatch error
where "accepted" returned result is not considered.
COUCHDB-3326
|
| |
|
|
|
|
|
| |
Expose is_system_db_name as a way to verify if a binary string is the
name of a system database.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This fixes a memory bug:
https://github.com/apache/couchdb-snappy/commit/2038ad13b1d6926468f25adea110028e3c0b4b0c
|
|\
| |
| | |
Fix ets_lru configuration in chttpd application
|
|/
|
|
|
| |
The code was incorect in a sense that it was using is_integer guard,
while `config:get` cannot return integer.
|
|
|
|
|
|
| |
Previously returning null from mango native proc lead to case clause error in
couch_query_servers. Instead return a proper shape but with null results for
each reduction.
|
|
|
|
|
|
| |
Previously it was too easy to crash the whole node when any of couch_log's
children restarted. To improve resiliency, let couch_log application restart
a few more times before taking down the whole node with it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gen_server, gen_fsm and gen_statem might send extra args when terminating. This
is a recent behavior and not handling these extra args could lead to couch_log
application crashing and taking down the whole VM with it.
There are two improvements to fix the issue:
1) Handle the extra args. Format them and log as they might have useful
information included.
2) Wrap the whole `format` function in a `try ... catch` statement. This will
avoid any other cases where the logger itself if crashing when attepting to
format error events.
|
|\
| |
| | |
Fix test failure on upgrade_v5_test
|
|/
|
|
| |
COUCHDB-3326
|
|\
| |
| | |
Upgrade disk version to 7/latest for databases generated prior to clustered purge builds
|
|/
|
|
|
|
|
|
| |
- for databases generated before this code base, the disk
version needs to be upgraded to 7 or higher so that it
can match the db_header with purge_tree and purge_seq_tree
COUCHDB-3326
|
|\
| |
| | |
Test correct condition for exceed_limit error
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we were testing if Pos + TotalBytes exceeded the pread
limit. This is the wrong logic entirely. We are trying to prevent an
attempted call to file:pread/3 where the third parameter, the number
of bytes to read, is a very large number (due to a corruption
elsewhere, say). Instead we throw exceed_limit as soon as a file gets
above a certain size.
I switched this to an if statement to make it clear that the "read
past EOF" and "try to read too many bytes" checks are quite distinct
from each other.
|
|\
| |
| | |
Add document_purges counter for stats
|
|/
|
|
| |
COUCHDB-3326
|
|\
| |
| | |
Restrict access to `_active_tasks` to server admin
|
|/ |
|
|\
| |
| | |
Pass user_ctx in _bulk_get
|
|/
|
|
| |
This fixes _bulk_get for _users db and probably others I don't know
|
|\
| |
| | |
Validate database prefix against DBNAME_REGEX for system dbs
|
|/
|
|
|
|
|
|
|
| |
Previously we only checked that the suffix of the database is
matching one of the predefined system databases. We really should
check the prefix against DBNAME_REGEXP to prevent creation of
illegally named databases.
This fixes #1644
|
|
|
|
| |
Fixes #1396
|
|
|
|
|
|
|
|
|
| |
This can now return references that are from NIFs monitoring the
process. This is important for the new file IO NIFs that monitor the
controlling process. For now we'll just take the easy way out by
filtering the references from our returned monitor lists.
Fixes #1396
|
|
|
|
| |
Fixes #1396
|
|
|
|
|
|
|
|
|
|
| |
This is a temporary bandaid to allow us to continue using parameterized
modules with Erlang 21. We'll have to go back and modify every one of
these files to avoid that as well as figuring out how to upgrade
mochiweb to something that doesn't use parameterized modules by the time
they are fully removed from Erlang.
Fixes #1396
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously a user could insert a VDU function into one of the _replicator
databases such that it prevents the replicator application from updating
documents in that db. Replicator application would then crash and prevent
replications from running on the whole cluster.
To avoid crashing the replicator when saving documents, log the error
and return `{ok, forbidden}`. The return might seem odd but we are
asserting that forbidden is an OK value in this context and explicitly
handling it. This shape of the return also conforms to the expected
`{ok, _Rev}` result, noticing that `_Rev` is never actually used.
|
| |
|
|
|
|
| |
Fixes #1612
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures they will be ready to process requests as soon as the application
starts up. This should make the service available sooner and should help tests
which setup and tear down the services repeatedly, where it would avoid an
annoying retry-until-ready loop.
Per-node servers/buffers are started in the init method of the monitors. There
is not chance of deadlock there because per-node supervisors are started before
the monitors.
Issue #1625
|
|
|
|
|
|
|
| |
This has been solid for years and when not enabled can be a performance
bottleneck.
Fixes #1625
|
|
|
|
|
|
|
|
|
|
| |
This used to be the case before the scheduling replicator:
https://github.com/apache/couchdb-couch-replicator/blob/master/src/couch_replicator.erl#L166
This is also how replications backed by a document in a _replicator db behave:
https://github.com/apache/couchdb/blob/master/src/couch_replicator/src/couch_replicator_doc_processor.erl#L283
|