| Summary: | numerous false incomings in task list after upgrade | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Robert Elves <robert.elves> | ||||||||||||||
| Component: | Mylyn | Assignee: | Robert Elves <robert.elves> | ||||||||||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||||||||||
| Severity: | enhancement | ||||||||||||||||
| Priority: | P1 | CC: | overholt, robert.munteanu, thomas.ehrnhoefer, webmaster | ||||||||||||||
| Version: | unspecified | ||||||||||||||||
| Target Milestone: | 3.2.2 | ||||||||||||||||
| Hardware: | All | ||||||||||||||||
| OS: | All | ||||||||||||||||
| URL: | https://bugzilla.mozilla.org/show_bug.cgi?id=513989 | ||||||||||||||||
| Whiteboard: | |||||||||||||||||
| Bug Depends on: | |||||||||||||||||
| Bug Blocks: | 261868 | ||||||||||||||||
| Attachments: |
|
||||||||||||||||
|
Description
Robert Elves
A server side work around that can be applied is to comment out the following code from buglist.cgi. Webmaster has been informed.
#
# If query was POSTed, clean the URL from empty parameters and redirect back to
# itself. This will make advanced search URLs more tolerable.
#
if ($cgi->request_method() eq 'POST') {
$cgi->clean_search_url();
print $cgi->redirect(-url => $cgi->self_url());
exit;
}
I will post a patch shortly that resolves this multiple task retrieval issue then look into the timezone related incoming problem.
Created attachment 146124 [details]
minimal fix
ensure request header fits within 8k
Created attachment 146125 [details]
mylyn/context/zip
Problem: Bugzilla versions < 3.4 (?) included a hard-coded time zone or no time zone information at all in the last modification date. Newer version support a user configurable time zone and format the time stamp accordingly. This can cause false incomings since time stamps are currently compared as strings. Suggestion for migration of last modified time stamp: 1. Detect if modification date is a new time stamp 2a) old time stamp exits, repository uses old format 3. Compare by string 2b) old time stamp exits, repository now uses new format 3. Parse old time stamp as date 4. Compare old and new time stamps: assume no change if difference between old time and new time is an exact multiplier of 1 hour and in the range of +/- 24h 5. Store new time stamp in new attribute, remove old time stamp (how will that affect backwards compatibility?) 2c) new time stamp exits 3. Compare by date Created attachment 146140 [details]
based on Steffen's algorithm
Steffen, if you could sanity check this that would be great. I'm doing some testing here.
Created attachment 146141 [details]
mylyn/context/zip
First patch: * Use a StringBuilder in preSynchronization() * The condition should be if (syncSession.getData() == null.. instead of != Created attachment 146144 [details]
updated minimal fix
Created attachment 146145 [details]
back-ported patch
Turns out that when a query is executed a redirect is now happening on the server which can result in a truncated request for large queries: When Mylyn makes a POST request for all changed bugs, the size of the request can exceed 8k. Bugzilla sanitizes the request and redirects to the result page using a url that is truncated to 8k. Since the parameters are stored in a map, the resulting url can consist of random portions of the original request sometimes resulting in the date range that is specified in the query getting dropped. In that case Bugzilla returns all queried tasks as changed.
If the following snippet is removed from buglist.cgi the redirect does not happen and the search will go through unaltered (and make queries faster, only requiring a single round trip):
bc..
#
# If query was POSTed, clean the URL from empty parameters and redirect back to
# itself. This will make advanced search URLs more tolerable.
#
if ($cgi->request_method() eq 'POST') {
$cgi->clean_search_url();
print $cgi->redirect(-url => $cgi->self_url());
exit;
}
Filed bug against Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=513989 The fix for hundreds of incomings is now available in the weekly Mylyn build: http://eclipse.org/mylyn/downloads/#weekly Webmaster is in the process of applying the temporary fix to bugs.eclipse.org/bugs. Will leave this bug open to track https://bugzilla.mozilla.org/show_bug.cgi?id=513989 and will now track the date comparison issue on bug 288309. Webmaster has applied the patch server side so that Eclipse.org Mylyn users who haven't or are unable to upgrade to the latest Mylyn weekly build will not hit this problem. I can confirm that Mylyn 3.0.5 which did not have support for handling the redirect now works again with Eclipse.org. Rob, are we done here? Fixed. Should I back-port something to Fedora's 3.2.1 package? Steffen's back-ported patch, perhaps? The Mylyn 3.2.2 release is planned for SR1 on September 25th. Will you update the Fedora packages based on the Galileo SR1? I think that would be sufficient as only users with >1000 tasks in their task list will run into this problem. (In reply to comment #17) > The Mylyn 3.2.2 release is planned for SR1 on September 25th. Will you update > the Fedora packages based on the Galileo SR1? I think that would be sufficient > as only users with >1000 tasks in their task list will run into this problem. Yes, I'm planning on updating to SR1. Thanks, Steffen. |