checkbox-gui skips jobs not explicitly present in the whitelist, even if they are selected in the test manager view

Bug #1302388 reported by Brendan Donegan
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Checkbox GUI (Legacy)
Fix Released
Critical
Zygmunt Krynicki

Bug Description

Checkbox GUI doesn't explicitly run resource jobs that appear in whitelist. This is because it considers those jobs not 'human readable' and filters them out. Resource jobs will be run when a job requires that resource to see if it can execute (like requires: package.name == "foo" will trigger the package resource job to run). This behaviour diverges from plainbox's own behaviour, so it's probably dangerous, even though I can't think of a scenario right now where it would cause a problem.

This causes https://bugs.launchpad.net/checkbox-gui/+bug/1304929

Related branches

Zygmunt Krynicki (zyga)
Changed in checkbox-gui:
status: New → Confirmed
importance: Undecided → Critical
description: updated
Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Revision history for this message
Ara Pulido (ara) wrote :

If the default whitelist can be submitted even with this bug (confirmation?) I would vote to release with this bug open and fix it as SRU.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

Indeed, the workaround for this is that you add miscellanea/submission-resources to the whitelist and we did add that to default.whitelist last week. I too think we should SRU this rather than scrambling around now.

Revision history for this message
Zygmunt Krynicki (zyga) wrote : Re: [Bug 1302388] Re: checkbox-gui does not run resource jobs except where required by another job

+1 then, let's track this in 14.04 and see how to properly fix it without
the deadline looming

On Wed, Apr 9, 2014 at 4:47 PM, Brendan Donegan <
<email address hidden>> wrote:

> Indeed, the workaround for this is that you add miscellanea/submission-
> resources to the whitelist and we did add that to default.whitelist last
> week. I too think we should SRU this rather than scrambling around now.
>
> --
> You received this bug notification because you are a member of Checkbox
> Bug Wranglers, which is subscribed to checkbox.
> https://bugs.launchpad.net/bugs/1302388
>
> Title:
> checkbox-gui does not run resource jobs except where required by
> another job
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/checkbox/+bug/1302388/+subscriptions
>

Zygmunt Krynicki (zyga)
no longer affects: checkbox
Zygmunt Krynicki (zyga)
tags: added: ce-qa-concern
Changed in checkbox-gui:
assignee: nobody → Zygmunt Krynicki (zkrynicki)
milestone: none → 0.18
Zygmunt Krynicki (zyga)
Changed in checkbox-gui:
status: Confirmed → In Progress
Revision history for this message
Zygmunt Krynicki (zyga) wrote : Re: checkbox-gui does not run resource jobs except where required by another job

This bug makes me want to stockpile on depression-numbing alcohol

Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Download full text (4.4 KiB)

[ GetSelectedRealJobs ] NOT SELECTING "stub/requirement/bad"
[ GetSelectedRealJobs ] NOT SELECTING "stub/user-verify"
[ GetSelectedRealJobs ] SELECTING "stub_package"
[ GetSelectedRealJobs ] NOT SELECTING "stub/dependency/bad"
[ GetSelectedRealJobs ] NOT SELECTING "stub/multilevel"
[ GetSelectedRealJobs ] NOT SELECTING "stub/multilevel_1"
[ GetSelectedRealJobs ] NOT SELECTING "stub/multilevel_2"
[ GetSelectedRealJobs ] NOT SELECTING "stub/false"
[ GetSelectedRealJobs ] NOT SELECTING "stub/user-interact"
[ GetSelectedRealJobs ] NOT SELECTING "stub/manual"
[ GetSelectedRealJobs ] NOT SELECTING "stub/local/true"
[ GetSelectedRealJobs ] NOT SELECTING "__local__"
[ GetSelectedRealJobs ] NOT SELECTING "stub/dependency/good"
[ GetSelectedRealJobs ] NOT SELECTING "stub/requirement/good"
[ GetSelectedRealJobs ] NOT SELECTING "stub/true"
[ GetSelectedRealJobs ] NOT SELECTING "stub/user-interact-verify"
[ GetSelectedRealJobs ] SELECTED jobs copied to m_final_run_list
[ GetSelectedRerunJobs ] SELECTING "stub/requirement/bad"
[ GetSelectedRerunJobs ] SELECTING "stub/user-verify"
[ GetSelectedRerunJobs ] SELECTING "stub_package"
[ GetSelectedRerunJobs ] SELECTING "stub/dependency/bad"
[ GetSelectedRerunJobs ] NOT SELECTING "stub/multilevel"
[ GetSelectedRerunJobs ] SELECTING "stub/multilevel_1"
[ GetSelectedRerunJobs ] SELECTING "stub/multilevel_2"
[ GetSelectedRerunJobs ] SELECTING "stub/false"
[ GetSelectedRerunJobs ] SELECTING "stub/user-interact"
[ GetSelectedRerunJobs ] SELECTING "stub/manual"
[ GetSelectedRerunJobs ] SELECTING "stub/local/true"
[ GetSelectedRerunJobs ] NOT SELECTING "__local__"
[ GetSelectedRerunJobs ] SELECTING "stub/dependency/good"
[ GetSelectedRerunJobs ] SELECTING "stub/requirement/good"
[ GetSelectedRerunJobs ] SELECTING "stub/true"
[ GetSelectedRerunJobs ] SELECTING "stub/user-interact-verify"
[ GetSelectedRerunJobs ] SELECTED jobs copied to m_rerun_list
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/requirement/bad"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/user-verify"
[ GetSelectedVisibleJobs ] VISIBLE "stub_package"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/dependency/bad"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/multilevel"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/multilevel_1"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/multilevel_2"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/false"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/user-interact"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/manual"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/local/true"
[ GetSelectedVisibleJobs ] NOT VISIBLE "__local__"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/dependency/good"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/requirement/good"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/true"
[ GetSelectedVisibleJobs ] NOT VISIBLE "stub/user-interact-verify"
[ GetSelectedVisibleJobs ] VISIBLE jobs copied to m_visible_run_list
PrepareJobs
[ FilteredJobs ]
list1:
 - "/plainbox/job/d607e0d199fd5d225491c783ec22fd9a8ba0807054f94b1aeef372985dd28c01"
 - "/plainbox/job/90cd69da84aadb02a478671ee72561b8ff351c7132710c54b0219a13f8844a66"
 - "/plainb...

Read more...

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

(I know why and I can fix it now)

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

 "/plainbox/job/295fc224fb8d4a2fcde2c071acf8f3395360db24e9155d67a2671d2fdfd3e8db" is the resource job we have selected to run. It is not on list1. Here list1 is m_desired_job_list from:

QList<QDBusObjectPath> temp_desired_job_list = JobTreeNode::FilteredJobs(m_desired_job_list,m_final_run_list);

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

Ok so here it goes:

The resource job is not started because it's not present in the whitelist.

The gui does some rather confusing filtering. If you think like me, from plainbox POV, you see a set of jobs and you flag the ones you want to run (in some order), that gives you the *desired* job list. You pass that to plainbox's SelectJobs and get the run_list. You follow that and you're in happy land.

This is not what happens here:

First the ideal view is broken by generated jobs. To see all jobs you need to run some jobs. The GUI does the conservative bit by running *all* local jobs. This gives it the full job awareness.

Next comes the job selection view. As you probably recall the list of jobs displayed in the view where one can select which jobs are to be executed is not the full list of know jobs. That list is filtered by the whitelists selected in the whitelist selection screen (I haven't investigated that part yet). So we can now see our resource jobs because plainbox knows they are required OR because they were on the whitelist.

Now this is the critical piece. After making the selection, PrepareJobs() discards anything that we selected that is not in the whitelist.

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

Patch proposed. This probably breaks whitelist ordering but I will follow-up with a patch that does the same trick we applied in checkbox-ng bug https://bugs.launchpad.net/checkbox-ng/+bug/1308106

Zygmunt Krynicki (zyga)
summary: - checkbox-gui does not run resource jobs except where required by another
- job
+ checkbox-gui skips jobs not explicitly present in the whitelist, even if
+ they are selected in the test manager view
Changed in checkbox-gui:
status: In Progress → Fix Committed
Changed in checkbox-gui:
status: Fix Committed → Fix Released
Revision history for this message
Masoud Abkenar (mabkenar) wrote :

I still get this message:
"Cannot get 2013.com.canonical.certification::dpkg resource job"
when I want to submit test results of my faulty Optiplex. I am on a fully updated 14.04. The machine came preinstalled with 12.04 from Dell, and I made a dist-upgrade to 14.04.

Revision history for this message
Zygmunt Krynicki (zyga) wrote : Re: [Bug 1302388] Re: checkbox-gui skips jobs not explicitly present in the whitelist, even if they are selected in the test manager view

Hi.

Could you please test the development version? They are available in
the ppa:checkbox-dev/ppa repository. If that issue is still present
there we will investigate it. We cannot easily upgrade stable releases
so our goal is to have better checkbox in the next version of Ubuntu
(probably the one after vivid as we didn't have enough of our current
code in vivid to do the full upgrade).

Thanks
ZK

On Wed, Mar 25, 2015 at 11:35 AM, Masoud Pourmoosa <email address hidden> wrote:
> I still get this message:
> "Cannot get 2013.com.canonical.certification::dpkg resource job"
> when I want to submit test results of my faulty Optiplex. I am on a fully updated 14.04. The machine came preinstalled with 12.04 from Dell, and I made a dist-upgrade to 14.04.
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/1302388
>
> Title:
> checkbox-gui skips jobs not explicitly present in the whitelist, even
> if they are selected in the test manager view
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/checkbox-gui/+bug/1302388/+subscriptions

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.