-
Notifications
You must be signed in to change notification settings - Fork 0
Machinery for loading external Agent (encryptor) out of a shared library #37
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
Conversation
…yptor related stuff. Begin moving things around.
…. It has its own .so file now.
…s is done to facilitate testing
…ry_wrapper now pass.
…ry_wrapper now pass.
…ader stuff - needed for refactoring
…of DBPALibraryWrapper
…f LoadableEncryptorInterface
…brary stuff with arrow-provided libraries.
|
Thanks for opening a pull request! If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project. Then could you also rename the pull request title in the following format? or See also: |
avalerio-tkd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall, just a few comments. I mostly skipped the unittests.
| #endif | ||
| } | ||
|
|
||
| Status CloseDynamicLibrary(void* handle) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The method looks a bit cryptic. Could you add a comment at the method level to describe what this does?
| set(PARQUET_SRCS ${PARQUET_SRCS} encryption/encryption_internal.cc | ||
| encryption/openssl_internal.cc) | ||
| encryption/openssl_internal.cc | ||
| encryption/external/loadable_encryptor_utils.cc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my understanding, do these modules need to be specified somehow differently (with additional flags maybe) during compilation? Or these are treated the same as any other source?
| arrow_shared | ||
| ) | ||
|
|
||
| set_target_properties(DBPATestAgent PROPERTIES OUTPUT_NAME "DBPATestAgent") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You probably answered this already, but the TestAgent is just for the testing flow, right? (as in ARROW_TESTING=True above)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
correct, this is just for the testing flow. The generated library (*.so, *.dll) is not "installed" (i.e. copied) anywhere other than where needed for unit testing
| } | ||
|
|
||
| DBPALibraryWrapper::DBPALibraryWrapper( | ||
| std::unique_ptr<DataBatchProtectionAgentInterface> agent, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These few lines are quite loaded. Could you add an 2-line comment on what this does?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is described in the .h, but I see your point. Will add a comment here as well.
avalerio-tkd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since these are mostly comment and nits will approve for you to merge when ready. Thanks.
|
❌ GitHub issue #41 could not be retrieved. |
|
❌ GitHub issue #41 could not be retrieved. |
|
@argmarco-tkd if there's anything pending from my side on this PR, let me know. Thanks! |
Nope. I was initially planning to have the finalized |
Rationale for this change
In this PR, I'm creating the machinery (utils classes) for
These changes are described in this doc
(An earlier PR was prepared on the same change. The earlier PR was closed because it had undesired changes/files in it - however I have tried to address the comments from that one in this one).
What changes are included in this PR?
io_util.cc- the same file which already contained functionality for dealing with dynamic libraries.Are these changes tested?
Additional Notes
DataBatchProtectionAgentInterfaceis still being worked on. I have created a temporary interface (parquet/encryption/external/DBPAInterface.h), which hopefully is close-enough to the final version. Once the interface is finalized, we will incorporate it here, and send the final PR.dev_dll_work(feature branch) anddev-miniapp