Model Editor in Infinite Loading State with no error message

Open
#3,642 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
typescript, vscode

Research direction

Start by reproducing the two scenarios with the linked sample Java app, then inspect the Model Editor flow and the extension and CodeQL Query Server logs around ApplicationModeEndpoints.ql and FrameworkModeEndpoints.ql. Done means both failure cases show a useful error instead of leaving the Java modeling panel loading indefinitely.

Written by the indexing model from the issue text.

Description

bug VSCode

Describe the bug
Under some specific circumstance(s) the model editor gets into an infinite loading state, with no error message about what has gone wrong.

Version
The CodeQL and VS Code version in which the bug occurs.

VSCode CodeQL Extension version - v1.13.1
CodeQL CLI versions tested with: 2.16.3, 2.17.1, 2.17.4, 2.17.5

To reproduce
There are 2 scenarios where I have observed this. In scenario 1 , I admit that I am aware of the fact that the database has a missing file, and then perhaps this behaviour makes sense? (though I still think it would be hard to debug without an error message). In scenario 2, I do not know what the underlying issue is.

Both scenarios use the sample Java app in this repo

Scenario 1)

  1. perform:
javac SampleInner.java
codeql database create -l java databasenoinnerpresent --command='javac Sample.java'

successfully creates a database with no SampleInner.java file (probably this causes the silent error?)

  1. load the database into the editor
  2. open the model editor

end of CodeQL Query Server log shows:

[2024-06-17 16:31:43] (1s) Unpausing evaluation
[2024-06-17 16:31:43] Evaluation of /Users/knewbury/.codeql/packages/codeql/java-queries/1.0.1/utils/modeleditor/ApplicationModeEndpoints.ql produced BQRS results.

CodeQL Extension log tail:

CLI command succeeded.
Reading bqrs data using CodeQL CLI: bqrs decode -v --log-to-stderr --format json --entities=url,string --result-set #select /var/folders/2k/tdmj1d890_30b043s71nvt300000gn/T/queries_-16970-NvOnULt5vTtW/model-editor-results/ApplicationModeEndpoints.ql-48t4dwCRwNoDw-qj70hyb/results.bqrs...

CLI command succeeded.

Scenario 2)

  1. perform:
javac SampleInner.java
codeql database create -l java databaseinnerpresent --command='javac -cp . Sample.java'

successfully creates a database with both, as expected, Sample.java and SampleInner.java file

  1. load the database into the editor
  2. open the model editor
  3. select "Model as Dependency"

end of CodeQL Query Server log shows:

[2024-06-17 16:16:50] (0s) Unpausing evaluation
[2024-06-17 16:16:50] Evaluation of /Users/knewbury/.codeql/packages/codeql/java-queries/1.0.1/utils/modeleditor/FrameworkModeEndpoints.ql produced BQRS results.

CodeQL Extension log tail:

CLI command succeeded.
Reading bqrs data using CodeQL CLI: bqrs decode -v --log-to-stderr --format json --entities=url,string --result-set #select /var/folders/2k/tdmj1d890_30b043s71nvt300000gn/T/queries_-16970-NvOnULt5vTtW/model-editor-results/FrameworkModeEndpoints.ql-IAvaxSoFVfUsZFMsOlDMj/results.bqrs...

CLI command succeeded.

both yield a infinite Modelling Java panel like:

Image

Expected behavior
I expect a failure message to display so that the reasons for the hang can be fixed (ie if there is something wrong with a database then how would a user know that unless there is some error message). I am not currently sure why I cannot model the database in the example as a dependency...

Additional context
Add any other context about the problem here.

Dominant language
TypeScript
Stars
539
Forks
240
Avg merge
2d 6h
Merged PRs (30d)
29

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/vscode-codeql

All issues in github/vscode-codeql

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.