- 
                Notifications
    
You must be signed in to change notification settings  - Fork 28.9k
 
[SPARK-10521][SQL] Utilize Docker for test DB2 JDBC Dialect support #9893
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
| 
           Jenkins, this is ok to test.  | 
    
| 
           Test build #46496 has finished for PR 9893 at commit  
  | 
    
dd0fe5f    to
    3772ea3      
    Compare
  
    | 
           Jenkins, this is ok to test.  | 
    
| 
           Test build #47866 has finished for PR 9893 at commit  
  | 
    
| 
           @JoshRosen , this is currently failing due to missing dependency, could you help add the DB2 jars on the jenkins slaves ? The directions is available in the pom.xml in the following commit : lresende@3772ea3  | 
    
| 
           What's the licensing for the DB2 JARs? Could we publish them to Maven under the Spark project namespace? Just wondering if there's a way to avoid having to add this manual install.  | 
    
| 
           Test build #49495 has finished for PR 9893 at commit  
  | 
    
| 
           Test build #49563 has finished for PR 9893 at commit  
  | 
    
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 might want to check, this PR #10796 is reverting this exact line.
perhaps if you rebase to latest on master that you should have this test fixed
| 
           @JoshRosen For this PR to work, there is a need to manually deploy the JDBC driver as described on the pom. This is similar to the requirement that in order to run these tests, people must have docker installed. As for deploying the driver into maven or something, I am trying to get that approved, but for now people can download the driver manually via the link described in the pom. As for running these, I have ran it on our Jenkins environment, and see the results of the DB2 Integration tests below. Could you please review this, help with the Jenkins slaves configuration, and merge so we can move forward with the rest of the DB2 dialect prs waiting on this. Db2IntegrationSuite: 16/01/22 12:26:58 INFO DefaultDockerClient: Starting container with Id: bc6620ff6e3c41521e48752164ded0290e4d97c30ce1c30d68436fa45ea6863c 16/01/22 12:27:05 INFO Db2IntegrationSuite: ===== TEST OUTPUT FOR o.a.s.sql.jdbc.Db2IntegrationSuite: 'Basic test' ===== 16/01/22 12:27:05 INFO SparkContext: Starting job: apply at Transformer.scala:22 ===== FINISHED o.a.s.sql.jdbc.Db2IntegrationSuite: 'Basic test' ===== 16/01/22 12:27:05 INFO Db2IntegrationSuite: ===== TEST OUTPUT FOR o.a.s.sql.jdbc.Db2IntegrationSuite: 'Numeric types' ===== 
 16/01/22 12:27:06 INFO CodeGenerator: Code generated in 12.625054 ms ===== FINISHED o.a.s.sql.jdbc.Db2IntegrationSuite: 'Numeric types' ===== 
 ===== TEST OUTPUT FOR o.a.s.sql.jdbc.Db2IntegrationSuite: 'Date types' ===== 16/01/22 12:27:06 INFO SparkContext: Starting job: apply at Transformer.scala:22 16/01/22 12:27:07 INFO CodeGenerator: Code generated in 11.399165 ms ===== FINISHED o.a.s.sql.jdbc.Db2IntegrationSuite: 'Date types' ===== 
 ===== TEST OUTPUT FOR o.a.s.sql.jdbc.Db2IntegrationSuite: 'String types' ===== 16/01/22 12:27:07 INFO SparkContext: Starting job: apply at Transformer.scala:22 ===== FINISHED o.a.s.sql.jdbc.Db2IntegrationSuite: 'String types' ===== 
 ===== TEST OUTPUT FOR o.a.s.sql.jdbc.Db2IntegrationSuite: 'Basic write test' ===== 16/01/22 12:27:09 INFO SparkContext: Starting job: apply at Transformer.scala:22 16/01/22 12:27:10 INFO SparkContext: Starting job: apply at Transformer.scala:22 ===== FINISHED o.a.s.sql.jdbc.Db2IntegrationSuite: 'Basic write test' ===== 
 16/01/22 12:27:16 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!  | 
    
| 
           Jenkins, this is ok to test.  | 
    
| 
           Getting this installed cluster-wide is going to be non-trivial: our CI process has separate Ivy caches for every build workspace, so the installation of the JDBC driver JAR isn't a one-time process but needs to be automated. Right now, we have the ability to just wipe out a build workspace in case its caches get corrupted, since everything will be reconstituted by fetching from Maven Central. As a result, I'd like to hold off on merging this until we get that driver JAR published to a public Maven repository or have some other means to allow SBT and Maven to automatically obtain it. One alternative approach would be to just check the DB2 JDBC JAR itself into the Spark repository; this isn't ideal, but AFAIK it's technically okay for us to have binary artifacts in our repo as long as their only for testing. I'm not sure whether IBM's licensing terms would permit this, though.  | 
    
| 
           Jenkins, this is ok to test.  | 
    
| 
           Test build #50214 has finished for PR 9893 at commit  
  | 
    
        
          
                docker-integration-tests/pom.xml
              
                Outdated
          
        
      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.
This this repository going to stay around indefinitely? I don't like depending on things which aren't in Maven Central since we've been bitten in the past by repositories changing artifacts, disappearing, or having uptime problems.
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.
This should be good for now. In parallel, I am working on getting an official ibm maven repo with these drivers, but it's a bureaucratic process.
| 
           Test build #50222 has finished for PR 9893 at commit  
  | 
    
| 
           Test build #50247 has finished for PR 9893 at commit  
  | 
    
| 
           Test build #50249 has finished for PR 9893 at commit  
  | 
    
| 
           Test build #55408 has finished for PR 9893 at commit  
  | 
    
The pom.xml was also updated with instructions on how to install the drivers on a local repository or directly into your own local cached maven.
Follow same password pattern as other db dialects to avoid warning about password containing parts of the username
DB2 requires a DB to be created via DB2 tools before a JDBC connectiion can be established
Upgrade docker-client to latest version that has support for passing ipcMode configuration to docker which will fix DB2 shared memory issues.
…machine The AMPLab jenkins slaves are not using the recommended level of Linux kernel and this is causing issues trying to use shared memory thus failing to start DB2 server
| 
           Test build #55409 has finished for PR 9893 at commit  
  | 
    
| 
           Jenkins, retest this please.  | 
    
| 
           @JoshRosen, thanks for reviewing, I agree with your proposal regarding the repository. Thanks.  | 
    
| 
           Test build #55410 has finished for PR 9893 at commit  
  | 
    
| 
           Test build #55411 has finished for PR 9893 at commit  
  | 
    
| 
           @JoshRosen All good, style regression fixed, all tests passing.  | 
    
| 
           Jenkins, retest this please.  | 
    
| 
           Looks like this compiled and fetched dependencies properly, so I'm going to merge to master. Let's remember to re-enable these tests once we upgrade Jenkins' kernel.  | 
    
| 
           sounds good.  i'm meeting w/the mesosphere guys thursday and this is a On Mon, Apr 11, 2016 at 4:41 PM, Josh Rosen [email protected] 
  | 
    
| 
           Test build #55542 has finished for PR 9893 at commit  
  | 
    
Add integration tests based on docker to test DB2 JDBC dialect support