Closed Bug 528236 Opened 15 years ago Closed 11 years ago

link RSS feeds into Search Results

Categories

(Socorro :: Webapp, task)

x86
Linux
task
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: ozten, Unassigned)

References

Details

We have two RSS feeds which are currently not linked to from anywhere in the app.

Crashes By Product
http://crash-stats.mozilla.com/feed/crashes_by_product/Firefox/3.5.5
http://crash-stats.mozilla.com/feed/crashes_by_product/Firefox/3.5.5/window

Crashes By Platform
http://crash-stats.stage.mozilla.com/feed/crashes_by_platform
http://crash-stats.stage.mozilla.com/feed/crashes_by_platform/windows

When processing an advanced search, for each product/version/platform selected combination, we should provide the appropriate RSS link tags in the head.

There should be a descriptive title such as "Most recent 500 crashes for Firefox 3.5.3 on Windows".

If we search for Camino 2.0 and Firefox 3.0, we should see 3 links
http://crash-stats.mozilla.com/feed/crashes_by_product/Camino/3.0
http://crash-stats.mozilla.com/feed/crashes_by_product/Firefox/3.0
http://crash-stats.stage.mozilla.com/feed/crashes_by_platform

If platform was present, we would similarly update which links are shown.
Target Milestone: --- → Future
Assignee: nobody → sneethling
Depends on: 694515
This is the new official pull request:
https://github.com/mozilla/socorro/pull/83
Target Milestone: Future → 2.3.2
Ignore all other pull request mentioned, this is the one:

https://github.com/mozilla/socorro/pull/90
r-, pushing out to next release milestone.
Target Milestone: 2.3.2 → 2.3.3
[:lonnen] 

Before getting into my thoughts with regards to the error, how did you manage to trigger it? So the Message that is passed by the error is:

"Message: Missing argument 2 for Feed_Controller::crashes_by_product()"

Now, from what I can tell, please correct me if I am wrong, this may actually mean the problem relates to version and not product. For example only a product was selected and the feed should be for all versions of Firefox on all platforms.

If the calling code passes only $product, $version will pose a problem as it has no default argument. 

public function crashes_by_product($product, $version, $platform='ALL')

Also, looking at the search page, there seems to be no way to search without specifying a product and a version. The platform can be left unspecified hence the default function argument specified for $platform.

Now, as you clearly triggered an error, maybe we should consider a default function argument for version as well. Seeing that it has the option of ALL:ALL, perhaps this is what we should use as the ddefault if nothing is specified.

Thoughts?
It's probably `$version` that was actually missing, misspoke there. The triggering url is http://crash-stats/feed/crashes_by_product/Firefox. Until you fix the hard coded url in the javascript you'll need to target the controller by hand to verify.

Each controller seems to be handling this case differently... `controllers/product.php` has methods for topchangers that essentially use all the current versions. The feed should follow the behavior of the query controller, so you should look at that as well.

While the JavaScript is great, this fix makes more sense in PHP. I know its outside your comfort zone a little bit but it will be a good started bug. Also, an image to indicate that the link points at an rss feed would probably be a good idea.
[:lonnen] So I gather you mean, not write this in JS but rather in PHP? Seeing this is marked for the 2.3.3 release with code freeze end of today, I do not feel confident in completely rewriting this in PHP.

Perhaps we can fix the problem in the Feed_Controller so it handles the case where no version is specified and then open another bug to refactor this into PHP?

With regards to fixing the Feed_Controller I am still thinking the best way would be to give the $version variable a default function argument of ALL if nothing is provided.

I did also look at the Query_Controller and it has a function called _updateRequestParameters that handles cases where items such as product and version are empty but it takes an arbitrary list of parameters which is different to the three specific one's crashes_by_product expects.

As you saw, the result is, if one of the expected parameters that does not have a default is missing, the app falls over.

One might consider a similar approach for crashes_by_product but then one will have to also fix the instances where this function is called elsewhere in the app to ensure and array is passed to the function and not indivisual parameters.

What are your thoughts on the above?
This isn't critical for 2.3.3 and it can be pushed out to the next release. If no versions are supplied to search it defaults to `all`, so having a default of `all` is probably fine.
Target Milestone: 2.3.3 → 2.3.4
I have looked over this one today a lot and have a few questions:

When searching you can specify multiple products, versions and OS's and it seems that the feed supports this as well, basically saying this because the feed does not break ;)

But, if I search for all crashes for Firefox version 8 for a period of 2 days on production I get 22,456 results. Now if I access the feed:
https://crash-stats.mozilla.com/feed/crashes_by_product/Firefox/Firefox:Firefox%3A8.0

The feed is empty. 

As you can see the feed URL ends with /Firefox/Firefox:Firefox%3A8.0 the second mapping to version. The reason why I did it like this is because the feed controller does the following:

$params['product'] = array($product);
$params['version'] = array($product . ':' . $version);

That suggests that it will match the URL format above(I tried both ways though). I set the search for 2 days because the feed controller does:

$params['range_value'] = '2';

It does not set a range_unit so I chose days, suppose it could be hours as well (for this I got 2,785 Results on search). Basically, through all this I was unable to generate a feed that contained actual data.

Now, onto the other issue. If a user selects say multiple products and versions, I am unsure how I should separate these values. I tried commas and it seems that the controller will replace these with spaces and happily process the request, just want to make sure about all of the above.

I probably have more questions but, this is what I can think of right now. Thanks
Depends on: 704149
Target Milestone: 2.3.4 → ---
Component: Socorro → General
Product: Webtools → Socorro
Component: General → Webapp
This will be handled as part of socorro-crashstats
Assignee: sneethling → nobody
I don't think we have RSS feeds anymore.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.