-
Notifications
You must be signed in to change notification settings - Fork 653
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
FIX-#3774: Fix segfault at init if only omnisci present #3783
FIX-#3774: Fix segfault at init if only omnisci present #3783
Conversation
Codecov Report
@@ Coverage Diff @@
## master #3783 +/- ##
==========================================
+ Coverage 85.38% 89.16% +3.78%
==========================================
Files 197 198 +1
Lines 16427 17631 +1204
==========================================
+ Hits 14026 15721 +1695
+ Misses 2401 1910 -491
Continue to review full report at Codecov.
|
6b3998d
to
fa063ab
Compare
@ienkovich, the error occurs if we import omniscidbe multiple times (>=2). Any thoughts on what happens when initializing omniscidbe that could affect the error? |
This pull request introduces 1 alert when merging fa063ab2a08b31efcb75a0984ca090251f1e6ac3 into d590de0 - view on LGTM.com new alerts:
|
I think the problem is not in double import but in import without dlopen flags. Look at how |
fa063ab
to
d421e23
Compare
Signed-off-by: Igoshev, Yaroslav <yaroslav.igoshev@intel.com>
d421e23
to
2eae5be
Compare
8f7e538
to
2eae5be
Compare
This pull request introduces 2 alerts when merging e6eb6e3 into 61bf043 - view on LGTM.com new alerts:
|
965c045
to
774f7b5
Compare
This pull request introduces 2 alerts when merging 774f7b5 into 2cfabaf - view on LGTM.com new alerts:
|
@vnlitvinov, @devin-petersohn, @ienkovich, a reminder to review. |
modin/experimental/core/execution/native/implementations/omnisci_on_native/utils.py
Outdated
Show resolved
Hide resolved
modin/experimental/core/execution/native/implementations/omnisci_on_native/utils.py
Outdated
Show resolved
Hide resolved
This pull request introduces 2 alerts when merging 62e2f3a into 0b7c642 - view on LGTM.com new alerts:
|
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!
@@ -221,6 +220,11 @@ def gandiva_query(table, query): | |||
expr = gen_table_expr(table, query) | |||
if not can_be_condition(expr): | |||
raise ValueError("Root operation should be a filter.") | |||
|
|||
# We use this import here because of https://github.com/modin-project/modin/issues/3849, | |||
# after the issue is fixed we should put the import at the top of this file |
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.
Probably add some xfail test?
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.
There is no any failing test now.
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.
I mean test that checks whether we ready to “put the import…”
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.
I see. We could add the following test:
class TestImportGandiva:
@pytest.mark.xfail(reason="core dump")
def test_import_gandiva(self):
import pyarrow.gandiva as gandiva
but pytest is not able to handle this segfault. We just need to prioritize #3849 for 0.13 in order not to forget to fix it.
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.
We could implement it via launching something like subprocess.check_call([sys.executable, "-c", "import modin.experimental......PyDbEngine, pyarrow.gandiva"])
which would fail on non-zero exit code
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.
@dchigarev will tackle to this.
…odin-project#3783) * always import omnisci with correct dlopen flags * add a section on the issue in troubleshooting * worked around incompatibility of OmniSci and pyarrow.gandiva Signed-off-by: Igoshev, Yaroslav <yaroslav.igoshev@intel.com> Signed-off-by: Doris Lee <dorisjunglinlee@gmail.com>
Signed-off-by: Igoshev, Yaroslav yaroslav.igoshev@intel.com
What do these changes do?
There is an interesting thing with omnisci import. We have to import it with dlopen flags. Wherein, if we perform this, we have to import omnisci after Modin itself is imported, i.e. the following code snippet won't work:
The error is apparently arisen since there are other libraries which use LLVM and may register an option in the same address space.
This PR adds using subprocess to check whether omnisci is installed in order to return corresponding value from
Engine.get_default()
.flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
git commit -s
docs/developer/architecture.rst
is up-to-date