Flaky e2e fuseki-ui test "Edits the graph"

オープン
#4,394 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@OyvindLGjesdal がすでに取り組んでいます。

2026年11月10日 から。

  • #4395 @OyvindLGjesdal による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cypress, java
領域
frontend, testing

調査の方向性

Start with the Fuseki UI end-to-end test tests/e2e/specs/datasets.cy.js, where the failing “Edits the graph” test times out waiting for a table header. Inspect how the test waits for /$/server and how the UI handles services being null; the issue suggests disabling the button until services are available. Done means the test reliably passes when the server response is delayed.

索引モデルが issue の本文から書いたものです。

説明

bug
Version

6.3.0-SNAPSHOT

What happened?

I notice some CI jobs fail with https://github.com/apache/jena/actions/runs/42764963660/job/129734662694?pr=4356

It looks like this is due to timing, e.g clicking the button before the mock server serves anything on /$/server.
Forcing a delay for thIs response in cypress, causes the test to fail each time.

Claude suggests having the button disabled while services is null.

Relevant output and stacktrace
INFO] [TESTS]       ✓ Visualizes the dataset information (Info View, tab) (450ms)
[INFO] [TESTS] 
[INFO] [CLIENT] 10:35:18 AM [vite] (client) page reload coverage/lcov-report/index.html
[INFO] [TESTS] 
[INFO] [TESTS]   8 passing (29s)
[INFO] [TESTS]   1 failing
[INFO] [TESTS] 
[INFO] [TESTS]   1) datasets
[INFO] [TESTS]        after creating new datasets
[INFO] [TESTS]          Edits the graph:
[INFO] [TESTS]      AssertionError: Timed out retrying after 20000ms: Expected to find element: `table.jena-table > thead > tr > th`, but never found it.
[INFO] [TESTS]       at Context.eval (http://localhost:34339/__cypress/tests?p=tests/e2e/specs/datasets.cy.js:95:8)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   (Results)
[INFO] [TESTS] 
[INFO] [TESTS]   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [TESTS]   │ Tests:        9                                                                                │
[INFO] [TESTS]   │ Passing:      8                                                                                │
[INFO] [TESTS]   │ Failing:      1                                                                                │
[INFO] [TESTS]   │ Pending:      0                                                                                │
[INFO] [TESTS]   │ Skipped:      0                                                                                │
[INFO] [TESTS]   │ Screenshots:  1                                                                                │
[INFO] [TESTS]   │ Video:        false                                                                            │
[INFO] [TESTS]   │ Duration:     28 seconds                                                                       │
[INFO] [TESTS]   │ Spec Ran:     datasets.cy.js                                                                   │
[INFO] [TESTS]   └────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   (Screenshots)
[INFO] [TESTS] 
[INFO] [TESTS]   -  /home/runner/work/jena/jena/jena-fuseki2/jena-fuseki-ui/tests/e2e/screenshots/da     (1280x720)
[INFO] [TESTS]      tasets.cy.js/datasets -- after creating new datasets -- Edits the graph (failed)               
[INFO] [TESTS]      .png                                                                                           
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] ────────────────────────────────────────────────────────────────────────────────────────────────────
[INFO] [TESTS]                                                                                                     
[INFO] [TESTS]   Running:  menu.cy.js                                                                      (2 of 4)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   menu
[INFO] [TESTS]     on a small screen
[INFO] [SERVER] GET /$/ping 200 0.193 ms - 40
[INFO] [SERVER] GET /$/server 200 0.200 ms - 105
[INFO] [TESTS] ⚠️ file /home/runner/work/jena/jena/jena-fuseki2/jena-fuseki-ui/.nyc_output/out.json has no coverage information
[INFO] [TESTS] Did you forget to instrument your web application? Read https://github.com/cypress-io/code-coverage#instrument-your-application
[INFO] [CLIENT] 10:35:22 AM [vite] (client) page reload coverage/lcov-report/index.html
[INFO] [TESTS]       ✓ Opens and closes the collapsed menu with the toggler (1696ms)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   1 passing (2s)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   (Results)
[INFO] [TESTS] 
[INFO] [TESTS]   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [TESTS]   │ Tests:        1                                                                                │
[INFO] [TESTS]   │ Passing:      1                                                                                │
[INFO] [TESTS]   │ Failing:      0                                                                                │
[INFO] [TESTS]   │ Pending:      0                                                                                │
[INFO] [TESTS]   │ Skipped:      0                                                                                │
[INFO] [TESTS]   │ Screenshots:  0                                                                                │
[INFO] [TESTS]   │ Video:        false                                                                            │
[INFO] [TESTS]   │ Duration:     1 second                                                                         │
[INFO] [TESTS]   │ Spec Ran:     menu.cy.js                                                                       │
[INFO] [TESTS]   └────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] ────────────────────────────────────────────────────────────────────────────────────────────────────
[INFO] [TESTS]                                                                                                     
[INFO] [TESTS]   Running:  query.cy.js                                                                     (3 of 4)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   Query
[INFO] [SERVER] GET /tests/reset 200 0.167 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.212 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.304 ms - 2
[INFO] [SERVER] GET /$/server 200 0.255 ms - -
[INFO] [SERVER] GET /$/server 200 0.247 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 200 0.201 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.167 ms - 2
[INFO] [TESTS]     ✓ Uses the correct SPARQL Endpoint (2113ms)
[INFO] [SERVER] GET /tests/reset 200 0.148 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.228 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.274 ms - 2
[INFO] [SERVER] GET /$/server 200 0.198 ms - -
[INFO] [SERVER] GET /$/server 304 0.268 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 304 0.296 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.187 ms - 2
[INFO] [TESTS] ⚠️ file /home/runner/work/jena/jena/jena-fuseki2/jena-fuseki-ui/.nyc_output/out.json has no coverage information
[INFO] [TESTS] Did you forget to instrument your web application? Read https://github.com/cypress-io/code-coverage#instrument-your-application
[INFO] [CLIENT] 10:35:26 AM [vite] (client) page reload coverage/lcov-report/index.html
[INFO] [TESTS]     ✓ Can resize the query editor (964ms)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   2 passing (3s)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   (Results)
[INFO] [TESTS] 
[INFO] [TESTS]   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [TESTS]   │ Tests:        2                                                                                │
[INFO] [TESTS]   │ Passing:      2                                                                                │
[INFO] [TESTS]   │ Failing:      0                                                                                │
[INFO] [TESTS]   │ Pending:      0                                                                                │
[INFO] [TESTS]   │ Skipped:      0                                                                                │
[INFO] [TESTS]   │ Screenshots:  0                                                                                │
[INFO] [TESTS]   │ Video:        false                                                                            │
[INFO] [TESTS]   │ Duration:     3 seconds                                                                        │
[INFO] [TESTS]   │ Spec Ran:     query.cy.js                                                                      │
[INFO] [TESTS]   └────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] ────────────────────────────────────────────────────────────────────────────────────────────────────
[INFO] [TESTS]                                                                                                     
[INFO] [TESTS]   Running:  upload.cy.js                                                                    (4 of 4)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   upload
[INFO] [SERVER] GET /tests/reset 200 0.160 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.246 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.686 ms - 2
[INFO] [SERVER] GET /$/server 200 0.176 ms - -
[INFO] [SERVER] GET /$/server 304 0.247 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 200 0.216 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.223 ms - 2
[INFO] [TESTS]     ✓ displays an empty progress bar by default (1290ms)
[INFO] [SERVER] GET /tests/reset 200 0.196 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.153 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.310 ms - 2
[INFO] [SERVER] GET /$/server 304 0.292 ms - -
[INFO] [SERVER] GET /$/server 304 0.193 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 304 0.191 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.209 ms - 2
[INFO] [TESTS]     ✓ accepts a blank graph name, and uploads to the dataset (993ms)
[INFO] [SERVER] GET /tests/reset 200 0.185 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.218 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.262 ms - 2
[INFO] [SERVER] GET /$/server 200 0.167 ms - -
[INFO] [SERVER] GET /$/server 304 0.243 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 304 0.200 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.191 ms - 2
[INFO] [TESTS]     ✓ rejects an invalid graph name (720ms)
[INFO] [SERVER] GET /tests/reset 200 0.145 ms - 2
[INFO] [SERVER] GET /$/ping 200 0.221 ms - 40
[INFO] [SERVER] POST /$/datasets 200 0.256 ms - 2
[INFO] [SERVER] GET /$/server 200 0.183 ms - -
[INFO] [SERVER] GET /$/server 304 0.193 ms - -
[INFO] [SERVER] GET /$/stats/skosmos 304 0.302 ms - -
[INFO] [SERVER] GET /tests/reset 200 0.146 ms - 2
[INFO] [TESTS] ⚠️ file /home/runner/work/jena/jena/jena-fuseki2/jena-fuseki-ui/.nyc_output/out.json has no coverage information
[INFO] [TESTS] Did you forget to instrument your web application? Read https://github.com/cypress-io/code-coverage#instrument-your-application
[INFO] [CLIENT] 10:35:32 AM [vite] (client) page reload coverage/lcov-report/index.html
[INFO] [TESTS]     ✓ displays the progress for success and failure (965ms)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   4 passing (4s)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]   (Results)
[INFO] [TESTS] 
[INFO] [TESTS]   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [TESTS]   │ Tests:        4                                                                                │
[INFO] [TESTS]   │ Passing:      4                                                                                │
[INFO] [TESTS]   │ Failing:      0                                                                                │
[INFO] [TESTS]   │ Pending:      0                                                                                │
[INFO] [TESTS]   │ Skipped:      0                                                                                │
[INFO] [TESTS]   │ Screenshots:  0                                                                                │
[INFO] [TESTS]   │ Video:        false                                                                            │
[INFO] [TESTS]   │ Duration:     4 seconds                                                                        │
[INFO] [TESTS]   │ Spec Ran:     upload.cy.js                                                                     │
[INFO] [TESTS]   └────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS] ====================================================================================================
[INFO] [TESTS] 
[INFO] [TESTS]   (Run Finished)
[INFO] [TESTS] 
[INFO] [TESTS] 
[INFO] [TESTS]        Spec                                              Tests  Passing  Failing  Pending  Skipped  
[INFO] [TESTS]   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [TESTS]   │ ✖  datasets.cy.js                           00:28        9        8        1        -        - │
[INFO] [TESTS]   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
[INFO] [TESTS]   │ ✔  menu.cy.js                               00:01        1        1        -        -        - │
[INFO] [TESTS]   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
[INFO] [TESTS]   │ ✔  query.cy.js                              00:03        2        2        -        -        - │
[INFO] [TESTS]   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
[INFO] [TESTS]   │ ✔  upload.cy.js                             00:04        4        4        -        -        - │
[INFO] [TESTS]   └────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [TESTS]     ✖  1 of 4 failed (25%)                      00:37       16       15        1        -        -  
[INFO] [TESTS] 
[INFO] [TESTS] ----------------------------------------------------------------------------------------------------
[INFO] [TESTS] 
[INFO] [TESTS]   Debug faster with full visibility.
[INFO] [TESTS] 
[INFO] [TESTS]   Record to Cypress Cloud and get instant access to full test details and replays.
[INFO] [TESTS]   Inspect the DOM, network events, and console logs exactly as they ran in CI.
[INFO] [TESTS] 
[INFO] [TESTS]   >> https://on.cypress.io/cloud-get-started
[INFO] [TESTS] 
[INFO] [TESTS] ----------------------------------------------------------------------------------------------------
[INFO] [TESTS] yarn wait-on http-get://localhost:34339/index.html && cypress run  exited with code 1
[INFO] --> Sending SIGTERM to other processes..
[INFO] [SERVER] yarn run serve:fuseki exited with code SIGTERM
[INFO] --> Sending SIGTERM to other processes..
[INFO] [CLIENT] yarn wait-on http://localhost:46775/$/ping && yarn run dev exited with code SIGTERM
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Apache Jena 6.3.0-SNAPSHOT:
[INFO] 
[INFO] Apache Jena ........................................ SUCCESS [01:07 min]
[INFO] Apache Jena - IRI3986 .............................. SUCCESS [  9.535 s]
[INFO] Apache Jena - Language tags ........................ SUCCESS [  2.772 s]
[INFO] Apache Jena - Base ................................. SUCCESS [  5.740 s]
[INFO] Apache Jena - Core ................................. SUCCESS [ 46.033 s]
[INFO] Apache Jena - ARQ .................................. SUCCESS [ 50.802 s]
[INFO] Apache Jena - ONTAPI ............................... SUCCESS [ 18.423 s]
[INFO] Apache Jena - SHACL ................................ SUCCESS [  4.663 s]
[INFO] Apache Jena - ShEx ................................. SUCCESS [  6.052 s]
[INFO] Apache Jena - RDF Patch ............................ SUCCESS [  3.780 s]
[INFO] Apache Jena - RDF Connection ....................... SUCCESS [  3.615 s]
[INFO] Apache Jena - DBOE Database Operation Environment .. SUCCESS [  0.198 s]
[INFO] Apache Jena - DBOE Base ............................ SUCCESS [  2.477 s]
[INFO] Apache Jena - DBOE Transactions .................... SUCCESS [  2.159 s]
[INFO] Apache Jena - DBOE Indexes ......................... SUCCESS [  0.728 s]
[INFO] Apache Jena - DBOE Index test suite ................ SUCCESS [  0.601 s]
[INFO] Apache Jena - DBOE Transactional Datastructures .... SUCCESS [ 37.340 s]
[INFO] Apache Jena - DBOE Storage ......................... SUCCESS [  2.248 s]
[INFO] Apache Jena - TDB1 (Native Triple Store) ........... SUCCESS [ 11.412 s]
[INFO] Apache Jena - TDB2 (Native Triple Store) ........... SUCCESS [ 11.842 s]
[INFO] Apache Jena - Libraries POM ........................ SUCCESS [  0.522 s]
[INFO] Apache Jena - Command line tools ................... SUCCESS [  6.685 s]
[INFO] Apache Jena - SPARQL Text Search ................... SUCCESS [  7.781 s]
[INFO] Apache Jena - Service Enhancer ..................... SUCCESS [ 16.685 s]
[INFO] Apache Jena - GeoSPARQL Engine ..................... SUCCESS [ 23.934 s]
[INFO] Apache Jena - Fuseki ............................... SUCCESS [  0.054 s]
[INFO] Apache Jena - Fuseki Core Engine ................... SUCCESS [  4.187 s]
[INFO] Apache Jena - Fuseki UI ............................ FAILURE [01:27 min]
[INFO] Apache Jena - Fuseki Data Access Control ........... SKIPPED
[INFO] Apache Jena - Fuseki Server Main ................... SKIPPED
[INFO] Apache Jena - Fuseki MOD - GeoSPARQL ............... SKIPPED
[INFO] Apache Jena - Fuseki Server Jar .................... SKIPPED
[INFO] Apache Jena - Fuseki Docker Tools .................. SKIPPED
[INFO] Apache Jena - Fuseki Binary Distribution ........... SKIPPED
[INFO] Apache Jena - Fuseki with GeoSPARQL Engine ......... SKIPPED
[INFO] Apache Jena - CommonsRDF for Jena .................. SKIPPED
[INFO] Apache Jena - Query Builder ........................ SKIPPED
[INFO] Apache Jena - Integration Testing .................. SKIPPED
[INFO] Apache Jena - Distribution ......................... SKIPPED
[INFO] Apache Jena - Code Examples ........................ SKIPPED
[INFO] Apache Jena - BOM .................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  07:16 min
[INFO] Finished at: 2026-11-10T10:35:32Z
[INFO] ------------------------------------------------------------------------
Are you interested in making a pull request?

Yes

主要言語
Java
スター
1.5k
フォーク
733
平均マージ
1日 4時間
マージ済み PR(30日)
48

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/jena のほかの issue

apache/jena の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。