On RC/Watchlist pages any combination of ORES filters won't display any results.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | Catrope | T182936 [wmf.12 -regression] ORES filters do not work | |||
Resolved | Ladsgroup | T182942 Tests should have covered regression in T182936 |
Event Timeline
I confirmed that the ores_classification table is still updated, it's just that the UI isn't interpreting anything as having a score. Highlighting by ORES score highlights nothing, and filtering by ORES score lists zero results after taking 10+ seconds.
I captured the main RC query from logstash:
SELECT /*! STRAIGHT_JOIN */ rc_id,rc_timestamp,rc_user,rc_user_text,rc_namespace,rc_title,rc_minor,rc_bot,rc_new,rc_cur_id,rc_this_oldid,rc_last_oldid,rc_type,rc_source,rc_patrolled,rc_ip,rc_old_len,rc_new_len,rc_deleted,rc_logid,rc_log_type,rc_log_action,rc_params,rc_comment AS `rc_comment_text`,NULL AS `rc_comment_data`,NULL AS `rc_comment_cid`,wl_user,wl_notificationtimestamp,page_latest,(SELECT GROUP_CONCAT(ct_tag SEPARATOR ',') FROM `change_tag` WHERE ct_rc_id=rc_id ) AS `ts_tags`,fp_stable,fp_pending_since,ores_damaging_cls.oresc_probability AS `ores_damaging_score`,ores_goodfaith_cls.oresc_probability AS `ores_goodfaith_score` FROM `recentchanges` LEFT JOIN `watchlist` ON (wl_user = '22559448' AND (wl_title=rc_title) AND (wl_namespace=rc_namespace)) LEFT JOIN `page` ON ((rc_cur_id=page_id)) LEFT JOIN `flaggedpages` ON ((fp_page_id = rc_cur_id)) LEFT JOIN `ores_classification` `ores_damaging_cls` ON (ores_damaging_cls.oresc_model = '25' AND ores_damaging_cls.oresc_rev = 'rc_this_oldid' AND ores_damaging_cls.oresc_class = '1') LEFT JOIN `ores_classification` `ores_goodfaith_cls` ON (ores_goodfaith_cls.oresc_model = '27' AND ores_goodfaith_cls.oresc_rev = 'rc_this_oldid' AND ores_goodfaith_cls.oresc_class = '1') WHERE (rc_bot = 0) AND (rc_type != '6') AND (rc_source != 'wb') AND ((ores_damaging_cls.oresc_probability BETWEEN 0 AND 0.258)) AND (rc_type NOT IN ('3','5')) AND (rc_timestamp >= '20171208004131') AND rc_new IN ('0','1') ORDER BY rc_timestamp DESC LIMIT 100
And I think the culprit is pretty clear: ores_damaging_cls.oresc_rev = 'rc_this_oldid' is incorrect, and should have been ores_damaging_cls.oresc_rev = rc_this_oldid.
Change 398397 had a related patch set uploaded (by Catrope; owner: Catrope):
[mediawiki/extensions/ORES@master] Follow-up 36748ca523: fix broken join conditions
Change 398397 merged by jenkins-bot:
[mediawiki/extensions/ORES@master] Follow-up 36748ca523: fix broken join conditions
Change 398401 had a related patch set uploaded (by Catrope; owner: Catrope):
[mediawiki/extensions/ORES@wmf/1.31.0-wmf.12] Follow-up 36748ca523: fix broken join conditions
Change 398401 merged by jenkins-bot:
[mediawiki/extensions/ORES@wmf/1.31.0-wmf.12] Follow-up 36748ca523: fix broken join conditions
Mentioned in SAL (#wikimedia-operations) [2017-12-15T01:23:03Z] <catrope@tin> Synchronized php-1.31.0-wmf.12/extensions/ORES: Fix broken join conditions (T182936) (duration: 00m 57s)