Return-Path: X-Original-To: apmail-hadoop-common-dev-archive@www.apache.org Delivered-To: apmail-hadoop-common-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3EBED181BD for ; Sat, 19 Sep 2015 02:56:43 +0000 (UTC) Received: (qmail 87010 invoked by uid 500); 19 Sep 2015 02:56:41 -0000 Delivered-To: apmail-hadoop-common-dev-archive@hadoop.apache.org Received: (qmail 86934 invoked by uid 500); 19 Sep 2015 02:56:41 -0000 Mailing-List: contact common-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-dev@hadoop.apache.org Received: (qmail 86922 invoked by uid 99); 19 Sep 2015 02:56:41 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Sep 2015 02:56:41 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 1E0D618042A for ; Sat, 19 Sep 2015 02:56:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.9 X-Spam-Level: ** X-Spam-Status: No, score=2.9 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=twitter.com Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 612BP6ySHDrF for ; Sat, 19 Sep 2015 02:56:27 +0000 (UTC) Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id 7602F42B7B for ; Sat, 19 Sep 2015 02:56:26 +0000 (UTC) Received: by wiclk2 with SMTP id lk2so84660972wic.0 for ; Fri, 18 Sep 2015 19:56:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=l7Ov6m7v0D0x/svZZ8SkEJ7sDA4X33m1x3Kkx/gFiwk=; b=UhpS9b2h4O9xXQI7o1tDyd5ZvA7VKFTb2FU1QG9o72GAH+d4+NatuIGolYM31sxOzV +LVGVhsiVcRmpUTfRE6hPOMR4549PWgdXN9bDMM9PtD7hxdS0eyOfndS3v6DijsZaJLE tEmIS5NaHXnFiAnY759eqeUVXGwMEpUSUQqObY344RhNNIrqvZypJvy8dzfb2d7MXg8Z rigategos+fdcfjDPqQmS9bA1q7zYrl/oGHjQigtWtWGKR8Xzb0FJjxZ3V6stxdho27H qbGLrTl9FdzdURYc/RPaIauh4g8d87+2Vil6HP57ZXvGHaBT9GXzS+r9tdvIdy1zzvHR 8JrA== X-Gm-Message-State: ALoCoQmOn8CU205T5SHv7KZ+ClceVRg7zhdAhpCBnYWf8CIogdFyT8K2cWM7yZdo4lxFEvA9vApW MIME-Version: 1.0 X-Received: by 10.194.187.144 with SMTP id fs16mr10093728wjc.31.1442631385573; Fri, 18 Sep 2015 19:56:25 -0700 (PDT) Received: by 10.194.83.66 with HTTP; Fri, 18 Sep 2015 19:56:25 -0700 (PDT) In-Reply-To: References: <14733720-752d-420a-ae60-a2d1922feb80.maildroid@localhost> <9A7D5663-0807-438C-82B2-2E441346AE9D@altiscale.com> Date: Fri, 18 Sep 2015 19:56:25 -0700 Message-ID: Subject: Re: Local repo sharing for maven builds From: Ming Ma To: common-dev@hadoop.apache.org Content-Type: multipart/alternative; boundary=047d7bb04a1c477e9e052010cb03 --047d7bb04a1c477e9e052010cb03 Content-Type: text/plain; charset=UTF-8 The increase of frequency might have been due to the refactor of hadoop-hdfs-client-*.jar out of the main hadoop-hdfs-*.jar. I don't have the oveall metrics of how often this happens when anyone changes protobuf. But based on HDFS-9004, 4 of 5 runs have this issue, which is a lot for any patch that changes APIs. This isn't limited to HDFS. There are cases YARN API changes causing MR unit tests to fail. So far, the work around I use is to keep resubmitting the build until it succeed. Another approach we can consider is to provide an option for the patch submitter to use its local repo when it submits the patch. In that way, the majority of patches can still use the shared local repo. On Fri, Sep 18, 2015 at 3:14 PM, Andrew Wang wrote: > Okay, some browsing of Jenkins docs [1] says that we could key the > maven.repo.local off of $EXECUTOR_NUMBER to do per-executor repos like > Bernd recommended, but that still requires some hook into test-patch.sh. > > Regarding install, I thought all we needed to install was > hadoop-maven-plugins, but we do more than that now in test-patch.sh. Not > sure if we can reduce that. > > [1] > > https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables > > On Fri, Sep 18, 2015 at 2:42 PM, Allen Wittenauer > wrote: > > > > > The collisions have been happening for about a year now. The frequency > > is increasing, but not enough to be particularly worrisome. (So I'm > > slightly amused that one blowing up is suddenly a major freakout.) > > > > Making changes to the configuration without knowing what one is doing is > > probably a bad idea. For example, if people are removing the shared > cache, > > I hope they're also prepared for the bitching that is going to go with > the > > extremely significant slow down caused by downloading the java prereqs > for > > building for every test... > > > > As far as Yetus goes, we've got a JIRA open to provide for per-instance > > caches when using the docker container code. I've got it in my head how I > > think we can do it, but just haven't had a chance to code it. So once > that > > gets written up + turning on containers should make the problem go away > > without any significant impact on test time. Of course, that won't help > > the scheduled builds but those happen at an even smaller rate. > > > > > > On Sep 18, 2015, at 12:19 PM, Andrew Wang > > wrote: > > > > > Sangjin, you should have access to the precommit jobs if you log in > with > > > your Apache credentials, even as a branch committer. > > > > > > https://builds.apache.org/job/PreCommit-HDFS-Build/configure > > > > > > The actual maven invocation is managed by test-patch.sh though. > > > test-patch.sh has a MAVEN_ARGS which looks like what we want, but I > don't > > > think we can just set it before calling test-patch, since it'd get > > squashed > > > by setup_defaults. > > > > > > Allen/Chris/Yetus folks, any guidance here? > > > > > > Thanks, > > > Andrew > > > > > > On Fri, Sep 18, 2015 at 11:55 AM, wrote: > > > > > >> You can use one per build processor, that reduces concurrent updates > but > > >> still keeps the cache function. And then try to avoid using install. > > >> > > >> -- > > >> http://bernd.eckenfels.net > > >> > > >> -----Original Message----- > > >> From: Andrew Wang > > >> To: "common-dev@hadoop.apache.org" > > >> Cc: Andrew Bayer , Sangjin Lee < > > sjlee@twitter.com>, > > >> Lei Xu , infrastructure@apache.org > > >> Sent: Fr., 18 Sep. 2015 20:42 > > >> Subject: Re: Local repo sharing for maven builds > > >> > > >> I think each job should use a maven.repo.local within its workspace > like > > >> abayer said. This means lots of downloading, but it's isolated. > > >> > > >> If we care about download time, we could also bootstrap with a tarred > > >> .m2/repository after we've run a `mvn compile`, so before it installs > > the > > >> hadoop artifacts. > > >> > > >> On Fri, Sep 18, 2015 at 11:02 AM, Ming Ma > > > >> wrote: > > >> > > >>> +hadoop common dev. Any suggestions? > > >>> > > >>> > > >>> On Fri, Sep 18, 2015 at 10:41 AM, Andrew Bayer < > andrew.bayer@gmail.com > > > > > >>> wrote: > > >>> > > >>>> You can change your maven call to use a different repository - I > > >> believe > > >>>> you do that with -Dmaven.repository.local=path/to/repo > > >>>> On Sep 18, 2015 19:39, "Ming Ma" wrote: > > >>>> > > >>>>> Hi, > > >>>>> > > >>>>> We are seeing some strange behaviors in HDFS precommit build. It > > seems > > >>>>> like it is caused by the local repo on the same machine being used > by > > >>>>> different concurrent jobs which can cause issues. > > >>>>> > > >>>>> In HDFS, the build and test of "hadoop-hdfs-project/hdfs" depend on > > >>>>> "hadoop-hdfs-project/hdfs-client"'s hadoop-hdfs-client-3.0.0- > > >>>>> SNAPSHOT.jar. HDFS-9004 adds some new method to > > >>> hadoop-hdfs-client-3.0.0-SNAPSHOT.jar. > > >>>>> In the precommit build for HDFS-9004, unit tests for > > >>> "hadoop-hdfs-project/hdfs" > > >>>>> complain the method isn't defined > > >>>>> > https://builds.apache.org/job/PreCommit-HDFS-Build/12522/testReport/ > > . > > >>>>> Interestingly sometimes it just works fine > > >>>>> > https://builds.apache.org/job/PreCommit-HDFS-Build/12507/testReport/ > > . > > >>>>> > > >>>>> So we are suspecting that there is another job running at the same > > >> time > > >>>>> that published different version of > > >>> hadoop-hdfs-client-3.0.0-SNAPSHOT.jar > > >>>>> which doesn't have the new methods defined to the local repo which > is > > >>>>> shared by all jobs on that machine. > > >>>>> > > >>>>> If the above analysis is correct, what is the best way to fix the > > >> issue > > >>>>> so that different jobs can use their own maven local repo for build > > >> and > > >>>>> test? > > >>>>> > > >>>>> Thanks. > > >>>>> > > >>>>> Ming > > >>>>> > > >>>> > > >>> > > >> > > > > > --047d7bb04a1c477e9e052010cb03--