That's not really a race, just a condition not covered.

On Wed, Feb 8, 2012 at 3:08 PM, Matt <[email protected]> wrote:

> There's a race between when you get the results from stat and re-open the
> file. You know it's changed, you assume it has grown, so you re-open at
> "last-byte-read" position. But what if between that time, the file got
> truncated to zero, meaning you need to read from the start of the file?
>
> On Wed, Feb 8, 2012 at 4:36 PM, Adam Pritchard 
> <[email protected]>wrote:
>
>> Can you elaborate? I'm pretty new to JS/Node, so maybe I'm not seeing it.
>>
>> I recognize that the file reading isn't one-to-one with the notifications
>> (i.e., many rapid file modifications will probably be processed in a single
>> file read, and then following notifications won't have an effect until the
>> file grows again), but I don't see that that's a problem -- the data should
>> still get processed in a timely fashion.
>>
>> On the other hand... my tests aren't running through successfully on two
>> of three OSes, so there's certainly something not right...
>>
>> I'd appreciate any bugs or flaws you can point out.
>>
>> Adam
>>
>>
>> On Wed, Feb 8, 2012 at 11:40 AM, Matt <[email protected]> wrote:
>>
>>> Still has a race condition in it.
>>>
>>>
>>> On Tue, Feb 7, 2012 at 8:20 PM, Adam Pritchard <[email protected]
>>> > wrote:
>>>
>>>> I've also been working on a little log-file-following (tail -f) node
>>>> module.
>>>>
>>>> https://github.com/adam-p/text-file-follower/blob/master/lib/index.coffee
>>>>
>>>> I need it to work on Windows, so it's cross-platform. It works okay
>>>> already, but I still have some stuff to do.
>>>>
>>>> The behaviour of fs.watch is a bit sketchy. For example...
>>>> https://github.com/joyent/node/issues/search?q=fs.watch&state=open
>>>>
>>>> If I didn't need/want to support Windows I'd probably use fs.watchFile.
>>>>
>>>> --
>>>> 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
>>
>
>  --
> 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

Reply via email to