Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Error initializing IMB disk cache results in no results

Đang mở
#893 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
typescript, vscode
Lĩnh vực
devtools

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện chuỗi khởi động lại trong CodeQL extension: chạy một truy vấn, thay đổi một cài đặt khiến máy chủ truy vấn khởi động lại, sau đó chạy lại truy vấn. Theo dõi các điểm vào của QueryServerBackendManager và EvaluationServer được nêu trong stack trace, đồng thời xác minh rằng truy vấn đã dừng giải phóng IMB cache lock. Được coi là hoàn tất khi truy vấn tiếp theo thực thi thành công thay vì không trả về kết quả nào.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug VSCode

Describe the bug
Changing the settings of the CodeQL extension while running a query results in the restart of the query server.
This restart successfully stops the running query, but is unable to properly release the lock on the IMB cache directory of the selected database.

Subsequent query executions return with a no result response and the query log contains the stack trace (with *** if information is redacted)

Jun 29, 2021 1:25:48 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: Error initializing the IMB disk cache: the cache directory is already locked by another running process. Only one instance of the IMB can access a cache directory at a time. The lock file is located at /Users/***/Library/Application Support/Code/User/workspaceStorage/***/GitHub.vscode-codeql/***/***/db-cpp/default/cache/.lock
(eventual cause: OverlappingFileLockException)
java.util.concurrent.CompletionException: Error initializing the IMB disk cache: the cache directory is already locked by another running process. Only one instance of the IMB can access a cache directory at a time. The lock file is located at /Users/***/Library/Application Support/Code/User/workspaceStorage/***/GitHub.vscode-codeql/***/***/db-cpp/default/cache/.lock
(eventual cause: OverlappingFileLockException)
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source)
	at com.semmle.api.server.QueryServerBackendManager.lambda$withDB$0(QueryServerBackendManager.java:70)
	at com.semmle.util.concurrent.FutureUtils.supplyCompose(FutureUtils.java:217)
	at com.semmle.util.concurrent.FutureUtils.futureFinally(FutureUtils.java:159)
	at com.semmle.api.server.QueryServerBackendManager.withDB(QueryServerBackendManager.java:70)
	at com.semmle.api.server.QueryServerBackendManager.withDBExclusive(QueryServerBackendManager.java:57)
	at com.semmle.api.server.EvaluationServer.lambda$clearCache$11(EvaluationServer.java:253)
	at com.semmle.api.server.QueryServerProgressHelper.lambda$null$0(QueryServerProgressHelper.java:47)
	at com.semmle.util.concurrent.FutureUtils.supplyCompose(FutureUtils.java:217)
	at com.semmle.api.server.QueryServerProgressHelper.lambda$withProgressAndCancellation$1(QueryServerProgressHelper.java:47)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: Error initializing the IMB disk cache: the cache directory is already locked by another running process. Only one instance of the IMB can access a cache directory at a time. The lock file is located at /Users/***/Library/Application Support/Code/User/workspaceStorage/***/GitHub.vscode-codeql/***/***/db-cpp/default/cache/.lock
(eventual cause: OverlappingFileLockException)
	at com.semmle.inmemory.caching.RelationCacheImpl.takeFilesystemLock(RelationCacheImpl.java:351)
	at com.semmle.inmemory.caching.RelationCacheImpl.create(RelationCacheImpl.java:110)
	at com.semmle.inmemory.caching.RelationManager.<init>(RelationManager.java:93)
	at com.semmle.inmemory.MemoryBackend.<init>(MemoryBackend.java:142)
	at com.semmle.api.server.QueryServerBackendManager.createBackend(QueryServerBackendManager.java:78)
	at com.semmle.api.server.QueryServerBackendManager$WaitingEntry.create(QueryServerBackendManager.java:99)
	at com.semmle.api.server.QueryServerBackendManager.scheduleUnblockedTasks(QueryServerBackendManager.java:139)
	at com.semmle.api.server.QueryServerBackendManager.withDB(QueryServerBackendManager.java:69)
	... 8 more
Caused by: java.nio.channels.OverlappingFileLockException
	at com.semmle.util.files.FileSystemLock.<init>(FileSystemLock.java:75)
	at com.semmle.inmemory.caching.RelationCacheImpl.takeFilesystemLock(RelationCacheImpl.java:347)
	... 15 more

Version
CodeQL CLI: v2.3.4
CodeQL Extension: v1.5.1

Visual Studio Code:
Version: 1.57.1 (Universal)
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:32.912Z
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Darwin x64 20.5.0

To reproduce
Steps to reproduce the behavior.

  1. Execute a query
  2. Change settings in the CodeQL extension that restart the query server (e.g., the amount ram or nr of threads to use)
  3. Re-execute the stopped query

Expected behavior
Execution of the query

Additional context
Add any other context about the problem here.

Ngôn ngữ chính
TypeScript
Star
539
Fork
240
Merge trung bình
2 ngày 6 giờ
Pull request đã merge (30 ngày)
29

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/vscode-codeql

Tất cả issue của github/vscode-codeql

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.