llnode icon indicating copy to clipboard operation
llnode copied to clipboard

ECONNRESET using findrefs -s

Open Drieger opened this issue 6 years ago • 0 comments

I added test cases to the command findrefs -s and it happens that once in a while an ECONNRESET error is thrown.

Error: read ECONNRESET
    at exports._errnoException (util.js:1020:11)
    at Pipe.onread (net.js:580:26)

The following diff shows what was changed

diff --git a/test/fixtures/inspect-scenario.js b/test/fixtures/inspect-scenario.js
index fecd80c..af8d05a 100644
--- a/test/fixtures/inspect-scenario.js
+++ b/test/fixtures/inspect-scenario.js
@@ -84,9 +84,16 @@ function closure() {
     this.name = "Class B";
   }
 
+  function Class_C(arr) {
+    this.my_class_c = "My Class C";
+    this.arr = arr;
+  }
+
   const arr = new Array();
   for(let i=0; i < 10; i++) arr.push(new Class_B());
 
+  const class_c = new Class_C(arr);
+
   c.method();
 }
 
diff --git a/test/plugin/scan-test.js b/test/plugin/scan-test.js
index 0ec2b77..2aedfd4 100644
--- a/test/plugin/scan-test.js
+++ b/test/plugin/scan-test.js
@@ -79,12 +79,20 @@ function test(executable, core, t) {
     t.notOk(/\.\.\.\.\.\.\.\.\.\./.test(lines.join('\n')), 'Should not show ellipses');
     t.ok(/\(Showing 6 to 10 of 10 instances\)/.test(lines.join('\n')), 'Should show 6 to 10 ');
 
-    sess.send('v8 findjsinstances Zlib');
+    // sess.send('v8 findjsinstances Zlib');
+    sess.send('v8 findrefs -s "My Class C"');
     sess.send('version');
   });
 
   sess.linesUntil(versionMark, (err, lines) => {
     t.error(err);
+    t.ok(/(0x[0-9a-f]+): Class_C\.my_class_c=([0-9a-f]+)/.test(lines.join('\n')), 'Should find class C with string');
+    sess.send('v8 findjsinstances Zlib');
+    sess.send('version')
+  });
+
+  sess.linesUntil(versionMark, (err, lines) => {
+    t.error(err);
     // Find refs to every Zlib instance
     let found = false;
     for (let i = lines.length - 1; i >= 0; i--) {

To run the test until the error occurs the following script was used

while node test/plugin/scan-test.js;
do
  echo "good";
done

The error was reproduced in the following environment: Node.js version: v6.16.0 OS version: Ubuntu 16.04 Kernel: 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018

Drieger avatar Jan 30 '19 15:01 Drieger