bugs are marked incomplete_with_response if users or scripts change the status / tags immediately after setting the status

Bug #828572 reported by Brian Murray
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
Benji York

Bug Description

I was searching of ubiquity bug reports for ones that are incomplete with response and was surprised to find bug 370613 in the list of returned results as there have been no changes to the bug since I set its status to Incomplete. Additionally, when you actually view the bug you'll notice that it is eligible for expiration which I don't think would be the case if it had a response.

The search url follows:

https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.tag=&field.tags_combinator=ANY&field.status_upstream-empty-marker=1&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on

I wouldn't be surprised if there were others w/o a response in that list.

Related branches

Revision history for this message
Brian Murray (brian-murray) wrote :

Bug 694678 is another example.

Revision history for this message
Brian Murray (brian-murray) wrote :

Looking at the activity log of the bug reports it appears that I set the bug to Incomplete and then added some tags, within less than 1 minute, to the bug. While I can rewrite my scripts to change the order of operations I should not have to.

tags: added: ubuntu-qa
Graham Binns (gmb)
Changed in launchpad:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Brian Murray (brian-murray) wrote :

Looking at http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/view/head:/lib/lp/bugs/model/bugtask.py#L1750. It seems that date_last_message is used in the comparison. While adding a tag sends an e-mail I'm not certain it should be considered a message.

Revision history for this message
Robert Collins (lifeless) wrote :

I think in the short term you should change your script. Longer term yes, we can look at fancy heuristics to make the system more tolerant (this was designed when all changes were from forms with multiple fields, not ajax or apis).

summary: - incomplete with response bug search returns some without response
+ bugs are marked incomplete_with_response if users or scripts change the
+ status / tags immediately after setting the status
Changed in launchpad:
importance: High → Low
Revision history for this message
Brian Murray (brian-murray) wrote :

It'll actually be multiple scripts that need to change the one that modifies the bug reports and the report that we will be creating of bugs that are really 'Incomplete with response'. Additionally the reporting one will need to do grab all the messages from the bug report to see if there is a message with a date created greater than the date the bug task was set to incomplete.

Revision history for this message
Bryce Harrington (bryce) wrote :

This is a general problem, not just limited to Brian's scripts. It impacts everyone who relies on the with/without response feature to filter bugs needing review.

This bug should be High importance.

Revision history for this message
Robert Collins (lifeless) wrote :

Its been like this for a long time, so it certainly not a recent regression; if you're just now starting to use the data and have found its problematic then I can understand its importance and relevance to you. Being 'high' would probably get this seen to in ~ 6-12 months. Maybe. If you need it addressed in the very short term, I urge you to either put forward a patch (warning - the corner cases are going to be hairy, and it will need sql triggers changed, and care not to interact with bug heat : this is a fragile part of the system); or to escalate it via the stakeholder process where its relative urgency can be assessed by the other stakeholders.

I strongly suspect that changing a half dozen scripts will be more effective at addressing this in the short term.

Revision history for this message
Robert Collins (lifeless) wrote :

Separately, we can probably tweak the datestamp for became-incomplete for bugs that you identify as being confused about this, using this bug as a reference. Would that help?

Revision history for this message
Bryce Harrington (bryce) wrote :

It isn't just scripts that cause this; more often it's bug triagers who are going through manually setting tags and priorities as they normally do. The bugs then toggle to "has a response" and thus clutter up the "Incomplete with Response" reports.

For scripts, the workaround we use (quite a bit) is to toggle the bug status to New, and then back to Incomplete. However this has a side effect of re-setting the expiration timeout - which isn't a huge deal, but it does degrade the usefulness of the Incomplete feature a bit.

I'll follow your advice on escalation.

tags: added: escalated
Changed in launchpad:
importance: Low → Critical
Brad Crittenden (bac)
Changed in launchpad:
assignee: nobody → Brad Crittenden (bac)
status: Triaged → In Progress
Revision history for this message
Robert Collins (lifeless) wrote :
Download full text (5.0 KiB)

Brad, https://code.launchpad.net/~lifeless/launchpad/bug-759467/+merge/58262 is the branch I was mentioning. It's approved but failed the following tests in ec2:
Failing tests
-------------
 lib/lp/bugs/doc/bugtask-status-workflow.txt

Tests with errors
-----------------
 lp.bugs.browser.tests.test_bugtarget_patches_view.TestBugListingPortletStatsView.test_bugs_with_patches_count
 lp.bugs.browser.tests.test_bugtask.TestBugTaskEditViewStatusField.test_status_field_bug_task_in_status_expired
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugImporter.test_privileged_user_canTransitionToStatus_from_fixreleased
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugImporter.test_privileged_user_canTransitionToStatus_from_wontfix
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugImporter.test_privileged_user_can_unset_fix_released_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugImporter.test_privileged_user_can_unset_wont_fix_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorPerson.test_privileged_user_canTransitionToStatus_from_fixreleased
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorPerson.test_privileged_user_canTransitionToStatus_from_wontfix
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorPerson.test_privileged_user_can_unset_fix_released_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorPerson.test_privileged_user_can_unset_wont_fix_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorTeamMember.test_privileged_user_canTransitionToStatus_from_fixreleased
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorTeamMember.test_privileged_user_canTransitionToStatus_from_wontfix
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorTeamMember.test_privileged_user_can_unset_fix_released_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugSupervisorTeamMember.test_privileged_user_can_unset_wont_fix_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugWatchUpdater.test_privileged_user_canTransitionToStatus_from_fixreleased
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugWatchUpdater.test_privileged_user_canTransitionToStatus_from_wontfix
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugWatchUpdater.test_privileged_user_can_unset_fix_released_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionBugWatchUpdater.test_privileged_user_can_unset_wont_fix_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionForReporter.test_reporter_canTransitionToStatus
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionForReporter.test_reporter_can_unset_fix_released_status
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionForUser.test_user_canTransitionToStatus_from_fixreleased
 lp.bugs.model.tests.test_bugtask_status.TestBugTaskStatusTransitionForUser.test_user_canTransitionToStatus_...

Read more...

Brad Crittenden (bac)
Changed in launchpad:
assignee: Brad Crittenden (bac) → nobody
status: In Progress → Triaged
Benji York (benji)
Changed in launchpad:
status: Triaged → In Progress
assignee: nobody → Benji York (benji)
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
Benji York (benji)
tags: added: qa-ok
removed: qa-needstesting
William Grant (wgrant)
Changed in launchpad:
status: Fix Committed → In Progress
Revision history for this message
Benji York (benji) wrote :

The fix for this has been released. Some preexisting bugs that were
incorrectly considered incomplete-with-response will still be considered
such. Moving them to another non-incomplete status and back to
incomplete will get them straightened out.

Changed in launchpad:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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