Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-25024

LinkIT#editPageLink is flickering

    XMLWordPrintable

Details

    • Integration
    • Unknown
    • N/A
    • N/A
    • org.xwiki.blocknote.test.ui.AllIT$NestedLinkIT#editPageLink

    Description

      The functional test org.xwiki.blocknote.test.ui.AllIT$NestedLinkIT#editPageLink fails intermittently on ci.xwiki.org.

      Affected tests

      • org.xwiki.blocknote.test.ui.AllIT$NestedLinkIT#editPageLink

      Branches: master, stable-18.8.x, stable-18.7.x.

      Frequency

      Develocity, 28 days to 2026-09-19: 13 failures in 240 executions (5.4%), in 5 of 15 configurations. The failure was already happening at the start of that window, so it may predate it.

      configuration (branch / browser / db / servlet) runs fails fail % first fail last fail
      master / chrome / mysql latest / tomcat 11-jdk25 26 5 19.2% 2026-08-29 2026-09-19
      master / chrome / postgresql latest / tomcat 11-jdk25 26 3 11.5% 2026-09-05 2026-09-18
      master / firefox / mariadb latest / jetty 12-jdk25 25 2 8.0% 2026-09-06 2026-09-09
      stable-18.7.x / chrome / postgresql latest / tomcat 11-jdk25 6 2 33.3% 2026-08-27 2026-09-14
      stable-18.8.x / chrome / mysql latest / tomcat 11-jdk25 5 1 20.0% 2026-09-16 2026-09-16

      The failures group into 4 distinct signatures. The two largest are below.

      F1 - StaleElementReferenceException (7 of 13 failures, Chrome only, p=0.0002)

      org.openqa.selenium.StaleElementReferenceException: stale element reference: stale element not found in the current frame
        (Session info: chrome=153.0.8010.47)
      	at org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:169)
      	at org.xwiki.blocknote.test.po.BlockNoteLinkModal.setSuggestBoxQueryAndSelectSuggestion(BlockNoteLinkModal.java:260)
      	at org.xwiki.blocknote.test.po.BlockNoteLinkModal.setPageReference(BlockNoteLinkModal.java:110)
      	at org.xwiki.blocknote.test.po.BlockNoteLinkModal.setPageTargetAndSubmit(BlockNoteLinkModal.java:122)
      	at org.xwiki.blocknote.test.ui.LinkIT.editPageLink(LinkIT.java:382)
      

      F4 - NoSuchElementException (most recent failure, 2026-09-19)

      org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"[data-test='linkSubmit']"}
        (Session info: chrome=153.0.8010.47)
      	at org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:169)
      	at org.xwiki.blocknote.test.po.BlockNoteLinkModal.submit(BlockNoteLinkModal.java:198)
      	at org.xwiki.blocknote.test.po.BlockNoteLinkModal.setPageTargetAndSubmit(BlockNoteLinkModal.java:123)
      	at org.xwiki.blocknote.test.ui.LinkIT.editPageLink(LinkIT.java:382)
      

      Analysis

      Both signatures fail on the same line, LinkIT.editPageLink:382, i.e. the setPageTargetAndSubmit() call, and both point at BlockNoteLinkModal: the link modal appears to re-render after a page suggestion is selected, so the page object's element handle goes stale (F1) or the submit button is not yet in the DOM when it is looked up (F4). That suggests a missing wait in the page object rather than a product defect.

      The fix should stay inside the page object - not an assertion, an expected value or a timeout change.

      Verifying a fix

      At the failure rate seen in the affected configurations, about 19 consecutive clean runs are needed before the failure can be called gone; the 2 clean runs since the last failure are worth p=0.73, i.e. no evidence either way. xwiki/scripts/xwiki-it-repeat.mjs on chrome / mysql latest / tomcat 11-jdk25 is the configuration to reproduce on.

      References


      Filed automatically by the daily CI check.

      Attachments

        Activity

          People

            vmassol Vincent Massol
            xwikiorg-llm-bot XWiki.org LLM Bot
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: