1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
Commit graph

806 commits

Author SHA1 Message Date
Roman Gershman
b88fc329a9 fix: serialize subscribe message together with publish message
Fixes #924

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-12 08:15:31 +02:00
Roman Gershman
2ec3d48534 fix: data race during Publish in PubSub
The issue happens when SendMsgVecAsync is called with PubMessage that has
string_view objects referencing objects in stack. We replace string_view
with either string or shared_ptr<string>

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-12 08:15:31 +02:00
Roman Gershman
7975848c36 chore: Expose a corruption when connection writes interleaving messages
The problem happens when a publisher sends a message and a new subscriber registers.
In that case it sends "subscribe" response and the publish messages and those
interleave sometimes.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-12 08:15:31 +02:00
ashotland
85f0f3cbb0
Skip version check if $DFLY_DEV_ENV is set (#928)
Signed-off-by: ashotland <ari@dragonflydb.io>
2023-03-12 00:08:35 +02:00
Chaka
011c086e10
feat(server): Implement BITPOS. (#907)
* feat(server): Implement BITPOS.

Fixes #835.

---------

Signed-off-by: chakaz <chakaz@chakaz>
Co-authored-by: chakaz <chakaz@chakaz>
2023-03-11 22:50:56 +02:00
Tarun Pothulapati
5c57e4efe2
chore(helm): Make release pipeline to update golden files (#916)
Golden files need to be updated as version is updated in the
`Chart.yaml` file. This commit adds the step to update the golden
files in the release pipeline.

To make that possible, The following additional changes are also
required:
- `Go.Work`: This adds support multi-module projects as we will
   have the tests along with the operator in sub-folders. This
   is required to run go cmds from the root directory. (like
   running tests in this case).
- `.helmignore`: This updates the Helm chart to ignore the `/ci`
    folder during helm packaging as those are not required for
    users of the chart.
2023-03-08 23:35:47 +05:30
Vladislav
a37ccbfb28
fix(core): Auto cast doubles to ints in lua scripts (#922)
fix(core): Auto convert double to integers in lua scripts
2023-03-08 19:51:01 +03:00
Roman Gershman
b7abe269f1
fix: send a single RDB_OPCODE_FULLSYNC_END from a snapshot (#920)
Fixes #917 by appending a blob of 8 bytes during serialization and consuming
it during the parsing phase.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-08 13:25:12 +02:00
ashotland
02770fdcd1
fix(tests):Some test cases for redis replication (#918)
* Some test cases for redis replication

Most of them skipped / commented-out to serve as repro without failing
on CI.

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-03-08 10:22:58 +02:00
Vladislav
64e10f083e
fix(server): Change WaitForCallbacks mem order (#914)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-03-06 16:51:48 +02:00
Tarun Pothulapati
1fc7ef5eaa
chore(helm): update golden files to latest version (#915)
As Version is encoded into the rendered Helm manifests,
They need to be updated with each release so that these
files are in sync with the latest release version.
2023-03-06 19:53:12 +05:30
romange
6e743d43ba chore(helm-chart): update to v0.17.0 2023-03-06 11:48:53 +00:00
Vladislav
7cb2232edc
fix(pytest): Add master restart delay (#909)
- Add restart delay to master in crashing master test
- Add process check after force shutdown
- Increase time limit to 45 min
2023-03-06 00:16:57 +03:00
talbii
0196589786
fix: logging in sentinel_test (#869)
Signed-off-by: talbii <ido@dragonflydb.io>
2023-03-05 16:15:13 +02:00
adiholden
86948efb4d
fix(regression-tests): fix cpu print step (#910)
* fix(regression-tests): fix cpu print step


Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-05 13:26:21 +02:00
Vladislav
95f422ab6e
fix(tests): Disable logging in replication tests (#906)
Disable debug logging in replication pytests
2023-03-04 21:42:12 +03:00
Vladislav
a3b5f0b54a
fix(server): Add deprecated/removed lua table functions (#901)
* fix(server): Add deprecated/removed lua table functions

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

* fix(server): Add table.foreachi type check

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-03-03 18:32:45 +02:00
Roman Gershman
8cf8115116
chore(server): pass coordinator thread to a transaction object (#905)
This should help with some of the optimizations we may do in the future.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-03 14:40:29 +02:00
Tarun Pothulapati
c9e9311c8e
chore(deps): Update outdated golang test dependencies (#904)
This PR updates the golang dependencies in the render test
to remove the security alerts. The security alerts should
not be a worry as its just unit test code.
2023-03-03 13:17:18 +05:30
iko1
04f4362c72
fix(server): fix JSON.MGET implementation (#849) (#876)
fix(server): fix json.mget implementation (#849)

Signed-off-by: iko1 <me@remotecpp.dev>
2023-03-03 00:16:35 +02:00
Chaka
bcc3d3ec4f
fix(server):Return an error, instead of crashing, for requests trying to rename a key to the same key. (#897)
fix:Return an error, instead of crashing, for requests trying to rename a key to the same key.

Fixes #850

---------

Co-authored-by: Shahar Mike <shmike@google.com>
2023-03-02 21:46:27 +02:00
adiholden
4a5d2f2a9a
feat(regression test) : add regression test that run in optimiztion mode (#900)
* feat(regression test) : add run in opimiztion mode

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 16:33:52 +02:00
adiholden
7ae316a85d
bug(list_family): fix BPopPusher command replication (#899)
* bug(list_family): fix BPopPusher command replication

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 15:48:08 +02:00
adiholden
d6b588d1bf
bug(replica): call add entry outside DCHECK (#896)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 11:01:49 +02:00
adiholden
15ee7224a1
bug(snapshot) : enforce order when pushing to channel when needed issue #879 (#886)
* bug(rdb_save): snapshotting records pushed to channel can be OOO 
fixes #879

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 09:15:02 +02:00
ashotland
ccc784d9c4
Add basic replicaiton from redis test (#895)
Signed-off-by: ashotland <ari@dragonflydb.io>
2023-03-01 21:50:51 +02:00
Roman Gershman
ac280529cb
fix: resize buffer correctly when checking for http header line (#894)
* fix: resize buffer correctly when checking for http header line

Fixes #779

Signed-off-by: Roman Gershman <roman@dragonflydb.io>

* fix(tests): Add big command test

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-03-01 21:46:45 +02:00
Vladislav
edbd43a3b3
Support script configuration (#889)
Store script parameters for each script that allow configuring it's transactions multi mode. They can be configured either for a specific scripts with `SCRIPT CONIFG <sha> [params...]` or changed globally as defaults with `default_lua_config`.
The current supported options are `allow-undeclared-keys` and `disable-atomicity`.  Based on those flags, we determine the correct multi mode. `disable-atomicity` allow running in non-atomic mode, whereas being atomic and enabling `allow-undeclared-keys` requires the global mode.
2023-03-01 19:17:41 +03:00
adiholden
eb5fd2867f
feat(zset_family): support zscan match and count optional params issue (#891)
* feat(zset_family): support zscan match and count optional params

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-01 16:59:49 +02:00
Roman Gershman
edd93a086c
fix: ci (#893)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-01 16:22:33 +02:00
Tarun Pothulapati
2d3496dd40
test(helm): Add command to update golden files (#890)
While we have docs in `Contributing.md`, It seems better to
have that command emitted in the error message. It is much
more straightforward this way.
2023-03-01 12:19:32 +05:30
Leonardo Mello
abe3b3cb91
feat: support cluster mode emulation (#492)
Signed-off-by: Leonardo Mello <lsvmello@gmail.com>
2023-03-01 08:43:40 +02:00
Tarun Pothulapati
60d22eba47
fix(charts): Use Release.Namespace everywhere (#884)
This updates all the namespace fields in the Helm chart to use the
`Release.Namespace` template variable. This is the recommended way to
do it in Helm 3, and allows the chart to be installed in a namespace
as set by the user, without having to modify the chart or use
`--namespace` in `kubectl`.
2023-02-28 18:36:20 +05:30
Tarun Pothulapati
5dfaa1d061
test(chart): add golden file output rendering tests (#882)
This commit adds a new `golden_test.go` file into the helm chart
which essentially renders the chart with a set of values and
compares that with the expected golden file, and errors if
they don't match.

This builds on the existing CI values files in `ci/` directory. As
this is the first time, The golden files are rendered and added. This
means for all the future changes, The golden files can be updated
by running `go test -update` and the CI will fail if the golden files
are not updated. By doing this, Both the committer and reviewer
can be sure that the changes are intentional, without having to render
the chart manually.
2023-02-28 18:02:15 +05:30
Vladislav
fab0d9e4a6
fix(server): Fix replication logs (#883)
* fix(server): Fix replication logs

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-28 07:44:21 +02:00
adiholden
74617c2799
feat(Docker) : add redis tools to docker (#877)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-27 20:31:53 +02:00
adiholden
6a2b152e8b
feat(db slice): add fiber atomic gaurd (#878)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-26 13:38:37 +02:00
adiholden
4b44fb6baf
bug(snapshot) : Do not preempt inside OnDbChange issue #829 (#868)
* bug(snapshot) : Do not preempt inside OnDbChange

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-26 11:52:13 +02:00
Vladislav
90233bfdc8
feat(tests): Script pytests (#872)
Introduce pytests for eval
2023-02-25 13:06:05 +03:00
iko1
08b068b75f
fix(server): fix JSON.ARRTRIM implementation (#844) (#864)
fix(server): fix json.arrtrim implementation (#844)

Signed-off-by: iko1 <me@remotecpp.dev>
2023-02-24 21:56:21 +02:00
Vladislav
be4ef01975
fix(server): Reorder ExecuteAsync callback seqlock check (#873)
fix(server): Reoder cb check

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-24 21:55:56 +02:00
adiholden
e54f44a0f5
fix(helio): get helio fix in uring_socket (#827)
* fix(helio): get helio fix in uring_socket

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-24 21:55:38 +02:00
Vladislav
9ee2834725
fix(server): Fix lua reply builder (#871)
Fix bug in lua reply builder
2023-02-23 10:56:19 +03:00
iko1
b5a8eef3e5
fix(server): JSON.RESP path arg should be optional (#852) (#865)
Signed-off-by: iko1 <me@remotecpp.dev>
2023-02-23 09:38:25 +02:00
Tarun Pothulapati
e8ca27971c
docs(dashtable): Fix image URL for expiration (#870)
docs(dashtable): Fix image URL for expiration

Replaces the `expiration.svg` image with a working URL.

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2023-02-23 09:35:14 +02:00
Roman Gershman
d165994b88
feat(server): Add HSETEX command (#817)
The format as follows: `HSETEX key seconds field value [field value ...]`
This allows adding hset members with expiration time in seconds.

Fixes #687

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-22 14:01:56 +02:00
Vladislav
7e08a42314
Update transaction.md (#808)
Update transaction docs to include new multi modes
2023-02-22 10:43:11 +03:00
Roman Gershman
e52b0f42c3
feat(server): add lru data structure (#831)
Part of the heavy keeper algo, required for #257.
Also see #446 for the initial (abandoned) PR.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-21 14:56:18 +02:00
ashotland
7ba8fb0950
fix(docs):attos -> dragonflydb (#830)
* Update CLA.txt

Signed-off-by: ashotland <ari@dragonflydb.io>

* Update LICENSE.md

Signed-off-by: ashotland <ari@dragonflydb.io>

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-20 17:52:08 +02:00
Vladislav
afa750303e
feat(tests): Add rotating master test (#828) 2023-02-20 18:18:10 +03:00