[
https://issues.apache.org/jira/browse/TINKERPOP-2290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16917642#comment-16917642
]
Jorge Bay commented on TINKERPOP-2290:
--------------------------------------
I was able to reproduce it using [^testing.js] script.
The {{Connection}} should not [emit a "error" event in
{{_handleError}}|https://github.com/apache/tinkerpop/blob/3.4.3/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/connection.js#L216]
as "error" is an special event in Node.js:
https://nodejs.org/api/events.html#events_error_events
> Javascript GLV connection refused error handling
> ------------------------------------------------
>
> Key: TINKERPOP-2290
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2290
> Project: TinkerPop
> Issue Type: Bug
> Components: javascript
> Affects Versions: 3.4.1
> Reporter: Ted Wilmes
> Priority: Major
> Attachments: testing.js
>
>
> I believe the Javascript driver is emitting connection refused errors in a
> manner that makes it difficult for users to add in retry and other error
> handling logic. My Javascript knowledge is minimal so apologies if the below
> examples are non-idiomatic Javascript.
> Here's an example of the error:
> {code:java}
> UNCAUGHT: { Error: connect ECONNREFUSED 127.0.0.1:8182
> at Object._errnoException (util.js:1022:11)
> at _exceptionWithHostPort (util.js:1044:20)
> at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
> code: 'ECONNREFUSED',
> errno: 'ECONNREFUSED',
> syscall: 'connect',
> address: '127.0.0.1',
> port: 8182 }
> UNCAUGHT: TypeError: Cannot read property 'aborted' of null
> at ClientRequest._req.on
> (/home/twilmes/repos/nodetest/node_modules/ws/lib/WebSocket.js:644:19)
> at emitOne (events.js:116:13)
> at ClientRequest.emit (events.js:211:7)
> at Socket.socketCloseListener (_http_client.js:363:9)
> at emitOne (events.js:121:20)
> at Socket.emit (events.js:211:7)
> at TCP._handle.close [as _onclose] (net.js:567:12) {code}
> I did some looking at that UNCAUGHT TypeError is a separate issue and appears
> to be fixed in a newer version of the WS package that is being used.
> To reproduce this problem, you can either start an application up and point
> it at a non-existant TP enabled DB (JanusGraph in my case) or turn the graph
> off while the application is running. After this is done, an error is logged
> but the only way I'm able to catch it is to do something like this:
> {code:java}
> process.on('uncaughtException', function (err) {
> console.log("UNCAUGHT: ", err);
> });{code}
> Wrapping my queries and connection code in try/catch blocks does not catch
> anything.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)