Thanks to all for the responses.
As I see it, option 3 is the winning one. Next week I'm going start working
on this one then (unless any objections of course).

Adam

On 26 April 2018 at 05:48, Deepak Jaiswal <djais...@hortonworks.com> wrote:

> +1 for option 3. Thanks Adam for taking this up again.
>
> Regards,
> Deepak
>
> On 4/25/18, 4:54 PM, "Thejas Nair" <thejas.n...@gmail.com> wrote:
>
>     Option 3 seems reasonable. I believe that used to be the state a while
>     back (maybe 12 months back or so).
>     When 2nd ptest for same jira runs, it checks if the latest patch has
>     already been run.
>
>
>     On Wed, Apr 25, 2018 at 7:37 AM, Peter Vary <pv...@cloudera.com>
> wrote:
>     > I would vote for version 3. It would solve the big patch problem,
> and removes the unnecessary test runs too.
>     >
>     > Thanks,
>     > Peter
>     >
>     >> On Apr 25, 2018, at 11:01 AM, Adam Szita <sz...@cloudera.com>
> wrote:
>     >>
>     >> Hi all,
>     >>
>     >> I had a patch (HIVE-19077) committed with the original aim being the
>     >> prevention of wasting resources when running ptest on the same patch
>     >> multiple times:
>     >> It is supposed to manage scenarios where a developer uploads
>     >> HIVE-XYZ.1.patch, that gets queued in jenkins, then before execution
>     >> HIVE-XYZ.2.patch (for the same jira) is uploaded and that gets
> queued also.
>     >> When the first patch starts to execute ptest will see that patch2
> is the
>     >> latest patch and will use that. After some time the second queued
> job will
>     >> also run on this very same patch.
>     >> This is just pointless and causes long queues to progress slowly.
>     >>
>     >> My idea was to remove these duplicates from the queue where I'd
> only keep
>     >> the latest queued element if I see more queued entries for the same
> jira
>     >> number. It's like when you go grocery shopping and you're already
> in line
>     >> at cashier but you realise you also need e.g. milk. You go grab it
> and join
>     >> the END of the queue. So I believe it's a fair punishment for
> losing one's
>     >> spot in the queue for making amends on their patch.
>     >>
>     >> That said Deepak made me realise that for big patches this will be
> very
>     >> cumbersome due to the need of constant rebasing to avoid conflicts
> on patch
>     >> application.
>     >> I have three proposals now:
>     >>
>     >> 1: Leave this as it currently is (with HIVE-19077 committed) -
> *only the
>     >> latest queued job will run of the same jira*
>     >> pros: no wasting resources to run the same patches more times,
> 'scheduling'
>     >> is fair: if you amend you're patch you may loose your original spot
> in the
>     >> queue
>     >> cons: big patches that are prone to conflicts will be hard to get
> executed
>     >> in ptest, devs will have to wait more time for their ptest results
> if they
>     >> amend their patches
>     >>
>     >> 2: *Add a safety switch* to this queue checking feature (currently
> proposed
>     >> in HIVE-19077), deduplication can be switch off on request
>     >> pros: same as 1st, + ability to have more control on this mechanism
> i.e.
>     >> turn it off for big/urgent patches
>     >> cons: big patches that use the swich might still waste resources,
> also devs
>     >> might use safety switch inappropriately for their own evil benefit
> :)
>     >>
>     >> 3: Deduplication the other way around - *only the first queued job
> will run
>     >> of the same jira*, ptest server will keep record of patch names and
> won't
>     >> execute a patch with a seen name and jira number again
>     >> pros: same patches will not be executed more times accidentally, big
>     >> patches won't be a problem either, devs will get their ptest result
> back
>     >> earlier even if more jobs are triggered for same jira/patch name
>     >> cons: scheduling is less fair: devs can reserve their spots in the
> queue
>     >>
>     >>
>     >> (0: restore original: I'm strongly against this, ptest queue is
> already too
>     >> big as it is, we have to at least try and decrease its size by
>     >> deduplicating jiras in it)
>     >>
>     >> I'm personally fine with any of the 1,2,3 methods listed above,
> with my
>     >> favourites being 2 and 3.
>     >> Let me know which one you think is the right path to go down on.
>     >>
>     >> Thanks,
>     >> Adam
>     >>
>     >> On 20 April 2018 at 20:14, Eugene Koifman <ekoif...@hortonworks.com>
> wrote:
>     >>
>     >>> Would it be possible to add patch name validation when it gets
> added to
>     >>> the queue?
>     >>> Currently I think it fails when the bot gets to the patch if it’s
> not
>     >>> named correctly.
>     >>> More  common for branch patches
>     >>>
>     >>> On 4/20/18, 8:20 AM, "Zoltan Haindrich" <k...@rxd.hu> wrote:
>     >>>
>     >>>    Hello,
>     >>>
>     >>>    Some time ago the ptest queue worked the following way:
>     >>>
>     >>>    * for some reason ATTACHMENT_ID was not set by the upstream jira
>     >>> scanner
>     >>>    tool; this  triggered a feature in Jenkins: if for the same
> ticket
>     >>>    mutliple patches were uploaded; they didn't triggered new runs
>     >>> (because
>     >>>    the parameters were the same)
>     >>>    * this have become fixed at some point...around that time I
> started
>     >>>    getting multiple ptest executions for the same ticket - because
> I've
>     >>>    fixed a minor typo after submitting the first version of my
> patch...
>     >>>    * currently we also have a jenkins queue reader inside the ptest
>     >>>    job...which checks if the ticket is in the queue right now; and
> if is
>     >>>    it, it just exits...this logic kinda restores the earlier
> behaviour;
>     >>>    with the exception that if I upload a patch every day and the
> queue is
>     >>>    longer that 1day (like now); I will never get a ptest run :D
>     >>>    * ...now here I come! I've just removed my patch from yesterday;
>     >>> because
>     >>>    I want a ptest run with my newest patch; and the only way to
> force the
>     >>>    above logic to do that....is by removing that attachment..
>     >>>
>     >>>
>     >>>    So...could we go back to the state when the attachment_id was
> ignored?
>     >>>    I would recommend to remove the ATTACHMENT_ID from the jenkins
>     >>> parameters...
>     >>>
>     >>>    cheers,
>     >>>    Zoltan
>     >>>
>     >>>    JenkinsQueueUtil.java:
>     >>>    https://github.com/apache/hive/blob/
> f8a671d8cfe8a26d1d12c51f93207e
>     >>> c92577c796/testutils/ptest2/src/main/java/org/apache/hive/
>     >>> ptest/api/client/JenkinsQueueUtil.java#L82
>     >>>
>     >>>
>     >>>
>     >>>
>     >
>
>
>
>

Reply via email to