Page MenuHomePhabricator

SpecialSupportedLanguages::loadTranslators causes site outages
Closed, ResolvedPublic

Description

Just need one robot to crawl the different languages and all threads are waiting on slow mysql queries.

Need to make it faster, make it gone or at least limit how many can run at once.

Event Timeline

This happened again. Installing a poolcounter could help.

EXPLAIN SELECT /* SpecialSupportedLanguages::loadTranslators */ actor_rev_user.actor_name AS `rev_user_text`,count(page_id) as count FROM `bw_page` JOIN `bw_revision` ON ((page_id=rev_page)) JOIN `bw_revision_actor_temp` `temp_rev_user` ON ((temp_rev_user.revactor_rev = rev_id)) JOIN `bw_actor` `actor_rev_user` ON ((actor_rev_user.actor_id = temp_rev_user.revactor_actor)) WHERE (page_title LIKE '%/sco' ESCAPE '`' ) AND page_namespace IN ('8','1200','1202','1204','1206','1208','1210','1212','1214','1216','1218','1220','1222','1224','1226','1228','1230','1232','1234','1236','1238','1240','1242','1244','1246','1248','1250','1252','1254','1256','1258','1260','1262','1264','1266','1268','1270','1272','1274','1276','1278','1280','1282','1198') GROUP BY actor_rev_user.actor_name ORDER BY NULL:

*** row 1 ***
          table:  actor_rev_user
           type:  index
  possible_keys:  PRIMARY
            key:  actor_name
        key_len:  257
            ref:  NULL
           rows:  20938
          Extra:  Using index
*** row 2 ***
          table:  temp_rev_user
           type:  ref
  possible_keys:  PRIMARY,revactor_rev,actor_timestamp
            key:  actor_timestamp
        key_len:  8
            ref:  translatewiki_net.actor_rev_user.actor_id
           rows:  117
          Extra:  Using index
*** row 3 ***
          table:  bw_revision
           type:  eq_ref
  possible_keys:  PRIMARY,rev_id,page_timestamp,page_user_timestamp
            key:  rev_id
        key_len:  4
            ref:  translatewiki_net.temp_rev_user.revactor_rev
           rows:  1
          Extra:  Using index
*** row 4 ***
          table:  bw_page
           type:  eq_ref
  possible_keys:  PRIMARY,name_title
            key:  PRIMARY
        key_len:  4
            ref:  translatewiki_net.bw_revision.rev_page
           rows:  1
          Extra:  Using where
Nikerabbit claimed this task.

We now have a pool counter.