Page MenuHomePhabricator

Centrally look for flakey browser tests
Closed, ResolvedPublic

Description

We seem to constantly be fighting a battle against flakey browser tets.

We go through a few prolonged cycles in this area which just make the situation worse all around:

Assuming they are random, and rechecking

  • My CI fails for a seemingly flakey reason
  • type recheck re running ALL jobs (not only the failed on), probably expending 30-60 minutes worth of execution time on CI nodes?
  • the recheck turned it green, so the issue doesn't get flagged up investigated and fixed

Failing to report issues & save needed details

  • Report a seemingly flakey browser test in CI at a high level, linking to logs for CI runs
  • The team that needs to look at the failure may not look for a week or 2 as the ticket goes through their process
  • By time the team looks at the ticket the links to CI builds are dead and the investigation is pretty hard / not worth it at that point?
  • Wait for the process to repeat?

I propose that we experiment with looking at seemingly flaky / failing browser tests centrally in the jenkins logs.

I would hope that:

  • We can catch "trending" issues before people would normally report them
  • We can look at issues with multiple runs and logs being automatically provided to us (instead of waiting for people to report more failure in phabricator)
  • We diagnose and fix the issues faster
  • Everyone is happier, and we reduce the painful loops that I mention above,

Collection of data:

(Attempt to do this weekly?)

ssh contint2001.wikimedia.org
find /srv/jenkins/builds/*-selenium-*/*/log -maxdepth 1 -mtime -7 | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr

And then replace \s+(\d+).*(βœ–.*)\n? with $1, $2\n

And then add the data into https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo/edit#gid=787369492 with the current date

Event Timeline

I very briefly looked at the main jenkins node, for a single example job and identified one of the βœ–s that indicates a failed test in 124 logs.

addshore@contint2001:/srv/jenkins/builds/wmf-quibble-selenium-php72-docker$ cat */log | grep βœ– | wc -l
124

Looking at wider tests that run selenium seemingly

addshore@contint2001:/srv/jenkins/builds$ cat ./*-selenium-*/*/log | grep βœ– | wc -l
1616

and such a check could make some output like this?

addshore@contint2001:/srv/jenkins/builds$ cat ./*-selenium-*/*/log | grep βœ– | sort | uniq -c | sort -nr
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– Trims whitespace from Gloss
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– shows the language and value in edit mode
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– removes sense when clicked on remove
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– Removes Gloss
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– Gloss value unchanged after editing was cancelled
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– can not save senses with redundant languages
     38 [Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully
     38 [Chrome 73.0.3683.75 linux #0-7]    βœ– can not save lemmas with redundant languages
     38 [Chrome 73.0.3683.75 linux #0-7]    βœ– can be edited multiple times
     38 [Chrome 73.0.3683.75 linux #0-7]    βœ– can be edited
     38 [Chrome 73.0.3683.75 linux #0-5]    βœ– shows id
     38 [Chrome 73.0.3683.75 linux #0-4]    βœ– can edit the lexical category of a Lexeme
     38 [Chrome 73.0.3683.75 linux #0-4]    βœ– can edit the language of a Lexeme
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– shows Forms header
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– show Forms grammatical features
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– has representation
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– has link to Form
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– has Forms container
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– has each representation having a language
     38 [Chrome 73.0.3683.75 linux #0-3]    βœ– has an ID
     38 [Chrome 73.0.3683.75 linux #0-2]    βœ– can be removed
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– trims whitespace from representation
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– has statement list
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– FormId counter is not decremented when old revision is restored
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– FormId counter is not decremented when addForm is undone
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– change multi-variant representations
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can remove representation
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can remove first grammatical feature
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can prefill representation language for lexeme with one lemma
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can not save representations with redundant languages
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can edit statements on a new Form
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can edit representation
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add representation
     38 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add grammatical feature
     38 [Chrome 73.0.3683.75 linux #0-11]    βœ– can be added
     38 [Chrome 73.0.3683.75 linux #0-10]    βœ– "before all" hook for Lexeme:Senses
     38 [Chrome 73.0.3683.75 linux #0-0]    βœ– can be added
      8 [chrome 73.0.3683.75 Linux #0-4]        βœ– "before each" hook
      6 [chrome 73.0.3683.75 Linux #0-6]        βœ– show a permission error when opening bridge
      6 [Chrome 73.0.3683.75 linux #0-1]    βœ– "before all" hook
      6 [Chrome 73.0.3683.75 linux #0-0]        βœ– "before all" hook
      5 [Chrome 73.0.3683.75 linux #0-2]    βœ– page should have the button for creating a new filter
      5 [Chrome 73.0.3683.75 linux #0-0]    βœ– submits the search with the correct search terms from all the pill fields
      5 [Chrome 73.0.3683.75 linux #0-0]    βœ– submits the search on double enter when there is text in "These Words" field
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– saved data is retained (3)
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– saved data is retained (2)
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– is visible to logged-in admins
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– I should receive an error
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– even if the token is invalid, the ongoing edit is not lost
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– edit can be saved (3)
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– edit can be saved (2)
      5 [Chrome 73.0.3683.75 linux #0-0]        βœ– a CSRF token is required to save the filter
      4 [chrome 73.0.3683.75 Linux #0-3]    βœ– can save with tag
      4 [Chrome 73.0.3683.75 linux #0-0]        βœ– cannot save an empty filter
      3 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the property ID if no label in fallback chain found
      3 [chrome 73.0.3683.75 Linux #0-5]        βœ– shows the current targetReference
      3 [Chrome 73.0.3683.75 linux #0-5]    βœ– Opening a nested reference
      3 [chrome 73.0.3683.75 Linux #0-5]            βœ– is shown and leads to login page
      3 [chrome 73.0.3683.75 Linux #0-5]            βœ– is shown and can be dismissed
      3 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the English fallback language
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– is possible to immediately see lemmaLanguageCode field
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– can create lexeme with language item not bearing language code statement and mis lemma language
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– can create lexeme with language item not bearing language code statement and en lemma language
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before each" hook for "is not possible to edit"
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before all" hook for "can create lexeme with language item bearing language code statement"
      3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "after each" hook for "is not possible to edit"
      3 [Chrome 73.0.3683.75 linux #0-11]        βœ– "before each" hook for "is not possible to edit"
      3 [Chrome 73.0.3683.75 linux #0-11]        βœ– "after each" hook for "is not possible to edit"
      3 [chrome 73.0.3683.75 Linux #0-0]    βœ– unsupported datatype
      2 [Chrome 73.0.3683.75 linux #0-8]    βœ– "before all" hook for "is in reading mode when opening the item page"
      2 [Chrome 73.0.3683.75 linux #0-7]    βœ– "before each" hook for "is shown when clicking publish"
      2 [chrome 73.0.3683.75 Linux #0-6]        βœ– show the editlink
      2 [chrome 73.0.3683.75 Linux #0-6]        βœ– hide the editlink
      2 [Chrome 73.0.3683.75 linux #0-6]        βœ– "before each" hook for "is in edit mode after clicking the edit button"
      2 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from the page content language
      2 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from the English fallback language
      2 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from a non-English fallback language
      2 [chrome 73.0.3683.75 Linux #0-5]        βœ– shows the current targetValue
      2 [chrome 73.0.3683.75 Linux #0-5]    βœ– opens app in OOUI dialog
      2 [chrome 73.0.3683.75 Linux #0-5]        βœ– is not shown when logged in
      2 [chrome 73.0.3683.75 Linux #0-5]    βœ– indicates loading while app gathers its data
      2 [Chrome 73.0.3683.75 linux #0-5]    βœ– "before each" hook for "shows the warning overlay for anonymous users when clicking the edit button"
      2 [chrome 73.0.3683.75 Linux #0-4]    βœ– shows ErrorUnknown when launching bridge for a non-existent entity
      2 [Chrome 73.0.3683.75 linux #0-4]    βœ– should appear and disappear correctly
      2 [chrome 73.0.3683.75 Linux #0-4]    βœ– can retry saving bridge from ErrorSaving
      2 [chrome 73.0.3683.75 Linux #0-4]    βœ– can go back from a save error both on desktop and mobile
      2 [chrome 73.0.3683.75 Linux #0-4]    βœ– can be relaunched from ErrorUnknown
      2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the property ID if no label in fallback chain found
      2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the page content language
      2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from a non-English fallback language
      2 [chrome 73.0.3683.75 Linux #0-3]        ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the occurence of errors
      2 [chrome 73.0.3683.75 Linux #0-3]        ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the current targetValue
      2 [chrome 73.0.3683.75 Linux #0-3]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= opens app in OOUI dialog
      2 [chrome 73.0.3683.75 Linux #0-3]    βœ– saves an updated value
      2 [Chrome 73.0.3683.75 linux #0-3]    βœ– can expand collapsed references on a protected page as unprivileged user
      2 [chrome 73.0.3683.75 Linux #0-2]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= can save with tag
      2 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add a statement using the keyboard
      2 [chrome 73.0.3683.75 Linux #0-1]    βœ– "before each" hook
      2 [chrome 73.0.3683.75 Linux #0-0]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= closes on Escape-key event
      1 [Chrome 73.0.3683.75 linux #0-7]    βœ– disappears and saves when clicking publish
      1 [Chrome 73.0.3683.75 linux #0-6]        βœ– "before each" hook for "can edit labels, descriptions, and aliases"
      1 [Chrome 73.0.3683.75 linux #0-5]    βœ– "after each" hook for "never appears for logged in users"
      1 [chrome 73.0.3683.75 Linux #0-4]        βœ– can retry saving without assertuser
      1 [Chrome 73.0.3683.75 linux #0-13]        βœ– can create lexeme with language item not bearing language code statement and mis lemma language
      1 [Chrome 73.0.3683.75 linux #0-13]        βœ– can create lexeme with language item not bearing language code statement and en lemma language
      1 [Chrome 73.0.3683.75 linux #0-13]        βœ– "before each" hook for when blocked
      1 [Chrome 73.0.3683.75 linux #0-13]        βœ– "before all" hook for with default LexemeLanguageCodePropertyId configured
      1 [Chrome 73.0.3683.75 linux #0-13]        βœ– "after each" hook for when blocked
      1 [chrome 73.0.3683.75 Linux #0-1]    βœ– matches according to cursor movement
      1 [chrome 73.0.3683.75 Linux #0-1]    βœ– highlights matching bracket
      1 [chrome 73.0.3683.75 Linux #0-1]    βœ– closes on clicking the cancel button
      1 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before each" hook for when blocked
      1 [Chrome 73.0.3683.75 linux #0-12]        βœ– "after each" hook for when blocked
      1 [chrome 73.0.3683.75 Linux #0-0]    βœ– resets collapsing when changes are discarded
      1 [Chrome 73.0.3683.75 linux #0-0]    βœ– flyout for notices appears when clicked @daily

Quickly checking the top 5, 2 are never referenced on phabricator, but the other 3 are T224546#5499853 T229634 T232364

I'm not sure if βœ– is the only thing that I should be grepping for? It seems to be what I should be looking for for most of the wikibase / wikidata browser tests, but I'm not sure about others...

my bash foo isn't up to figuring out how to tie these greps back to the individual runs that had the errors to allow for deep diving into the loge though at this stage...

I collected some more data today.
We now have some non voting -apache- jobs, and I want to filter those out, so switching to the follwing command:
ls ./*-selenium-*/*/log | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr

16 [chrome 73.0.3683.75 Linux #0-4]        βœ– "before each" hook
13 [Chrome 73.0.3683.75 linux #0-3]    βœ– can expand collapsed references on a protected page as unprivileged user
 9 [Chrome 73.0.3683.75 linux #0-4]    βœ– should appear and disappear correctly
 9 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add a statement using the keyboard
 8 [Chrome 73.0.3683.75 linux #0-8]    βœ– "before all" hook for "is in reading mode when opening the item page"
 8 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the property ID if no label in fallback chain found
 8 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from a non-English fallback language
 8 [chrome 73.0.3683.75 Linux #0-5]            βœ– is shown and leads to login page
 8 [chrome 73.0.3683.75 Linux #0-4]    βœ– can go back from a save error both on desktop and mobile
 8 [chrome 73.0.3683.75 Linux #0-3]    βœ– saves an updated value
 7 [Chrome 73.0.3683.75 linux #0-6]        βœ– "before each" hook for "is in edit mode after clicking the edit button"
 7 [chrome 73.0.3683.75 Linux #0-6]        βœ– "before each" hook
 7 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from the page content language
 7 [chrome 73.0.3683.75 Linux #0-5]            βœ– uses the label from the English fallback language
 7 [chrome 73.0.3683.75 Linux #0-5]        βœ– shows the current targetValue
 7 [chrome 73.0.3683.75 Linux #0-5]        βœ– shows the current targetReference
 7 [chrome 73.0.3683.75 Linux #0-5]    βœ– opens app in OOUI dialog
 7 [chrome 73.0.3683.75 Linux #0-5]            βœ– is shown and can be dismissed
 7 [chrome 73.0.3683.75 Linux #0-5]        βœ– is not shown when logged in
 7 [chrome 73.0.3683.75 Linux #0-5]    βœ– indicates loading while app gathers its data
 7 [chrome 73.0.3683.75 Linux #0-4]    βœ– shows ErrorUnknown when launching bridge for a non-existent entity
 7 [chrome 73.0.3683.75 Linux #0-4]    βœ– can retry saving bridge from ErrorSaving
 7 [chrome 73.0.3683.75 Linux #0-4]    βœ– can be relaunched from ErrorUnknown
 7 [chrome 73.0.3683.75 Linux #0-3]    βœ– can save with tag
 7 [Chrome 73.0.3683.75 linux #0-2]    βœ– the title should match
 7 [chrome 73.0.3683.75 Linux #0-1]    βœ– "before all" hook
 7 [chrome 73.0.3683.75 Linux #0-0]    βœ– unsupported datatype
 7 [Chrome 73.0.3683.75 linux #0-0]    βœ– "before all" hook for "Special:SetLabel"
 6 [Chrome 73.0.3683.75 linux #0-13]        βœ– can create lexeme with language item not bearing language code statement and mis lemma language
 6 [Chrome 73.0.3683.75 linux #0-13]        βœ– can create lexeme with language item not bearing language code statement and en lemma language
 6 [Chrome 73.0.3683.75 linux #0-13]        βœ– "before each" hook for when blocked
 6 [Chrome 73.0.3683.75 linux #0-13]        βœ– "before all" hook for with default LexemeLanguageCodePropertyId configured
 6 [Chrome 73.0.3683.75 linux #0-13]        βœ– "after each" hook for when blocked
 6 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before each" hook for when blocked
 6 [Chrome 73.0.3683.75 linux #0-12]        βœ– "after each" hook for when blocked
 5 [Chrome 73.0.3683.75 linux #0-4]    βœ– can edit the lexical category of a Lexeme
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– Trims whitespace from Gloss
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– shows the language and value in edit mode
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– removes sense when clicked on remove
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– Removes Gloss
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– Gloss value unchanged after editing was cancelled
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– can not save senses with redundant languages
 4 [Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully
 4 [Chrome 73.0.3683.75 linux #0-7]    βœ– can not save lemmas with redundant languages
 4 [Chrome 73.0.3683.75 linux #0-7]    βœ– can be edited multiple times
 4 [Chrome 73.0.3683.75 linux #0-7]    βœ– can be edited
 4 [Chrome 73.0.3683.75 linux #0-7]    βœ– "before all" hook for "is shown when clicking publish"
 4 [Chrome 73.0.3683.75 linux #0-5]    βœ– shows id
 4 [Chrome 73.0.3683.75 linux #0-5]    βœ– "before all" hook for "shows the warning overlay for anonymous users when clicking the edit button"
 4 [Chrome 73.0.3683.75 linux #0-4]    βœ– can edit the language of a Lexeme
 4 [Chrome 73.0.3683.75 linux #0-4]    βœ– "before all" hook for "should appear and disappear correctly"
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– shows Forms header
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– show Forms grammatical features
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– has representation
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– has link to Form
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– has Forms container
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– has each representation having a language
 4 [Chrome 73.0.3683.75 linux #0-3]    βœ– has an ID
 4 [Chrome 73.0.3683.75 linux #0-2]    βœ– can be removed
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– trims whitespace from representation
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– has statement list
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– FormId counter is not decremented when old revision is restored
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– FormId counter is not decremented when addForm is undone
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– change multi-variant representations
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can remove representation
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can remove first grammatical feature
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can prefill representation language for lexeme with one lemma
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can not save representations with redundant languages
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can edit statements on a new Form
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can edit representation
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add representation
 4 [Chrome 73.0.3683.75 linux #0-1]    βœ– can add grammatical feature
 4 [Chrome 73.0.3683.75 linux #0-11]    βœ– can be added
 4 [Chrome 73.0.3683.75 linux #0-10]    βœ– "before all" hook for Lexeme:Senses
 4 [Chrome 73.0.3683.75 linux #0-0]    βœ– can be added
 3 [Chrome 73.0.3683.75 linux #0-7]    βœ– disappears and saves when clicking publish
 3 [Chrome 73.0.3683.75 linux #0-7]    βœ– "before each" hook for "is shown when clicking publish"
 3 [Chrome 73.0.3683.75 linux #0-5]    βœ– "before each" hook for "shows the warning overlay for anonymous users when clicking the edit button"
 3 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the English fallback language
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– is possible to immediately see lemmaLanguageCode field
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– can create lexeme with language item not bearing language code statement and mis lemma language
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– can create lexeme with language item not bearing language code statement and en lemma language
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before each" hook for "is not possible to edit"
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "before all" hook for "can create lexeme with language item bearing language code statement"
 3 [Chrome 73.0.3683.75 linux #0-12]        βœ– "after each" hook for "is not possible to edit"
 3 [Chrome 73.0.3683.75 linux #0-11]        βœ– "before each" hook for "is not possible to edit"
 3 [Chrome 73.0.3683.75 linux #0-11]        βœ– "after each" hook for "is not possible to edit"
 3 [Chrome 73.0.3683.75 linux #0-0]    βœ– submits the search with the correct search terms from all the pill fields
 2 [Chrome 73.0.3683.75 linux #0-6]        βœ– can edit labels, descriptions, and aliases
 2 [Chrome 73.0.3683.75 linux #0-5]    βœ– Opening a nested reference
 2 [Chrome 73.0.3683.75 linux #0-4]    βœ– shows search preview in collapsed state
 2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the property ID if no label in fallback chain found
 2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the page content language
 2 [chrome 73.0.3683.75 Linux #0-3]            ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from a non-English fallback language
 2 [chrome 73.0.3683.75 Linux #0-3]        ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the occurence of errors
 2 [chrome 73.0.3683.75 Linux #0-3]        ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the current targetValue
 2 [chrome 73.0.3683.75 Linux #0-3]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= opens app in OOUI dialog
 2 [Chrome 73.0.3683.75 linux #0-3]    βœ– submits the search taking into consideration all entered criteria
 2 [chrome 73.0.3683.75 Linux #0-2]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= can save with tag
 2 [Chrome 73.0.3683.75 linux #0-15]    βœ– "before each" hook for Special:Watchlist
 2 [Chrome 73.0.3683.75 linux #0-14]    βœ– shows lemmas in title links to lexemes
 2 [chrome 73.0.3683.75 Linux #0-0]    ha:////4Jnzv/KYMmvaFk73pZiiMWIJmramBgvmeeSOQYtaPOEPAAAAox+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDDI2RQXJOYpFJdU5qTaKoEttlJQdnYxAAJrJTsAN/bC9aUAAAA=βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= closes on Escape-key event
 1 [chrome 73.0.3683.75 Linux #0-4]        βœ– can login and retry saving
 1 [Chrome 73.0.3683.75 linux #0-15]    βœ– "before all" hook for Special:Watchlist
 1 [Chrome 73.0.3683.75 linux #0-14]    βœ– shows lemmas in title links to lexemes on Special:RecentChanges
 1 [chrome 73.0.3683.75 Linux #0-1]    βœ– stores responses for users with NONE group when survey is submitted
 1 [chrome 73.0.3683.75 Linux #0-1]    βœ– paragraph edits can be reverted
 1 [chrome 73.0.3683.75 Linux #0-1]    βœ– closes on clicking the cancel button
 1 [Chrome 73.0.3683.75 linux #0-0]    βœ– submits the search on double enter when there is text in "These Words" field
 1 [chrome 73.0.3683.75 Linux #0-0]    βœ– is enabled for new user
 1 [chrome 73.0.3683.75 Linux #0-0]    βœ– Heading shows the logged-in user's name

The output can be trimmed a bit with a regex \s+(\d+).*(βœ–.*) -> $1 $2\n.
And I'm starting to throw it in a spreadsheet for now to see what we can spot.
https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo

These errors appear to be happening less frequently, infact all of these errors seem to go from 38 -> 4 occurrences...

  • βœ– "before all" hook for Lexeme:Senses
  • βœ– can add grammatical feature
  • βœ– can add representation
  • βœ– can be edited
  • βœ– can be edited multiple times
  • βœ– can be removed
  • βœ– can edit representation
  • βœ– can edit sense and save successfully
  • βœ– can edit statements on a new Form
  • βœ– can edit the language of a Lexeme
  • βœ– can edit the lexical category of a Lexeme
  • βœ– can not save lemmas with redundant languages
  • βœ– can not save representations with redundant languages
  • βœ– can not save senses with redundant languages
  • βœ– can prefill representation language for lexeme with one lemma
  • βœ– can remove first grammatical feature
  • βœ– can remove representation
  • βœ– change multi-variant representations
  • βœ– FormId counter is not decremented when addForm is undone
  • βœ– FormId counter is not decremented when old revision is restored
  • βœ– Gloss value unchanged after editing was cancelled
  • βœ– has an ID
  • βœ– has each representation having a language
  • βœ– has Forms container
  • βœ– has link to Form
  • βœ– has representation
  • βœ– has statement list
  • βœ– Removes Gloss
  • βœ– removes sense when clicked on remove
  • βœ– show Forms grammatical features
  • βœ– shows Forms header
  • βœ– shows id
  • βœ– shows the language and value in edit mode
  • βœ– Trims whitespace from Gloss
  • βœ– trims whitespace from representation

Some new one seem to be appearing:

  • βœ– "after each" hook for when blocked (2 -> 12)
  • βœ– "before each" hook (10->23)
  • βœ– "before each" hook for when blocked (2 -> 12)
  • βœ– can expand collapsed references on a protected page as unprivileged user (2 -> 13)
  • βœ– can go back from a save error both on desktop and mobile (2 -> 8)
  • βœ– is shown and leads to login page (3 -> 8)
  • βœ– saves an updated value (2 -> 8)
  • βœ– should appear and disappear correctly (2 -> 9)

and some more...

For the logs that currently exist on jenkins there are 500 browser test failures, in comparison to the previous dump of logs which had ~1600

Running this once more:

ls /srv/jenkins/builds/*-selenium-*/*/log | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr

The output can be trimmed a bit with a regex \s+(\d+).*(βœ–.*) -> $1 $2\n

We get:

6 βœ– can edit the lexical category of a Lexeme
5 βœ– FormId counter is not decremented when old revision is restored
4 βœ– Trims whitespace from Gloss
4 βœ– shows the language and value in edit mode
4 βœ– removes sense when clicked on remove
4 βœ– Removes Gloss
4 βœ– Gloss value unchanged after editing was cancelled
4 βœ– can not save senses with redundant languages
4 βœ– can edit sense and save successfully
4 βœ– can not save lemmas with redundant languages
4 βœ– can be edited multiple times
4 βœ– can be edited
4 βœ– shows id
4 βœ– can edit the language of a Lexeme
4 βœ– shows Forms header
4 βœ– show Forms grammatical features
4 βœ– has representation
4 βœ– has link to Form
4 βœ– has Forms container
4 βœ– has each representation having a language
4 βœ– has an ID
4 βœ– can be removed
4 βœ– trims whitespace from representation
4 βœ– has statement list
4 βœ– FormId counter is not decremented when addForm is undone
4 βœ– change multi-variant representations
4 βœ– can remove representation
4 βœ– can remove first grammatical feature
4 βœ– can prefill representation language for lexeme with one lemma
4 βœ– can not save representations with redundant languages
4 βœ– can edit statements on a new Form
4 βœ– can edit representation
4 βœ– can add representation
4 βœ– can add grammatical feature
4 βœ– can be added
4 βœ– "before all" hook for Lexeme:Senses
4 βœ– cannot save an empty filter
4 βœ– can be added
3 βœ– Opening a nested reference
3 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the English fallback language
3 βœ– Check user page is editable
3 βœ– is possible to immediately see lemmaLanguageCode field
3 βœ– can create lexeme with language item not bearing language code statement and mis lemma language
3 βœ– can create lexeme with language item not bearing language code statement and en lemma language
3 βœ– "before each" hook for "is not possible to edit"
3 βœ– "before all" hook for "can create lexeme with language item bearing language code statement"
3 βœ– "after each" hook for "is not possible to edit"
3 βœ– "before each" hook for "is not possible to edit"
3 βœ– "after each" hook for "is not possible to edit"
2 βœ– "before each" hook for "is in edit mode after clicking the edit button"
2 βœ– indicates loading while app gathers its data
2 βœ– "before each" hook
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the property ID if no label in fallback chain found
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the page content language
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from a non-English fallback language
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the occurence of errors
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the current targetValue
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= opens app in OOUI dialog
2 βœ– can expand collapsed references on a protected page as unprivileged user
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= can save with tag
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= closes on Escape-key event
2 βœ– should work for addition
1 βœ– "before each" hook for "is in reading mode when opening the item page"
1 βœ– disappears and saves when clicking publish
1 βœ– "before each" hook for "is shown when clicking publish"
1 βœ– can edit labels, descriptions, and aliases
1 βœ– uses the property ID if no label in fallback chain found
1 βœ– is shown and leads to login page
1 βœ– "before each" hook for "shows the warning overlay for anonymous users when clicking the edit button"
1 βœ– should appear and disappear correctly
1 βœ– should show a preview page
1 βœ– saves an updated value
1 βœ– stores responses for users with NONE group when survey is submitted
1 βœ– closes on clicking the cancel button
1 βœ– can add a statement using the keyboard
1 βœ– "before each" hook

And adding to the spreadsheet https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo/edit

This snapshot sees ~ half the number of browser test errors as in the last snapshot! Woo!
From 500 down to 228.
(Though this is just a number, figuring this out as a % of number of runs might make more sense)

The last period saw an increase from 228 to 707.

The top offenders would be:

  • βœ– "before all" hook
  • βœ– "before each" hook

But there is a general increase across the board on the failure front.

One thing I notice for the 2 error outputs here is that they are very general and having more specific error messages might lead to a different grouping.

For example:

[Chrome 73.0.3683.75 linux #0-8] Termbox: reading
[Chrome 73.0.3683.75 linux #0-8]    βœ– "before all" hook for "is in reading mode when opening the item page"

Is a nice error message for grouping, vs

[chrome 73.0.3683.75 Linux #0-1] Spec: /workspace/src/extensions/Wikibase/client/data-bridge/tests/selenium/specs/canCancel.js
[chrome 73.0.3683.75 Linux #0-1] Running: chrome (v73.0.3683.75) on Linux
[chrome 73.0.3683.75 Linux #0-1] Session ID: a07d05924209c6f0168018801886ccdd
[chrome 73.0.3683.75 Linux #0-1]
[chrome 73.0.3683.75 Linux #0-1] App
[chrome 73.0.3683.75 Linux #0-1]    βœ– "before all" hook

and

[Chrome 88.0.4324.182 linux #0-1] Spec: /workspace/src/extensions/AbuseFilter/tests/selenium/specs/importingFilters.js
[Chrome 88.0.4324.182 linux #0-1] Running: Chrome (v88.0.4324.182) on linux
[Chrome 88.0.4324.182 linux #0-1] Session ID: e3b72217-1f08-4752-9545-0ab5d4dd82bd
[Chrome 88.0.4324.182 linux #0-1]
[Chrome 88.0.4324.182 linux #0-1] When importing a filter
[Chrome 88.0.4324.182 linux #0-1]    βœ– "before all" hook

Which are not.

So this error is unlikely to be a single test misbehaving, rather just blanket failures caused by CI being overworked?
SO I won't bother digging into this spike at all...
IT might be worth filling in some followups to make this output better though.
So some pastest of grepped output for before all https://phabricator.wikimedia.org/P15455 and before each https://phabricator.wikimedia.org/P15456 were captured

Running again today (1 week after the last check)
Things dropped from ~700 to ~350.
THis βœ– "before each" hook one remains a big failer.
I think what I said in T277205#7013062 still applies though in terms of making these failures more distinct.

I'm going to deep dive into a recent failure again in T281122 which was recently created.

Change 682705 had a related patch set uploaded (by Addshore; author: Addshore):

[mediawiki/extensions/Wikibase@master] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

https://gerrit.wikimedia.org/r/682705

Change 682705 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

https://gerrit.wikimedia.org/r/682705

Change 683141 had a related patch set uploaded (by Addshore; author: Addshore):

[mediawiki/extensions/Wikibase@REL1_36] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

https://gerrit.wikimedia.org/r/683141

3x the number of errors looking at all recorded logs today.

Some big culprits are:

βœ– "before each" hook 60
βœ– "before all" hook 28
βœ– unsupported datatype 18
βœ– uses the label from a non-English fallback language 22
βœ– uses the label from the English fallback language 22
βœ– uses the label from the page content language 22
βœ– uses the property ID if no label in fallback chain found 25
βœ– shows the current targetReference 18
βœ– shows the current targetValue 18
βœ– shows ErrorUnknown when launching bridge for a non-existent entity 18
βœ– saves an updated value 20
βœ– opens app in OOUI dialog 18
βœ– is shown and can be dismissed 18
βœ– is shown and leads to login page 19
βœ– is not shown when logged in 19
βœ– indicates loading while app gathers its data 23
βœ– can save with tag 20
βœ– can retry saving bridge from ErrorSaving 18
βœ– can expand collapsed references on a protected page as unprivileged user 18
βœ– can go back from a save error both on desktop 18
βœ– can be relaunched from ErrorUnknown 18
βœ– can add a statement using the keyboard 21
βœ– "before each" hook for "is in edit mode after clicking the edit button" 18

Will have to wait some more time to see if the bridge patch above had any impact.
It could also be good to deep dive into another one of these seemingly random but repeating test failures, and see if anything possibly lines up with what was happening in T281122

Change 685474 had a related patch set uploaded (by WMDE-leszek; author: Addshore):

[mediawiki/extensions/Wikibase@REL1_35] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

https://gerrit.wikimedia.org/r/685474

Change 685474 abandoned by WMDE-leszek:

[mediawiki/extensions/Wikibase@REL1_35] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

Reason:

https://gerrit.wikimedia.org/r/685474

Just looked again and we are at a pretty low point in terms of errors right now :)

The big culprits for the last slot or time are:

12 , βœ– FormId counter is not decremented when old revision is restored
12 , βœ– FormId counter is not decremented when addForm is undone
7 , βœ– can go back from a save error both on desktop and mobile
4 , βœ– checks for welcome message after signup
4 , βœ– show a permission error when opening bridge
4 , βœ– Trims whitespace from Gloss
4 , βœ– shows the language and value in edit mode
4 , βœ– removes sense when clicked on remove
4 , βœ– Removes Gloss
4 , βœ– Gloss value unchanged after editing was cancelled
4 , βœ– can not save senses with redundant languages
4 , βœ– can edit sense and save successfully
4 , βœ– can not save lemmas with redundant languages
4 , βœ– can be edited multiple times
4 , βœ– can be edited
4 , βœ– shows id
4 , βœ– can edit the lexical category of a Lexeme
4 , βœ– can edit the language of a Lexeme
4 , βœ– shows Forms header
4 , βœ– show Forms grammatical features
4 , βœ– has representation
4 , βœ– has link to Form
4 , βœ– has Forms container
4 , βœ– has each representation having a language
4 , βœ– has an ID
4 , βœ– can be removed
4 , βœ– trims whitespace from representation
4 , βœ– has statement list
4 , βœ– FormId counter is not decremented when old revision is restored
4 , βœ– FormId counter is not decremented when addForm is undone
4 , βœ– change multi-variant representations
4 , βœ– can remove representation
4 , βœ– can remove first grammatical feature
4 , βœ– can prefill representation language for lexeme with one lemma
4 , βœ– can not save representations with redundant languages
4 , βœ– can edit statements on a new Form
4 , βœ– can edit representation
4 , βœ– can add representation
4 , βœ– can add grammatical feature
4 , βœ– can be added
4 , βœ– "before all" hook for Lexeme:Senses
4 , βœ– can be added

Looks like it could make sense to dive into Lexeme failures next.
I'd want to dive into logs etc first thought before just upping timeouts..
(There are various tickets relating to lexeme browser tests that could likely be crosslinked)

Just checked this again looking at the last period and there were only 225 failures (lowest since i started looking), the peak i have seen is 1.6k
(I have updated the sheet)
The same sort of failure seem to happen, it'd be good to try and break out some more tasks from this.

Change 683141 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@REL1_36] bridge: Switch tests waiting for bridge to open from 10 -> 20s wait

https://gerrit.wikimedia.org/r/683141

Re ran again per rumours of more flakiness.

ls /srv/jenkins/builds/*-selenium-*/*/log | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr

And replace \s+(\d+).*(βœ–.*)\n with $1, $2\n

And that gives us the following:

16 βœ– old revisions do not have an edit link
15 βœ– can expand collapsed references on a protected page as unprivileged user
14 βœ– "before all" hook for Termbox: reading
14 βœ– "before each" hook for Termbox: editing
14 βœ– can go back from a save error
14 βœ– uses the property ID if no label in fallback chain found
14 βœ– uses the label from the page content language
14 βœ– uses the label from the English fallback language
14 βœ– uses the label from a non-English fallback language
14 βœ– shows the current targetValue
14 βœ– shows the current targetReference
14 βœ– opens app in OOUI dialog
14 βœ– is shown and leads to login page
14 βœ– is shown and can be dismissed
14 βœ– is not shown when logged in
14 βœ– indicates loading while app gathers its data
14 βœ– shows ErrorUnknown when launching bridge for a non-existent entity
14 βœ– can retry saving bridge from ErrorSaving
14 βœ– can go back from a save error on desktop
14 βœ– can be relaunched from ErrorUnknown
14 βœ– "before each" hook for when there is an edit conflict
14 βœ– "before each" hook for when assertuser fails
14 βœ– saves an updated value
14 βœ– can save with tag
14 βœ– can add a statement using the keyboard
14 βœ– unsupported datatype
13 βœ– "before all" hook for Termbox: LicenseOverlay
13 βœ– "before each" hook for permission checks
13 βœ– "before all" hook for Termbox: AnonEditWarning
13 βœ– "before all" hook for the Tainted icon
13 βœ– "before all" hook for App
12 βœ– Special:SetSiteLink
12 βœ– Special:SetLabelDescriptionAliases
12 βœ– Special:SetLabel
12 βœ– Special:SetDescription
12 βœ– Special:SetAliases
12 βœ– Special:MergeItems
4 βœ– Trims whitespace from Gloss
4 βœ– shows the language and value in edit mode
4 βœ– removes sense when clicked on remove
4 βœ– Removes Gloss
4 βœ– Gloss value unchanged after editing was cancelled
4 βœ– can not save senses with redundant languages
4 βœ– can edit sense and save successfully
4 βœ– can not save lemmas with redundant languages
4 βœ– can be edited multiple times
4 βœ– can be edited
4 βœ– shows id
4 βœ– can edit the lexical category of a Lexeme
4 βœ– can edit the language of a Lexeme
4 βœ– shows Forms header
4 βœ– show Forms grammatical features
4 βœ– has representation
4 βœ– has link to Form
4 βœ– has Forms container
4 βœ– has each representation having a language
4 βœ– has an ID
4 βœ– can be removed
4 βœ– trims whitespace from representation
4 βœ– has statement list
4 βœ– FormId counter is not decremented when old revision is restored
4 βœ– FormId counter is not decremented when addForm is undone
4 βœ– change multi-variant representations
4 βœ– can remove representation
4 βœ– can remove first grammatical feature
4 βœ– can prefill representation language for lexeme with one lemma
4 βœ– can not save representations with redundant languages
4 βœ– can edit statements on a new Form
4 βœ– can edit representation
4 βœ– can add representation
4 βœ– can add grammatical feature
4 βœ– can be added
4 βœ– "before all" hook for Lexeme:Senses
4 βœ– can be added
3 βœ– can edit labels, descriptions, and aliases
3 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the English fallback language
3 βœ– is possible to immediately see lemmaLanguageCode field
3 βœ– can create lexeme with language item not bearing language code statement and mis lemma language
3 βœ– can create lexeme with language item not bearing language code statement and en lemma language
3 βœ– "before each" hook for "is not possible to edit"
3 βœ– "before all" hook for "can create lexeme with language item bearing language code statement"
3 βœ– "after each" hook for "is not possible to edit"
3 βœ– "before each" hook for "is not possible to edit"
3 βœ– "after each" hook for "is not possible to edit"
2 βœ– show a permission error when opening bridge
2 βœ– the title should match
2 βœ– "before all" hook for blocked user cannot use
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the property ID if no label in fallback chain found
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from the page content language
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= uses the label from a non-English fallback language
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the occurence of errors
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= shows the current targetValue
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= opens app in OOUI dialog
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= can save with tag
2 βœ–ha:////4Pwnj1riiGD98wSXevu/34pSmwxVTFrID0iRXdT+WGGeAAAAkR+LCAAAAAAAAP9b85aBtbiIQT2jNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvODO3ICfVoyQ3xy+/JNU2Yj/Tagmf50wMjD4M7CWJ6SCJEgYhn6zEskT9nMS8dP3gkqLMvHTriiIGKaihyfl5xfk5qXrOEBpkDgMEMDIxMFQUlDCw2+gXFyTm2QEAI9P8iI4AAAA= closes on Escape-key event
1 βœ– disappears and saves when clicking publish
1 βœ– "before each" hook for Termbox: LicenseOverlay
1 βœ– show the editlink
1 βœ– hide the editlink
1 βœ– "before each" hook for Termbox: AnonEditWarning
1 βœ– should appear and disappear correctly
1 βœ– should show a preview page
1 βœ– should show a correct preview page when using pre-save transforms
1 βœ– should show a correct preview page when unsaved edits in selected paragraphs are present
1 βœ– should be possible to edit and preview the left ("other") side
1 βœ– "before each" hook for App
1 βœ– is shown and leads to login page
1 βœ– indicates loading while app gathers its data
1 βœ– "before each" hook
1 βœ– closes on clicking the cancel button

This can be seen in a pivot sheet at https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo/edit#gid=820353111

It looks like things are 4x more faily than in May 2021, though still only half a faily as March 2021 (peak)

Change 715767 had a related patch set uploaded (by Addshore; author: Addshore):

[mediawiki/extensions/WikibaseLexeme@master] selenium: Introduce longer and varied browser test timeouts

https://gerrit.wikimedia.org/r/715767

Data for the 31st August has been added to the sheet
https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo

I hope the above Lexeme timeout patch will remove some of the lexeme related failures from this regular collection.

Change 715767 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] selenium: Introduce longer and varied browser test timeouts

https://gerrit.wikimedia.org/r/715767

Change 719082 had a related patch set uploaded (by Addshore; author: Addshore):

[mediawiki/extensions/WikibaseLexeme@REL1_36] selenium: Introduce longer and varied browser test timeouts

https://gerrit.wikimedia.org/r/719082

I collected data again today, and realized that some patterns still existed that I was expecting to have vanished.

On closer inspection, some of the logs are from quite some time ago....

addshore@contint2001:~$ grep -R "can edit sense and save successfully" /srv/jenkins/builds/*-selenium-*/*/log | grep "βœ–"
/srv/jenkins/builds/quibble-vendor-mysql-php72-selenium-docker/36145/log:[Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully
/srv/jenkins/builds/quibble-vendor-mysql-php72-selenium-docker/36149/log:[Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully
/srv/jenkins/builds/quibble-vendor-mysql-php72-selenium-docker/36150/log:[Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully
/srv/jenkins/builds/quibble-vendor-mysql-php72-selenium-docker/36154/log:[Chrome 73.0.3683.75 linux #0-9]    βœ– can edit sense and save successfully

https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-selenium-docker/36145/
Build #36145 (10 Mar 2021, 15:18:55)

So the analysis to this date has been looking at logs that have been marked as "keep this build forever", which is sometimes done for failures...

It looks like normally jobs are kept for1 week ish

So we can get some more accurate data (and a shorter list) with this:

find /srv/jenkins/builds/*-selenium-*/*/log -maxdepth 1 -mtime -7 | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr

With the new command we get a much shorter list:

  • 13 βœ– can save with tag
  • 12 βœ– saves an updated value
  • 11 βœ– "before each" hook for permission checks
  • 11 βœ– can go back from a save error
  • 11 βœ– shows the current targetValue
  • 11 βœ– shows the current targetReference
  • 11 βœ– opens app in OOUI dialog
  • 11 βœ– is shown and leads to login page
  • 11 βœ– is shown and can be dismissed
  • 11 βœ– is not shown when logged in
  • 11 βœ– indicates loading while app gathers its data
  • 11 βœ– can retry saving bridge from ErrorSaving
  • 11 βœ– can go back from a save error on desktop
  • 11 βœ– can be relaunched from ErrorUnknown
  • 11 βœ– "before each" hook for when there is an edit conflict
  • 11 βœ– "before each" hook for when assertuser fails
  • 11 βœ– "before all" hook for App
  • 11 βœ– unsupported datatype
  • 10 βœ– can expand collapsed references on a protected page as unprivileged user
  • 10 βœ– Error: Command failed: /bin/sh -c make && mv bin/Release/guetzli /workspace/src/extensions/VisualEditor/node_modules/guetzli/vendor/guetzli
  • 7 βœ– "before each" hook for Termbox: LicenseOverlay
  • 7 βœ– "before each" hook for Termbox: editing
  • 7 βœ– "before each" hook for Termbox: AnonEditWarning
  • 7 βœ– can add a statement using the keyboard
  • 5 βœ– "before each" hook for Termbox: reading
  • 5 βœ– should appear and disappear correctly
  • 5 βœ– old revisions do not have an edit link
  • 4 βœ– uses the property ID if no label in fallback chain found
  • 4 βœ– uses the label from the page content language
  • 4 βœ– uses the label from the English fallback language
  • 4 βœ– uses the label from a non-English fallback language
  • 4 βœ– "before all" hook for the Tainted icon
  • 4 βœ– is not possible to edit
  • 4 βœ– is not possible to edit

The baseline for the last week of failures is 292.
This means that ~195 failures that we were tracking are in permanently saved builds
I have started a new pivot table to try and catch new trends https://docs.google.com/spreadsheets/d/1zllaM9T7RxOF29zu5SN0KM2eqtNdWfqfnXkOYE3XpUo/edit#gid=317629897

Change 719082 abandoned by Addshore:

[mediawiki/extensions/WikibaseLexeme@REL1_36] selenium: Introduce longer and varied browser test timeouts

Reason:

This was only a maybe, and CI says no, so not going to invest time in this

https://gerrit.wikimedia.org/r/719082

This is almost not worth putting in a sheet for the last week.

addshore@contint2001:~$ find /srv/jenkins/builds/*-selenium-*/*/log -maxdepth 1 -mtime -7 | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr
      2 npm ERR!   βœ– Error: Command failed: /bin/sh -c ./configure --with-system-zlib --prefix="/workspace/src/extensions/VisualEditor/node_modules/optipng-bin/vendor" --bindir="/workspace/src/extensions/VisualEditor/node_modules/optipng-bin/vendor"
      1 [Chrome 90.0.4430.212 linux #0-8]    βœ– "before each" hook for Termbox: reading
      1 [Chrome 90.0.4430.212 linux #0-7]    βœ– "before each" hook for Termbox: LicenseOverlay
      1 [Chrome 90.0.4430.212 linux #0-6]        βœ– "before each" hook for Termbox: editing
      1 [Chrome 90.0.4430.212 linux #0-5]    βœ– "before each" hook for Termbox: AnonEditWarning

I see these failures in the last week I checked too, so will write a ticket to investigate them and see if we can do anything?

T296710: Investigate occasionally failing before each hooks for termbox

I made a script that parses all Jenkins junit files and puts them in a database. The database (see here) has about 5 million test cases at this point.

A test is flaky when it runs twice on the same code with different results, so I made a database query that finds any tests that both failed and passed for the same SHA1. Here's the jupyter notebook with the results. Is this useful at all?

Change 769397 had a related patch set uploaded (by Addshore; author: Addshore):

[mediawiki/extensions/Wikibase@master] selenium waitforTimeout to 20 seconds

https://gerrit.wikimedia.org/r/769397

Oh neat!
Yeah that looks like a lovely approach.

I'll run my terrible analysis one more time now and then stop, generally I think it's been useful.

addshore@contint2001:~$ find /srv/jenkins/builds/*-selenium-*/*/log -maxdepth 1 -mtime -7 | grep -v apache | xargs cat | grep βœ– | sort | uniq -c | sort -nr
      2 [Chrome 90.0.4430.212 linux #0-8]    βœ– "before all" hook for Termbox: reading
      2 [Chrome 90.0.4430.212 linux #0-7]    βœ– "before all" hook for Termbox: LicenseOverlay
      2 [Chrome 90.0.4430.212 linux #0-6]        βœ– "before each" hook for Termbox: editing
      2 [chrome 90.0.4430.212 linux #0-6]        βœ– "before each" hook for permission checks
      2 [chrome 90.0.4430.212 linux #0-5]    βœ– can go back from a save error
      2 [Chrome 90.0.4430.212 linux #0-5]    βœ– "before all" hook for Termbox: AnonEditWarning
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– uses the property ID if no label in fallback chain found
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– uses the label from the page content language
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– uses the label from the English fallback language
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– uses the label from a non-English fallback language
      2 [chrome 90.0.4430.212 linux #0-4]        βœ– shows the current targetValue
      2 [chrome 90.0.4430.212 linux #0-4]        βœ– shows the current targetReference
      2 [chrome 90.0.4430.212 linux #0-4]    βœ– opens app in OOUI dialog
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– is shown and leads to login page
      2 [chrome 90.0.4430.212 linux #0-4]            βœ– is shown and can be dismissed
      2 [chrome 90.0.4430.212 linux #0-4]        βœ– is not shown when logged in
      2 [chrome 90.0.4430.212 linux #0-4]    βœ– indicates loading while app gathers its data
      2 [Chrome 90.0.4430.212 linux #0-4]    βœ– "before all" hook for the Tainted icon
      2 [chrome 90.0.4430.212 linux #0-3]    βœ– shows ErrorUnknown when launching bridge for a non-existent entity
      2 [chrome 90.0.4430.212 linux #0-3]        βœ– shows custom Bridge warning on login page
      2 [chrome 90.0.4430.212 linux #0-3]    βœ– can retry saving bridge from ErrorSaving
      2 [chrome 90.0.4430.212 linux #0-3]    βœ– can go back from a save error on desktop
      2 [Chrome 90.0.4430.212 linux #0-3]    βœ– can expand collapsed references on a protected page as unprivileged user
      2 [chrome 90.0.4430.212 linux #0-3]    βœ– can be relaunched from ErrorUnknown
      2 [chrome 90.0.4430.212 linux #0-3]        βœ– "before each" hook for when there is an edit conflict
      2 [chrome 90.0.4430.212 linux #0-3]        βœ– "before each" hook for when assertuser fails
      2 [chrome 90.0.4430.212 linux #0-2]    βœ– saves an updated value
      2 [chrome 90.0.4430.212 linux #0-2]    βœ– can save with tag
      2 [Chrome 90.0.4430.212 linux #0-1]    βœ– old revisions do not have an edit link
      2 [Chrome 90.0.4430.212 linux #0-1]    βœ– can add a statement using the keyboard
      2 [chrome 90.0.4430.212 linux #0-1]    βœ– "before all" hook for App
      2 [chrome 90.0.4430.212 linux #0-0]    βœ– unsupported datatype

So some consistent ones between the last check and now would be

2 [Chrome 90.0.4430.212 linux #0-8]    βœ– "before all" hook for Termbox: reading
2 [Chrome 90.0.4430.212 linux #0-7]    βœ– "before all" hook for Termbox: LicenseOverlay
2 [Chrome 90.0.4430.212 linux #0-6]        βœ– "before each" hook for Termbox: editing
2 [Chrome 90.0.4430.212 linux #0-5]    βœ– "before all" hook for Termbox: AnonEditWarning

Which all relate to the Wikibase termbox.

https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php72-docker/139725/

16:15:45 Error: internal_api_error_Error: [893bc2c55d0ebc26b5e731f1] Exception caught: Call to a member function getFullText() on null
16:15:45     at /workspace/src/extensions/Wikibase/node_modules/mwbot/src/index.js:262:31

https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php72-docker/125081/consoleFull

23:35:09 [Chrome 90.0.4430.212 linux #0-7] Termbox: LicenseOverlay
23:35:09 [Chrome 90.0.4430.212 linux #0-7]    ? is shown when clicking publish
23:35:09 [Chrome 90.0.4430.212 linux #0-7]    βœ– "before each" hook for Termbox: LicenseOverlay
23:35:09 [Chrome 90.0.4430.212 linux #0-7]
23:35:09 [Chrome 90.0.4430.212 linux #0-7] 1 failing (11.5s)
23:35:09 [Chrome 90.0.4430.212 linux #0-7]
23:35:09 [Chrome 90.0.4430.212 linux #0-7] 1) Termbox: LicenseOverlay "before each" hook for Termbox: LicenseOverlay
23:35:09 [Chrome 90.0.4430.212 linux #0-7] element (".wb-ui-all-entered-languages-expandable__switch") still not existing after 10000ms
23:35:09 [Chrome 90.0.4430.212 linux #0-7] Error: element (".wb-ui-all-entered-languages-expandable__switch") still not existing after 10000ms
23:35:09 [Chrome 90.0.4430.212 linux #0-7]     at Element.<anonymous> (/workspace/src/extensions/Wikibase/node_modules/@wdio/utils/build/shim.js:270:24)
23:35:09 [Chrome 90.0.4430.212 linux #0-7]     at processTicksAndRejections (internal/process/task_queues.js:95:5)
23:35:09 [Chrome 90.0.4430.212 linux #0-7]     at TermboxPage.waitForTermboxToLoad (/workspace/src/extensions/Wikibase/view/lib/wikibase-termbox/tests/selenium/pageobjects/Termbox.page.js:106:34)
23:35:09 [Chrome 90.0.4430.212 linux #0-7]     at TermboxPage.openItemPage (/workspace/src/extensions/Wikibase/view/lib/wikibase-termbox/tests/selenium/pageobjects/Termbox.page.js:100:8)
23:35:09 [Chrome 90.0.4430.212 linux #0-7]     at Context.<anonymous> (/workspace/src/extensions/Wikibase/view/lib/wikibase-termbox/tests/selenium/specs/LicenseOverlay.spec.js:13:15)

We got rid of lots of bridge flakiness by upping timeouts to deal with the slow CI situations, so doing this for termbox may also help these issues (well this second one at least)

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/769397 selenium waitforTimeout to 20 seconds [NEW]

I centrally looked at these for quite some time and generally the only thing I found is that most flakiness is caused by CI being slow and us hitting timouts.
If all of the timeouts were longer for CI runs (in terms of selnium tests) I expect that less flakiness / test failings would be seen.
OR if CI was faster on the whole. (See T281122 etc)

@thcipriani happy to just close this one here now, or can leave it open for continuing talking about the stuff you were working on!

Change #769397 abandoned by Addshore:

[mediawiki/extensions/Wikibase@master] selenium waitforTimeout to 20 seconds

Reason:

https://gerrit.wikimedia.org/r/769397