Ah, yep, that 1-line fix to uv_hrtime fixes it, and the one machine that was reproducing this was running 32-bit node. Hopefully that gets in for the next version.
On Jun 11, 6:33 pm, Shigeki Ohtsu <[email protected]> wrote: > This issue was fixed inhttps://github.com/joyent/libuv/pull/450 > but libuv of node-0.7.10 was not updated yet. > > You can resolve this issue by replacing deps/uv to the current libuv > master by manual or wait for the next release. > > (2012/06/12 10:24), Jimb Esser wrote: > > > > > > > > > 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
