Skip to content

VSCode connection to IBM i server #3239

@Duncan-Chan-DC

Description

@Duncan-Chan-DC

Describe the bug

After upgrading to Code for IBM i 3.x, all users connecting to our IBM i development system become stuck at "Starting Mapepire" and the connection never completes.

We confirmed that the issue affects multiple users and workstations, so it does not appear to be user-profile specific.

During troubleshooting, we found that Code for IBM i starts Mapepire with:

QIBM_JAVA_STDIO_CONVERT=N
QIBM_PASE_DESCRIPTOR_STDIO=B
QIBM_USE_DESCRIPTOR_STDIO=Y
QIBM_MULTI_THREADED=Y

/QOpenSys/QIBM/ProdData/JavaVM/jdk11/64bit/bin/java \
-Dos400.stdio.convert=N \
-jar /home/<user>/.vscode/mapepire-server-2.3.5.jar --single

When Mapepire is started this way, VS Code remains indefinitely at "Starting Mapepire".

We manually tested Mapepire outside VS Code and discovered that when:

QIBM_JAVA_STDIO_CONVERT=Y
-Dos400.stdio.convert=Y

are used instead, Mapepire starts normally and produces readable output.

When QIBM_JAVA_STDIO_CONVERT=N is used, the output appears garbled/corrupted and the startup process does not complete successfully.

This suggests a possible issue related to stdout conversion or single-mode communication between Code for IBM i and Mapepire.

To Reproduce

  1. Install Code for IBM i 3.0.7.
  2. Connect to an IBM i V7R4M0 system.
  3. Connection reaches "Starting Mapepire".
  4. Connection never completes.
  5. Output log shows:
Starting Mapepire: QIBM_JAVA_STDIO_CONVERT=N QIBM_PASE_DESCRIPTOR_STDIO=B QIBM_USE_DESCRIPTOR_STDIO=Y QIBM_MULTI_THREADED=Y exec /QOpenSys/QIBM/ProdData/JavaVM/jdk11/64bit/bin/java -Dos400.stdio.convert=N -jar /home/CHAND/.vscode/mapepire-server-2.3.5.jar --single
  1. No Mapepire connection is established.

Expected behavior

Mapepire should start successfully and the IBM i connection should complete normally without hanging at "Starting Mapepire".

Screenshots

Image Image Image

Environment

  • Extension version: 3.0.7
  • IBM i OS version: V7R4M0
  • Java: IBM Semeru Runtime Certified Edition 11.0.27
  • Mapepire Server: 2.3.5

Additional context

Additional observations:

  • Manual startup of Mapepire in daemon mode works correctly.
  • Port 8076 is successfully opened when started manually.
  • The issue affects multiple users on the same IBM i partition.
  • We verified that Java 11 is installed and functioning correctly.
  • Changing the Mapepire Java Runtime setting from Java 8 to Java 11 did not resolve the issue.
  • Disabling Quick Connect and Secure SQL Connection did not resolve the issue.
  • Downgrading the extension also did not resolve the issue.
  • The problem appears related to the use of QIBM_JAVA_STDIO_CONVERT=N and -Dos400.stdio.convert=N.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions