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

fix java.lang.IncompatibleClassChangeError when submit with spark-2.4.3 #972

Merged
merged 2 commits into from
Aug 1, 2019

Conversation

marsishandsome
Copy link
Collaborator

@marsishandsome marsishandsome commented Aug 1, 2019

What problem does this PR solve?

close #971

tispark throws java.lang.IncompatibleClassChangeError when submit with spark-2.4.3

the reason is that:

  1. tispark is compiled with spark-2.3.3
  2. but running with spark-2.4.3
  3. some scala code in spark although is compatible between spark-2.3.3 and spark-2.4.3
  4. but it's not compatible on the level of jvm byte code

What is changed and how it works?

use reflection and call the incompatible code in spark-wrapper-2.3 and spark-wrapper-2.4

@marsishandsome marsishandsome force-pushed the feature/fix-one-jar-bug branch 3 times, most recently from f2d77e0 to dd233c3 Compare August 1, 2019 05:20
@marsishandsome
Copy link
Collaborator Author

/build

@marsishandsome
Copy link
Collaborator Author

/run-all-tests profile=spark-2.3

@@ -57,7 +58,7 @@ case class TiResolutionRule(getOrCreateTiContext: SparkSession => TiContext)(
)(sqlContext)
// Use SubqueryAlias so that projects and joins can correctly resolve
// UnresolvedAttributes in JoinConditions, Projects, Filters, etc.
SubqueryAlias(tableName, LogicalRelation(tiDBRelation))
newSubqueryAlias(tableName, LogicalRelation(tiDBRelation))
Copy link
Contributor

Choose a reason for hiding this comment

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

How about change prefix new to Ti?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

but function name should start with lowercase? any better suggestions? maybe tiSubqueryAlias?

Copy link
Contributor

Choose a reason for hiding this comment

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

Sounds pretty nice

Copy link
Contributor

@birdstorm birdstorm left a comment

Choose a reason for hiding this comment

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

LGTM

@birdstorm
Copy link
Contributor

After discussion, we might need to move our tests to a new project to test its stability when depending on different spark version for the same assembly jar.

@marsishandsome
Copy link
Collaborator Author

After discussion, we might need to move our tests to a new project to test its stability when depending on different spark version for the same assembly jar.

see #974

@marsishandsome
Copy link
Collaborator Author

/run-all-tests

Copy link
Contributor

@zhexuany zhexuany left a comment

Choose a reason for hiding this comment

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

LGTM

@zhexuany zhexuany merged commit 22ee66e into pingcap:master Aug 1, 2019
marsishandsome added a commit that referenced this pull request Aug 29, 2019
* 2.2.0 -> 2.3.0 (#947)

* Add tests for primary key (#948)

* add changelog (#955)

* add multi-column tests (#954)

* fix range partition throw UnsupportedSyntaxException error (#960)

* fix view parsing problem (#953)

* make tispark can read from a hash partition table (#966)

* increase ci worker number (#965)

* update readme for tispark-2.1.2 release (#968)

* update document for pyspark (#975)

* fix one jar bug (#972)

* adding common port number used by spark cluster (#973)

* fix cost model in table scan (#977)

* create an UninitializedType for TypeDecimal (#979)

* update sparkr doc (#976)

* use spark-2.4.3 to run ut (#978)

* use spark-2.4.3 to run ut

* fix ci

* a better design for get auto table id (#980)

* fix bug: ci SpecialTiDBTypeTestSuite failed with tidb-3.0.1 (#984)

* improve TiConfiguration getPdAddrsString function (#963)

* bump grpc to 1.17 (#982)

* Add multiple-column PK tests (#970)

* add retry for batchGet (#986)

* use tispark self-made m2 cahce file (#990)

* add spark sql document for batch write (#991)

* add auto mode for test.data.load (#994)

* fix typo (#996)

* fix index scan bug (#995)

* refine doc (#1003)

* add tidb-3.0 compatibility document (#998)

* add tidb-3.0 compatibility document

* address code review

* address code review

* add log4j config document (#1008)

* refactor batch write region pre-split (#999)

* add ci simple mode (#1012)

* clean up redundant code (#997)

* prohibit agg or groupby pushdown on double read (#1004)

* remove split region code (#1015)

* add supported scala version (#1013)

* Fix scala compiler version (#1010)

* fix reflection bug for hdp release (#1017) (#1018)

(cherry picked from commit 118b12e)

* check by grammarly (#1022)

* add benchmark result for batch write (#1025)

* release tispark 2.1.3 (#1026) (#1035)

(cherry picked from commit 107eb2b)

* support setting random seed in daily regression test (#1032)

* Remove create in tisession (#1021)

* set tikv region size from 96M to 1M (#1031)

* adding unique indices test for batch write (#1014)

* use one unique seed (#1043)

* remove unused code (#1030)

* adding batch write pk insertion test (#1044)

* fix table not found bug in TiSession because of synchronization (#1041)

* fix test failure (#1051)

* fix reflection bug: pass in different arguments for different version of same function (#1037) (#1052)

(cherry picked from commit a5462c2)

* Adding pk and unique index test for batch write (#1049)

* fix distinct without alias bug: disable pushdown aggregate with alias (#1054)

* improve the doc (#1053)

* Refactor RegionStoreClient logic (#989)

* using stream rather removeIf (#1057)

* Remove redundant pre-write/commit logic in LockResolverTest (#1062)

* adding recreate flag when create tisession (#1064)

* fix issue 1047 (#1066)

* cleanup code in TiBatchWrite (#1067)

* release tispark-2.1.4 (#1068) (#1069)

(cherry picked from commit fd8068a)

* update document for tispark-2.1.4 release (#1070)
wfxxh pushed a commit to wanfangdata/tispark that referenced this pull request Jun 30, 2023
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.

[BUG] throw java.lang.IncompatibleClassChangeError when submit with spark-2.4.3
3 participants