← Back to team overview

ubuntu-webapps-bugs team mailing list archive

[Bug 1596897] [NEW] Intermittent failures in tst_WebView_executeEditingCommands.qml

 

Public bug reported:

I've always seen this fail very occasionally, but it got much worse with
the latest Chromium version for some reason. I'm seeing regular fails
like this:

PASS   : qml-api-test::WebView_executeEditingCommand::initTestCase()
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
PASS   : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_copy()
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_cut() Compared values are not the same
   Actual   (): lorem ipsum
   Expected (): 
   Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_erase() Compared values are not the same
   Actual   (): lorem ipsum
   Expected (): 
   Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_paste() Compared values are not the same
   Actual   (): lorem ipsum
   Expected (): foo bar baz
   Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
PASS   : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_selectAll()
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_undo_redo() Compared values are not the same
   Actual   (): 
   Expected (): lorem ipsum
   Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
PASS   : qml-api-test::WebView_executeEditingCommand::cleanupTestCase()
Totals: 4 passed, 4 failed, 0 skipped, 0 blacklisted

This is actually a race condition in the test. Basically, the failing
tests do this:

- execute an editing command.
- read back the text area contents.

Both steps result in an IPC message being sent. However, the IPC message
sent as a result of the first step goes through the input pipeline -
this means that it gets bounced to the compositor thread and then back
to the render thread so that it is delivered in order with input events.

This can result in the 2 IPC messages being delivered to the render
thread out of order, and the test failing.

** Affects: oxide
     Importance: High
         Status: Triaged

** Changed in: oxide
   Importance: Undecided => High

** Changed in: oxide
       Status: New => Triaged

** Changed in: oxide
    Milestone: None => branch-1.17

-- 
You received this bug notification because you are a member of Ubuntu
WebApps bug tracking, which is subscribed to Oxide.
https://bugs.launchpad.net/bugs/1596897

Title:
  Intermittent failures in tst_WebView_executeEditingCommands.qml

Status in Oxide:
  Triaged

Bug description:
  I've always seen this fail very occasionally, but it got much worse
  with the latest Chromium version for some reason. I'm seeing regular
  fails like this:

  PASS   : qml-api-test::WebView_executeEditingCommand::initTestCase()
  127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  PASS   : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_copy()
  127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_cut() Compared values are not the same
     Actual   (): lorem ipsum
     Expected (): 
     Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
  127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_erase() Compared values are not the same
     Actual   (): lorem ipsum
     Expected (): 
     Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
  127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_paste() Compared values are not the same
     Actual   (): lorem ipsum
     Expected (): foo bar baz
     Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
  127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  PASS   : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_selectAll()
  127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
  FAIL!  : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_undo_redo() Compared values are not the same
     Actual   (): 
     Expected (): lorem ipsum
     Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
  PASS   : qml-api-test::WebView_executeEditingCommand::cleanupTestCase()
  Totals: 4 passed, 4 failed, 0 skipped, 0 blacklisted

  This is actually a race condition in the test. Basically, the failing
  tests do this:

  - execute an editing command.
  - read back the text area contents.

  Both steps result in an IPC message being sent. However, the IPC
  message sent as a result of the first step goes through the input
  pipeline - this means that it gets bounced to the compositor thread
  and then back to the render thread so that it is delivered in order
  with input events.

  This can result in the 2 IPC messages being delivered to the render
  thread out of order, and the test failing.

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1596897/+subscriptions