Great! Thanks for the fix. For the setTimeout issue, it seems to only happen on one of the 5 machines I tried on. git bisect traced it down to this commit: 30a0e58 uv: upgrade to 87dbffbd [1] https://github.com/joyent/node/commit/30a0e58
Adding some printfs to the modified timer.c, as that seemed a likely culprit, I tracked it down to the loop->time value fluctuating greatly, looks like something is clearing it to near-0 periodically. Similarly, running process.hrtime() over and over again fluctuates between showing expected values and values near 0s. I'll send an email to nodedev with details. - Jimb Esser On Jun 11, 4:05 pm, Isaac Schlueter <[email protected]> wrote: > fs.readFile('/proc/stat', ...) fixed in master. Now any zero-byte > result from fstat() will cause it to read until it stops getting > bytes. > > > > > > > > On Mon, Jun 11, 2012 at 2:15 PM, Isaac Schlueter <[email protected]> wrote: > > Aha, the /proc/stat thing is interesting. It reports a stat.size of > > 0, which is confusing the optimization in fs.readFile. (Note that > > fs.createReadStream('/proc/stat') does the right thing.) > > > The setTimeout(fn, 1000) issue I can't reproduce on Linux, SmartOS, or OS X. > > > On Mon, Jun 11, 2012 at 2:00 PM, Jimb Esser <[email protected]> wrote: > >> Okay, thanks for the info, changing our code to proc.on('close') seems > >> to have resolved that issue, sorry I didn't notice the difference in > >> the docs, and the docs do not seem to include that very handy list of > >> changes (though it was in the email, I apparently skimmed over it as I > >> do all links in emails...). > > >> Two other issues I'm running into with node 0.7.10 on Linux: > > >> setTimeout with times > 350ms or so sometimes don't get called. A one- > >> line .js file: setTimeout(console.log, 1000, 'Test'); appears to never > >> display the message nor exit, about 1 in 5 times I run it. > > >> fs.readFileSync('/proc/stat') (and async variants) now return an empty > >> buffer all the time, previously would return the same as running 'cat / > >> proc/stat'. Same with reading any other procfs file, no problem on > >> non-procfs files, AFAICT. > > >> Jimb Esser > > >> On Jun 11, 12:52 pm, Isaac Schlueter <[email protected]> wrote: > >>> The reasoning: > > >>> When sharing file descriptors with child process stdio, this became > >>> very complicated. You could have a child process share its stdout > >>> with the parent's stdout, for example. > > >>> What to do in this case? Never emit "exit" at all? What if the > >>> parent needs to know when the child is done processing? > > >>> It led to some really awful complicated logic in many relatively > >>> common use cases. We opted to make things more explicit and simple by > >>> adding a "close" event which indicates that the stdio is closed, and > >>> an "exit" event which indicates that the child has exited. > > >>> On Mon, Jun 11, 2012 at 12:49 PM, Marco Rogers <[email protected]> > >>> wrote: > >>> > See the changes to child_process > >>> > here. https://github.com/joyent/node/wiki/API-changes-between-v0.6-and-v0.8 > > >>> > It seems like exit doesn't wait for the i/o pipes to close anymore. > >>> > There's > >>> > a new "close" event that might work better. I don't know the history of > >>> > his > >>> > change though so YMMV. > > >>> > :Marco > > >>> > On Monday, June 11, 2012 12:42:32 PM UTC-7, Jimb Esser wrote: > > >>> >> I'm trying out the new node version (previously on 0.6.*), and I'm > >>> >> running into issues where processes spawned with child_process emit > >>> >> their 'exit' event before their stdout/stderr 'data' events > >>> >> (previously it seemed to always emit all data events before exiting), > >>> >> causing all sorts of problems with our servers. Is this expected? > >>> >> Always that way and we were just lucky before? Some undocumented API > >>> >> change? Bug from the other child_process changes? > > >>> >> This is on Linux, and, unfortunately, doesn't seem to reproduce in a > >>> >> trivial test case, just when spawning processes when lots of other > >>> >> stuff is going on. > > >>> >> On Jun 11, 8:59 am, Isaac Schlueter <[email protected]> wrote: > >>> >> > 2012.06.11, Version 0.7.10 (unstable) > > >>> >> > This is the second-to-last release on the 0.7 branch. Version 0.8.0 > >>> >> > will be released some time next week. As other even-numbered Node > >>> >> > releases before it, the v0.8.x releases will maintain API and binary > >>> >> > compatibility. > > >>> >> > The major changes are detailed > >>> >> > inhttps://github.com/joyent/node/wiki/API-changes-between-v0.6-and-v0.8 > > >>> >> > Please try out this release. There will be very few changes between > >>> >> > this and the v0.8.x release family. This is the last chance to > >>> >> > comment > >>> >> > on the API before it is locked down for stability. > > >>> >> > * Roll V8 back to 3.9.24.31 > > >>> >> > * build: x64 target should always pass -m64 (Robert Mustacchi) > > >>> >> > * add NODE_EXTERN to node::Start (Joel Brandt) > > >>> >> > * repl: Warn about running npm commands (isaacs) > > >>> >> > * slab_allocator: fix crash in dtor if V8 is dead (Ben Noordhuis) > > >>> >> > * slab_allocator: fix leak of Persistent handles (Shigeki Ohtsu) > > >>> >> > * windows/msi: add node.js prompt to startmenu (Jeroen Janssen) > > >>> >> > * windows/msi: fix adding node to PATH (Jeroen Janssen) > > >>> >> > * windows/msi: add start menu links when installing (Jeroen Janssen) > > >>> >> > * windows: don't install x64 version into the 'program files (x86)' > >>> >> > folder (Matt Gollob) > > >>> >> > * domain: Fix #3379 domain.intercept no longer passes error arg to cb > >>> >> > (Marc Harter) > > >>> >> > * fs: make callbacks run in global context (Ben Noordhuis) > > >>> >> > * fs: enable fs.realpath on windows (isaacs) > > >>> >> > * child_process: expose UV_PROCESS_DETACHED as options.detached > >>> >> > (Charlie McConnell) > > >>> >> > * child_process: new stdio API for .spawn() method (Fedor Indutny) > > >>> >> > * child_process: spawn().ref() and spawn().unref() (Fedor Indutny) > > >>> >> > * Upgrade npm to 1.1.25 > >>> >> > - Enable npm link on windows > >>> >> > - Properly remove sh-shim on Windows > >>> >> > - Abstract out registry client and logger > > >>> >> > Source Code:http://nodejs.org/dist/v0.7.10/node-v0.7.10.tar.gz > > >>> >> > Windows Installer:http://nodejs.org/dist/v0.7.10/node-v0.7.10.msi > > >>> >> > Windows x64 Files:http://nodejs.org/dist/v0.7.10/x64/ > > >>> >> > Macintosh Installer > >>> >> > (Universal):http://nodejs.org/dist/v0.7.10/node-v0.7.10.pkg > > >>> >> > Other release files:http://nodejs.org/dist/v0.7.10/ > > >>> >> > Website:http://nodejs.org/docs/v0.7.10/ > > >>> >> > Documentation:http://nodejs.org/docs/v0.7.10/api/ > > >>> > -- > >>> > Job Board:http://jobs.nodejs.org/ > >>> > Posting guidelines: > >>> >https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > >>> > You received this message because you are subscribed to the Google > >>> > Groups "nodejs" group. > >>> > To post to this group, send email to [email protected] > >>> > To unsubscribe from this group, send email to > >>> > [email protected] > >>> > For more options, visit this group at > >>> >http://groups.google.com/group/nodejs?hl=en?hl=en > > >> -- > >> Job Board:http://jobs.nodejs.org/ > >> Posting > >> guidelines:https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > >> You received this message because you are subscribed to the Google > >> Groups "nodejs" group. > >> To post to this group, send email to [email protected] > >> To unsubscribe from this group, send email to > >> [email protected] > >> For more options, visit this group at > >>http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
