mirror of https://gitee.com/bigwinds/arangodb
Bug fix 3.5/timestamp assert compatibility (#10354)
* assertion on compatibility, when timestamp missing * assertion on compatibility, when timestamp missing * assertion on compatibility, when timestamp missing * assertion on compatibility, when timestamp missing * Update CHANGELOG
This commit is contained in:
parent
461ea7cb5e
commit
6169907f9a
10
CHANGELOG
10
CHANGELOG
|
@ -1,18 +1,20 @@
|
||||||
v3.5.3 (XXXX-XX-XX)
|
v3.5.3 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* Assertion fail when no timestamp in agency's persistence.
|
||||||
|
|
||||||
* Fixed internal issue #647: custom analyzer provokes errors on Active Failover
|
* Fixed internal issue #647: custom analyzer provokes errors on Active Failover
|
||||||
deployment.
|
deployment.
|
||||||
|
|
||||||
* Upgraded bundled version of libcurl to 7.66.0.
|
* Upgraded bundled version of libcurl to 7.66.0.
|
||||||
|
|
||||||
* When starting a coordinator, wait up to 15 seconds for it to appear
|
* When starting a coordinator, wait up to 15 seconds for it to appear
|
||||||
in the agency under key `Supervision/Health` before reporting as "ready".
|
in the agency under key `Supervision/Health` before reporting as "ready".
|
||||||
This is necessary because if the coordinator reports ready beforehand
|
This is necessary because if the coordinator reports ready beforehand
|
||||||
and is used to create databases etc., the supervision may remove all
|
and is used to create databases etc., the supervision may remove all
|
||||||
of the jobs started by non-ready coordinators, considering them to be
|
of the jobs started by non-ready coordinators, considering them to be
|
||||||
from a failed coordinator.
|
from a failed coordinator.
|
||||||
To avoid huge startup delays, the startup will proceed after waiting
|
To avoid huge startup delays, the startup will proceed after waiting
|
||||||
futilely for 15 seconds and log a message.
|
futilely for 15 seconds and log a message.
|
||||||
|
|
||||||
* Fixed issue #10270: Query: Expecting type Array or Object (while executing).
|
* Fixed issue #10270: Query: Expecting type Array or Object (while executing).
|
||||||
|
@ -31,7 +33,7 @@ v3.5.3 (XXXX-XX-XX)
|
||||||
|
|
||||||
* Disallow the usage of subqueries inside AQL traversal PRUNE conditions.
|
* Disallow the usage of subqueries inside AQL traversal PRUNE conditions.
|
||||||
Using subqueries inside PRUNE conditions causes undefined behavior,
|
Using subqueries inside PRUNE conditions causes undefined behavior,
|
||||||
so such queries will now be aborted early on with a parse error
|
so such queries will now be aborted early on with a parse error
|
||||||
instead of running into undefined behavior.
|
instead of running into undefined behavior.
|
||||||
|
|
||||||
* Fixed available flag for hotbackup.
|
* Fixed available flag for hotbackup.
|
||||||
|
|
|
@ -335,6 +335,7 @@ void State::logEmplaceBackNoLock(log_t&& l) {
|
||||||
index_t State::logFollower(query_t const& transactions) {
|
index_t State::logFollower(query_t const& transactions) {
|
||||||
VPackSlice slices = transactions->slice();
|
VPackSlice slices = transactions->slice();
|
||||||
size_t nqs = slices.length();
|
size_t nqs = slices.length();
|
||||||
|
using namespace std::chrono;
|
||||||
|
|
||||||
while (!_ready && !_agent->isStopping()) {
|
while (!_ready && !_agent->isStopping()) {
|
||||||
LOG_TOPIC("8dd4c", DEBUG, Logger::AGENCY) << "Waiting for state to get ready ...";
|
LOG_TOPIC("8dd4c", DEBUG, Logger::AGENCY) << "Waiting for state to get ready ...";
|
||||||
|
@ -422,6 +423,9 @@ index_t State::logFollower(query_t const& transactions) {
|
||||||
if (slice.hasKey("timestamp")) { // compatibility with older appendEntries protocol
|
if (slice.hasKey("timestamp")) { // compatibility with older appendEntries protocol
|
||||||
tstamp = slice.get("timestamp").getUInt();
|
tstamp = slice.get("timestamp").getUInt();
|
||||||
}
|
}
|
||||||
|
if(tstamp == 0) {
|
||||||
|
tstamp = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
|
||||||
|
}
|
||||||
|
|
||||||
bool reconfiguration = query.keyAt(0).isEqualString(RECONFIGURE);
|
bool reconfiguration = query.keyAt(0).isEqualString(RECONFIGURE);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue