Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 3.2.0 into master. #2135

Merged
merged 7 commits into from
Sep 11, 2024
Merged

Merge 3.2.0 into master. #2135

merged 7 commits into from
Sep 11, 2024

Conversation

callumbirks
Copy link
Contributor

@callumbirks callumbirks commented Sep 11, 2024

Merge from tag 3.2.0 into master

jianminzhao and others added 6 commits July 29, 2024 16:43
After the replicator is stopped, it may still take some time to wind down objects Our test currently allows 2 seconds for it. This turns out not enough in situation when there are following errors,

Sync ERROR Obj=/Repl#21/revfinder#26/ Got LiteCore error: LiteCore NotOpen, "database not open"

This error is artificial. It is because we close the database as soon as the replicator goes to stopped, as opposed to when the replicator is deleted. The error follows the exception to the top frame and takes substantial time when there are many of them.

I increased 2 seconds allowance to 20 seconds. We won't always wait for 20 seconds, because the waiter polls the condition every 50ms. A situation of actual memory leak will wait for whole 20 seconds before failure.
…2112)

The reason the test occasionally fails because we assumeed that successive revisions all get replicated to the destinations, whereas replicator may skip obsolete revision, say rev-2, when rev-3 exists when the pusher turns to find the revisions to push. In our test case, we create successive revisions in intervals of 500 milliseconds. Most time, 500 ms is enough to set apart when the pusher picks the revisions. On Jenkins machine, the log shows that it found obsolete revisions when the test failed.

We modified the test success criteria: we only check that the latest revisions are replicated to the destination. This is the designed behavior.
Allow several timeouts to the HTTP Request. For now, allowing 4 timeouts with each timeout being 5 seconds.
Added a flag to C4DatabaseFlags, kC4DB_DiskSyncFull. This flag is passed to DataFile::Options, which is used as we request a connection to the SQLite database.
* Fixed crash when converting from address (Address) to C4Address by using the cast operator instead of casting the pointer which is not valid anymore due to the change in private variables.

* When creating an address object, used the path not full url for the path.
@callumbirks callumbirks changed the title Merge release/3.2 into master. Merge 3.2.0 into master. Sep 11, 2024
@cbl-bot
Copy link

cbl-bot commented Sep 11, 2024

Code Coverage Results:

Type Percentage
branches 66.04
functions 78.7
instantiations 33.16
lines 77.63
regions 73.3

@jianminzhao jianminzhao self-requested a review September 11, 2024 20:47
@jianminzhao jianminzhao merged commit abe9759 into master Sep 11, 2024
9 checks passed
@jianminzhao jianminzhao deleted the merge/3.2_master branch September 11, 2024 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants