[ 
https://issues.apache.org/jira/browse/HIVE-18214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16312200#comment-16312200
 ] 

Sahil Takiar commented on HIVE-18214:
-------------------------------------

[~pvary] thanks for taking a look.

* In production, {{RemoteDriver}} is run in a dedicated container; however, we 
have some unit tests which run it in the local process; so in production its 
not really possible to hit this issue
* I'm not a fan of exposing these methods publicly either, I can add a 
{{\@VisibleForTesting}} annotation; {{RemoteDriver}} is already marked as 
{{\@Private}}

The only other way I can think of doing this is to change the 
{{TestSparkClient}} so it runs the {{RemoteDriver}} in a dedicated process (so 
similar to what we do in production). The test will take longer to run, but we 
won't hit this issue.

> Flaky test: TestSparkClient
> ---------------------------
>
>                 Key: HIVE-18214
>                 URL: https://issues.apache.org/jira/browse/HIVE-18214
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Spark
>            Reporter: Sahil Takiar
>            Assignee: Sahil Takiar
>         Attachments: HIVE-18214.1.patch
>
>
> Looks like there is a race condition in {{TestSparkClient#runTest}}. The test 
> creates a {{RemoteDriver}} in memory, which creates a {{JavaSparkContext}}. A 
> new {{JavaSparkContext}} is created for each test that is run. There is a 
> race condition where the {{RemoteDriver}} isn't given enough time to 
> shutdown, so when the next test starts running it creates another 
> {{JavaSparkContext}} which causes an exception like 
> {{org.apache.spark.SparkException: Only one SparkContext may be running in 
> this JVM (see SPARK-2243)}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to