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

Sync with upstream 3.28.0 #364

Open
wants to merge 33 commits into
base: master
Choose a base branch
from

Conversation

dkropachev
Copy link
Collaborator

@dkropachev dkropachev commented Aug 9, 2024

it is a peace of #329 that updates master to 3.28.0

@dkropachev dkropachev force-pushed the dk/sync-with-upstream-3.28.0 branch 4 times, most recently from 76e1a2f to 8cc41a4 Compare August 9, 2024 22:42
@dkropachev dkropachev marked this pull request as ready for review August 9, 2024 22:45
@dkropachev dkropachev force-pushed the dk/sync-with-upstream-3.28.0 branch 2 times, most recently from 81b3b33 to e344b51 Compare August 9, 2024 23:57
@dkropachev dkropachev self-assigned this Aug 9, 2024
@@ -56,6 +56,9 @@ Contents
:doc:`scylla-cloud-serverless`
Connect to ScyllaDB Cloud Serverless

:doc:`column-encryption`
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should consider if we want to support this feature or not

Copy link
Collaborator Author

@dkropachev dkropachev Aug 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not, it is completely client-side feature

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more so, i think it makes sense to have an epic to bring it into other drivers

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exactly that, it's not a feature we planned nor tested.

if we do plan and test, that's great, I would document it and "promate" it, before that.

Copy link
Collaborator Author

@dkropachev dkropachev Aug 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is being tested at tests/integration/standard/column_encryption/test_policies.py and I don't think there is anything that could trigger scylla-specific issue in this code, it encrypts original content, and serialize it to the blob and does reverse on unserialization.

Copy link
Collaborator Author

@dkropachev dkropachev Aug 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, let's invoke @roydahan and @mykaul. For context:
We are syncing python-driver with the upstream and in 3.27.0 datastax released client-isde column encryption, so we are getting it in our driver.

Core idea of this feature is to seamlessly encrypt and decrypt a blob on client side.
Along side with this feature they have integration tests with it which we are running.
My proposal is to include this feature into our documentation right away, reasoning is:

  1. It is entierly client-side feature, and chance of getting scylla-specific bug is close to 0.
  2. It is tested at integration suite.
  3. Performance degradation is expected and stays at users discretion.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we've seen this feature.
Let's start with an Epic for "all drivers", there we can discuss and decide if we want it and if needed for all drivers.

Copy link
Collaborator Author

@dkropachev dkropachev Aug 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue is here, so, should we remove it from the documentation for now?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should write it as experimental for now.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have temporary disabled it and created an issue to take a look into it.

@dkropachev dkropachev force-pushed the dk/sync-with-upstream-3.28.0 branch 4 times, most recently from 969c93b to 5357c34 Compare August 13, 2024 18:24
Copy link

@fruch fruch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dkropachev
Copy link
Collaborator Author

@Lorak-mmk , @roydahan , is it good to go?

@Lorak-mmk
Copy link

@Lorak-mmk , @roydahan , is it good to go?

I'm reviewing right now

Copy link

@Lorak-mmk Lorak-mmk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commits that add column encryption policy make a lot of changes.
I think it would be better to drop those commits altogether until we decide if and how we want to implement the encryption - adding code later is much easier than removing it.

After reviewing this I remember why I dislike current process so much...

docs/.nav Outdated
Comment on lines 14 to 19
column_encryption
geo_types
graph
classic_graph
graph_fluent
CHANGELOG

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think wee should either remove changelog from here, or start creating our own changelog and put it here.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also should remove graph and geo whatever, scylla doesn't support those.

And we cleared the references to them from docs

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

.travis.yml Outdated

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need this file. Could you remove it? Or even better - drop the commit that adds it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are couple more files we would like to drop, I have included them into single commit and added them to .gitignore

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One PR should focus on one thing: let's only merge upstream changes in this one.
I actually started working on a PR that removes unnecessary files and updates some other legacy stuff.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, I though it is going to be small thing, but it had grown very quickly, moved out to a separate PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As of now, let's leave it in, and address all of the removals in one blow.

setup.py Outdated
Comment on lines 420 to 423
dependencies = [
'geomet>=0.1,<0.3',
'pyyaml > 5.0',
'six >=1.9',
]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are adding six to dependencies here, why? Myself and upstream worked hard to remove it, and I don't see it used anywhere.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep in mind it's an old version we are syncing, before your changes were merged

But yes we should drop it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

Comment on lines 252 to 257
try:
return parse_casstype_args(casstype)
except (ValueError, AssertionError, IndexError) as e:
log.debug("Exception in parse_casstype_args: %s" % e)
raise ValueError("Don't know how to parse type string %r: %s" % (casstype, e))


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason for adding this debug log?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was part of datastax#1161, removed.

Comment on lines +576 to +578
unix_socket_path = getattr(h, "_unix_socket_path", None)
if unix_socket_path:
self._allowed_hosts_resolved.append(unix_socket_path)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why this change is necessary or what it does. Please explain it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It creates dependancy cycle after cryptography PR.

docs/.nav Outdated
Comment on lines 14 to 19
column-encryption
geo_types
graph
classic_graph
graph_fluent
CHANGELOG
faq

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if my previous comment was saved or not, so I'll repeat it.
Linking upstream changelog in our docs will imo be confusing for our users.
We should either write our own changelog, or remove this from docs.
Given that this PR is about merging upstream, I think it should remove changelog from nav.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

@@ -1,5 +1,5 @@
[tox]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are on a spree of dropping files, I don't think any of us are using this one, and it doesn't seem to support all the supported python versions

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's merge updates first, and then drop files. I mentioned one in my review, because it is added in this PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have created a separate PR for it.

jgillenwater and others added 20 commits August 15, 2024 19:24
* update RH nav order

* add line break

* add api
Added error handling blog reference.
absurdfarce and others added 6 commits August 15, 2024 19:57
This feature was introduced by DataStax and was not properly tested on
scylla.
There was some seriouse issues in policy implementation in `3.27.0`.
We want to inspect the feature before making it available.
@dkropachev
Copy link
Collaborator Author

Commits that add column encryption policy make a lot of changes. I think it would be better to drop those commits altogether until we decide if and how we want to implement the encryption - adding code later is much easier than removing it.

After reviewing this I remember why I dislike current process so much...

CLE is highly integrated into cluster, session and even query, removing these commits will create unnecessary conflicts with any code done on top of it, also as bonus you are going to get a headache of merging them back and re-resolving same conflicts other way around when/if you decide to get this code in.

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.

9 participants