You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Frank Beutelschiess (Jira)" <ji...@apache.org> on 2026/06/07 08:07:00 UTC

[jira] [Commented] (IGNITE-14550) NodeJS Thin Client: Invalid response id: in ClientSocket.js

    [ https://issues.apache.org/jira/browse/IGNITE-14550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18086691#comment-18086691 ] 

Frank Beutelschiess commented on IGNITE-14550:
----------------------------------------------

We hit this in production with {{apache-ignite-client@1.0.0}} under concurrent scan/SQL load (>10 q/s). Root cause: {{ClientSocket._processResponse}} is {{async}} and {{{}await{}}}s the payload reader while still holding shared {{{}this._buffer{}}}/{{{}this._offset{}}} state; since Node doesn't await async {{data}} listeners, a second frame re-enters {{_processResponse}} mid-await and corrupts the shared buffer → bogus request id → throw → disconnect.

Stable workaround for us: split {{_processResponse}} into a *synchronous framing phase* (copy each complete message into its own isolated buffer slice, no {{{}await{}}}) followed by an *async dispatch phase* on those slices.

For anyone stuck on the only npm release (1.0.0), we published a small, dependency-free, Apache-2.0 drop-in runtime patch (just {{require()}} it before the client): {{https://www.npmjs.com/package/@frankbearguard/ignite-client-14550-fix}} · repo {{{}https://github.com/FrankKanBear/ignite-client-14550-fix{}}}. Unofficial community fix, as-is. A fuller source-level fix also exists in PR #10.

> NodeJS Thin Client: Invalid response id: in ClientSocket.js
> -----------------------------------------------------------
>
>                 Key: IGNITE-14550
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14550
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 1.9
>            Reporter: Dheeraj Saini
>            Priority: Blocker
>         Attachments: image-2021-04-15-18-40-32-507.png
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Hi Team,
>  
> We are using NodeJS Thin client to connect with ignite node. When we run single query to get data from ignite we are able to get data but when we try to get 10 query per sec we getting below error random times.
>  
> debug - Error: Invalid response id: 4122254909997320969    at /webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:344:28    at Map.forEach (<anonymous>)    at ClientSocket._disconnect (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:343:24)    at Socket.<anonymous> (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:170:22)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.812] [INFO] debug - Error: Invalid response id: 4122254909997320969    at /webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:344:28    at Map.forEach (<anonymous>)    at ClientSocket._disconnect (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:343:24)    at Socket.<anonymous> (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:170:22)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.812] [INFO] debug - Error: Invalid response id: 4122254909997320969    at /webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:344:28    at Map.forEach (<anonymous>)    at ClientSocket._disconnect (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:343:24)    at Socket.<anonymous> (/webapp/node_modules/apache-ignite-client/lib/internal/ClientSocket.js:170:22)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.813] [INFO] debug - Error: Type type code 0 is not supported    at Function.unsupportedTypeError (/webapp/node_modules/apache-ignite-client/lib/Errors.js:36:16)    at BinaryCommunicator._readTypedObject (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:216:48)    at BinaryCommunicator.readObject (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:66:27)    at SqlFieldsCursor._readRow (/webapp/node_modules/apache-ignite-client/lib/Cursor.js:300:50)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)    at async SqlFieldsCursor._read (/webapp/node_modules/apache-ignite-client/lib/Cursor.js:187:31)    at async SqlFieldsCursor._getValues (/webapp/node_modules/apache-ignite-client/lib/Cursor.js:151:9)    at async SqlFieldsCursor.getValue (/webapp/node_modules/apache-ignite-client/lib/Cursor.js:47:13)    at async SqlFieldsCursor.getValue (/webapp/node_modules/apache-ignite-client/lib/Cursor.js:217:16)    at async Function.igniteDatabase.getdata (/webapp/ignite.js:211:20)    at async filter (/webapp/htpl/search.js:630:25)[2021-04-15T04:28:51.940] [INFO] debug - Error: Ignite client is not in an appropriate state for the requested operation    at ClientFailoverSocket.send (/webapp/node_modules/apache-ignite-client/lib/internal/ClientFailoverSocket.js:47:19)    at BinaryCommunicator.send (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:56:28)    at CacheClient.query (/webapp/node_modules/apache-ignite-client/lib/CacheClient.js:538:34)    at Function.igniteDatabase.getdata (/webapp/ignite.js:206:48)    at filter (/webapp/htpl/search.js:630:46)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.941] [INFO] debug - Error: Ignite client is not in an appropriate state for the requested operation    at ClientFailoverSocket.send (/webapp/node_modules/apache-ignite-client/lib/internal/ClientFailoverSocket.js:47:19)    at BinaryCommunicator.send (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:56:28)    at CacheClient.query (/webapp/node_modules/apache-ignite-client/lib/CacheClient.js:538:34)    at Function.igniteDatabase.getdata (/webapp/ignite.js:206:48)    at filter (/webapp/htpl/search.js:630:46)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.941] [INFO] debug - Error: Ignite client is not in an appropriate state for the requested operation    at ClientFailoverSocket.send (/webapp/node_modules/apache-ignite-client/lib/internal/ClientFailoverSocket.js:47:19)    at BinaryCommunicator.send (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:56:28)    at CacheClient.query (/webapp/node_modules/apache-ignite-client/lib/CacheClient.js:538:34)    at Function.igniteDatabase.getdata (/webapp/ignite.js:206:48)    at filter (/webapp/htpl/search.js:630:46)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)[2021-04-15T04:28:51.942] [INFO] debug - Error: Ignite client is not in an appropriate state for the requested operation    at ClientFailoverSocket.send (/webapp/node_modules/apache-ignite-client/lib/internal/ClientFailoverSocket.js:47:19)    at BinaryCommunicator.send (/webapp/node_modules/apache-ignite-client/lib/internal/BinaryCommunicator.js:56:28)    at CacheClient.query (/webapp/node_modules/apache-ignite-client/lib/CacheClient.js:538:34)    at Function.igniteDatabase.getdata (/webapp/ignite.js:206:48)    at filter (/webapp/htpl/search.js:630:46)    at runMicrotasks (<anonymous>)    at processTicksAndRejections (internal/process/task_queues.js:97:5)
>  
>  
> Apache Ignite Version: 2.9.1
> NodeJS Client "apache-ignite-client": "^1.0.0"
>  
> I have put console in lib/internal/ClientSocket.js and try to debug code. Observation is whenever we send any request to socket we create a request Id and store into map. When response comes back from socket, we fetch request id from response and process further. But in many case request id from socket response not matching in our request id map. Due to this we getting this error.
>  
>  Source Code snippets of ClientSocket.js
>  
> !image-2021-04-15-18-40-32-507.png!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)