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

Move fault tolerant tests to separate module #12746

Merged
merged 1 commit into from
Jun 9, 2022

Conversation

losipiuk
Copy link
Member

@losipiuk losipiuk commented Jun 8, 2022

Move fault tolerant tests to separate module

Commit moves fault tolerant tests out of trino-hive, trino-iceberg,
trino-delta to new trino-faulttolerant-test module.
With fault tolerance tests in connector plugins those need to depend (in
test scope) on trino-exchange-filesystem. This proved to be a problem
and resulted in influencing compile classpath of plugins in a way that
connectors were failing at runtime (some needed transitive dependecies
were rescoped from compile to test).

See: #12674

Related issues, pull requests, and links

fixes #12674

Documentation

(x) No documentation is needed.
( ) Sufficient documentation is included in this PR.
( ) Documentation PR is available with #prnumber.
( ) Documentation issue #issuenumber is filed, and can be handled later.

Release notes

( ) No release notes entries required.
(x) Release notes entries required with the following suggested text:

# Iceberg
* Fix bug when using Iceberg with GCS resulted in queries failing with NoClassDefFoundError. ({issue}`12674`)

@cla-bot cla-bot bot added the cla-signed label Jun 8, 2022
Comment on lines 386 to 389
- { modules: testing/trino-tests, profile: test-fault-tolerant-hive-1 }
- { modules: testing/trino-tests, profile: test-fault-tolerant-hive-2 }
- { modules: testing/trino-tests, profile: test-fault-tolerant-delta }
- { modules: testing/trino-tests, profile: test-fault-tolerant-iceberg }
Copy link
Member Author

Choose a reason for hiding this comment

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

@nineinchnick @findepi
I am concerned this will probably run for each build on CI. Should we have separate, more isolated module for that?
Or separate modules for hive/delta/iceberg?

Copy link
Member

Choose a reason for hiding this comment

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

What's the condition when these tests should be run, if not always?

Copy link
Member Author

Choose a reason for hiding this comment

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

if trino-main/spi/etc change all should run.
Otherwise if specific connector changes (change in hive connector should trigger test--hive, ...)

Copy link
Member

Choose a reason for hiding this comment

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

I am concerned this will probably run for each build on CI. Should we have separate, more isolated module for that?

like trino-recovery-tests instead of putting all this into trino-tests?

works for me too. i don't know whether it's warranted, i.e. whether this will cut down execution times.
i guess it matters / will matter more as more and more connector-related tests are moved into trino-tests; ultimately the module can become dependent on all connectors (but i don't think it will ever happen)

Copy link
Member

Choose a reason for hiding this comment

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

however, it would be nice not to run all the tests when eg only Iceberg changes...
i'm fine with several additional modules, if this pays off with CI execution times.

Copy link
Member

Choose a reason for hiding this comment

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

Splitting this up would also reduce the chance of flaky tests affecting more PRs (all run on master anyway). But if I'm not mistaken, iceberg also depends on hive. Anyway, it's worth extracting.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah I will extract. Single module for now trino-recovery-tests. Or should we go hard-core already and have separate for each connector?

Copy link
Member

Choose a reason for hiding this comment

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

up to you

Copy link
Member Author

Choose a reason for hiding this comment

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

I will make one then - less pain - and should limit the burden already significantly.

Copy link
Member Author

Choose a reason for hiding this comment

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

moved

@losipiuk losipiuk force-pushed the lo/extract-fault-tolerant-tests branch 2 times, most recently from 6631ab7 to 2f90ee2 Compare June 8, 2022 19:45
@findepi
Copy link
Member

findepi commented Jun 8, 2022

See: #12726

right link?

plugin/trino-delta-lake/pom.xml Show resolved Hide resolved
testing/trino-tests/pom.xml Outdated Show resolved Hide resolved
testing/trino-tests/pom.xml Outdated Show resolved Hide resolved
testing/trino-tests/pom.xml Outdated Show resolved Hide resolved
testing/trino-tests/pom.xml Outdated Show resolved Hide resolved
testing/trino-tests/pom.xml Outdated Show resolved Hide resolved
@losipiuk losipiuk force-pushed the lo/extract-fault-tolerant-tests branch from 2f90ee2 to 266290f Compare June 8, 2022 20:35
@losipiuk
Copy link
Member Author

losipiuk commented Jun 8, 2022

AC

@findepi
Copy link
Member

findepi commented Jun 8, 2022

fixups awesome. the only minor question is #12746 (comment) i.e. whether this is what we want to do ;)

@losipiuk
Copy link
Member Author

losipiuk commented Jun 8, 2022

See: #12726

right link?

Thanks

@losipiuk losipiuk marked this pull request as ready for review June 8, 2022 20:41
@losipiuk losipiuk requested a review from arhimondr June 8, 2022 20:41
@losipiuk losipiuk force-pushed the lo/extract-fault-tolerant-tests branch from 266290f to e8a53f6 Compare June 8, 2022 20:57
@losipiuk losipiuk changed the title Move fault tolerant tests to trino-tests module Move fault tolerant tests to separate module Jun 8, 2022
.github/workflows/ci.yml Outdated Show resolved Hide resolved
@losipiuk losipiuk force-pushed the lo/extract-fault-tolerant-tests branch 2 times, most recently from 4c41c22 to d4579d4 Compare June 9, 2022 08:42
Commit moves fault tolerant tests out of trino-hive, trino-iceberg,
trino-delta to new trino-faulttolerant-test module.
With fault tolerance tests in connector plugins those need to depend (in
test scope) on trino-exchange-filesystem. This proved to be a problem
and resulted in influencing compile classpath of plugins in a way that
connectors were failing at runtime (some needed transitive dependecies
were rescoped from compile to test).

See: trinodb#12674
@losipiuk losipiuk force-pushed the lo/extract-fault-tolerant-tests branch from d4579d4 to 8e6c9c5 Compare June 9, 2022 08:44
@losipiuk losipiuk merged commit 45a84f5 into trinodb:master Jun 9, 2022
@github-actions github-actions bot added this to the 386 milestone Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

Iceberg fails with java.lang.NoClassDefFoundError: io/grpc/Context when using GCS
3 participants