github / github/copilot-cli

Windows Copilot CLI repro: VFPOLEDB Execute fails with Class not registered, while the same query succeeds under VS Code

オープン
#1,892 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
area:platform-windows
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

### Describe the bug

MCP server uses JDK 21 x86 + JACOB 1.21 x86 + VFPOLEDB 9.0.
The same legal VFPOLEDB SQL succeeds when the MCP server is hosted by VS Code, but fails when hosted by Copilot CLI.

### Affected version

_No response_

### Steps to reproduce the behavior

Repro examples that fail under Copilot CLI:
```
SELECT COUNT(*) AS cnt FROM patient
```
```
SELECT RECNO() AS recno, * FROM patient WHERE RECNO() <= 10
```
```
SELECT TOP 10 patient_id, patient_name FROM patient ORDER BY patient_id
```
Observed error:
```
Invoke of: Execute
Source: Provider
Description: Class not registered
```

### Expected behavior

_No response_

### Additional context

Diagnostics from the failing path show the runtime is already correct:
```
execution-context=helper-jvm
host-kind=copilot-cli
x86 / 32-bit JVM
ASCII user.dir
COMSPEC, TEMP, TMP present
VFPOLEDB CLSID present in 32-bit registry
InprocServer32 points to vfpoledb.dll
```
Representative excerpt:
```
execution-context=helper-jvm
host-kind=copilot-cli
os.arch=x86
sun.arch.data.model=32
user.dir=C:\Users\REDACTED\AppData\Local\dbf-mcp-runtime
user.dir.ascii?=true
COMSPEC=C:\Windows\System32\cmd.exe
TEMP=C:\Users\REDACTED\AppData\Local\Temp
TMP=C:\Users\REDACTED\AppData\Local\Temp
VFPOLEDB CLSID: view32=true, view64=false
ancestor-commands=java.exe -> java.exe -> copilot.exe -> pwsh.exe -> WindowsTerminal.exe
```
Also run a helper-side STA probe, and that fails with the same Execute error, so this does not look like a simple MTA vs STA issue.

At this point we have already ruled out:
```
SQL syntax as the root cause
DBF corruption
wrong JVM bitness
missing VFPOLEDB registration
Unicode cwd
missing TEMP, TMP, or COMSPEC
```
Current best hypothesis:
under the Copilot CLI host process tree on Windows, VFPOLEDB fails specifically in the Execute / rowset materialization path, likely due to host-context differences, permissions, or a secondary COM dependency triggered only in that host environment.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

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

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