Giter VIP home page Giter VIP logo

Comments (4)

 avatar commented on August 11, 2024

This may be an issue with node -- It appears that the fs.stat callback is getting triggered _before_ the next.parallel() -> process.nextTick() --> check, at least in this specific case (FYI, for some reason I can only get this to happen on the step/test directory. I noticed it because that was a sub-directory of something I was scanning).

from step.

 avatar commented on August 11, 2024

... that's exactly what is happening

var fs = require('fs');

fs.stat( '.', function(){ console.log( 'Stat is done' ); });

for( var i=0; i<100000; i++);

process.nextTick( function(){ console.log( 'Next Tick' ); } );

Stat is done shows up first... similarly, the check() pushed to nextTick is getting triggered late and causing a double-execution of next.apply(...). Step is in a race condition with the file-system here :)

from step.

koichik avatar koichik commented on August 11, 2024

I think that this is not a problem of Node.
check() is called more one times than the size of the group.
Probably, at the last twice, pending is 0.
Therefore localCallback() may be called twice.
I think that it needs guard.
workaround:

@@ -95,6 +95,7 @@ function Step() {

     function check() {
       if (pending === 0) {
+        --pending;
         // When group is done, call the callback
         localCallback(error, result);
       }

from step.

creationix avatar creationix commented on August 11, 2024

I don't remember if this was fixed? If this is still an issue please re-open. Also see #24

from step.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.