[ 
https://issues.apache.org/jira/browse/BEAM-8213?focusedWorklogId=318628&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-318628
 ]

ASF GitHub Bot logged work on BEAM-8213:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 25/Sep/19 22:18
            Start Date: 25/Sep/19 22:18
    Worklog Time Spent: 10m 
      Work Description: chadrik commented on issue #9642: [BEAM-8213] Split up 
monolithic python preCommit tests on jenkins
URL: https://github.com/apache/beam/pull/9642#issuecomment-535245025
 
 
   > Should not we address the jenkins slots issue before merging this PR. 
Based on my understanding so far, we are reducing a 75 min job to 4 40 
something jobs. This will increase the queue lengths and will impact the 
developer experience for everyone. Am I missing something?
   
   It's actually worse than that.  The total time for all 5 python jobs was 217 
minutes, which is 142 minutes longer than before.  
   
   Heres a break down of the time:
   
   - Python (old): 75
   - Metrics: 2
   - Go: 3.5
   - Java: 56
   - JavaBeamZetaSQL: 2.5
   - JavaPortability: 14
   - Java_Examples_Dataflow: 15
   - Portable_Python: 22
   - Python_PVR_FLink: 12
   - RAT: 0.5
   - Spotless: 1
   - Website: 5
   - Website_Stage_GCS:  4.5
   
   Total: 213 minutes
   
   Adding 142 minutes to this is a 66% increase.  That's pretty bad. 
   
   I'll leave it up to you all to decide the best course of action.  Longer 
term, I think parallelizing the python tests at the runner level (nose or 
pytest) is the best solution because it makes the resource profile of each 
python job roughly what it was before when it was parallelized by gradle, but 
in the short term increasing the number of slots per VM is worth exploring, but 
not without risks.  Not merging this is the other option.
   
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 318628)
    Time Spent: 7h  (was: 6h 50m)

> Run and report python tox tasks separately within Jenkins
> ---------------------------------------------------------
>
>                 Key: BEAM-8213
>                 URL: https://issues.apache.org/jira/browse/BEAM-8213
>             Project: Beam
>          Issue Type: Improvement
>          Components: build-system
>            Reporter: Chad Dombrova
>            Priority: Major
>          Time Spent: 7h
>  Remaining Estimate: 0h
>
> As a python developer, the speed and comprehensibility of the jenkins 
> PreCommit job could be greatly improved.
> Here are some of the problems
> - when a lint job fails, it's not reported in the test results summary, so 
> even though the job is marked as failed, I see "Test Result (no failures)" 
> which is quite confusing
> - I have to wait for over an hour to discover the lint failed, which takes 
> about a minute to run on its own
> - The logs are a jumbled mess of all the different tasks running on top of 
> each other
> - The test results give no indication of which version of python they use.  I 
> click on Test results, then the test module, then the test class, then I see 
> 4 tests named the same thing.  I assume that the first is python 2.7, the 
> second is 3.5 and so on.   It takes 5 clicks and then reading the log output 
> to know which version of python a single error pertains to, then I need to 
> repeat for each failure.  This makes it very difficult to discover problems, 
> and deduce that they may have something to do with python version mismatches.
> I believe the solution to this is to split up the single monolithic python 
> PreCommit job into sub-jobs (possibly using a pipeline with steps).  This 
> would give us the following benefits:
> - sub job results should become available as they finish, so for example, 
> lint results should be available very early on
> - sub job results will be reported separately, and there will be a job for 
> each py2, py35, py36 and so on, so it will be clear when an error is related 
> to a particular python version
> - sub jobs without reports, like docs and lint, will have their own failure 
> status and logs, so when they fail it will be more obvious what went wrong.
> I'm happy to help out once I get some feedback on the desired way forward.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to