Previously we set batch mode when dispatch queue is not empty
but dispatch queue could contain other async messages related to pubsub or monitor.
Now we enable batching only if there are more pipeline commands in the queue.
In addition, fix the issue of unlimited aggregation of batching buffer.
Fixes#935.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
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>
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>
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.
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>
* 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>
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.
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.
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>
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.
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`.
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.