[squeak-dev] Inbox/Files-monty.172

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Wed Aug 30 20:13:26 UTC 2017


2017-08-29 8:25 GMT+02:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> Not only my eyes are old, my brain too: here is the original intention of
> Monty:
>
> https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/140/commits/
> c1db1eb40b73373b4e4fe6541cda74c8c742edc7
>
> So it avoids file existence test in pre-condition, not in post-condition...
> I swear I had seen other changes about passing failure status back to
> image for avoiding post-condition tests, but maybe it was not in this batch
> of changes.
>

Ah, it seems I'm senile since I can't remember it's me who integrated those
changes,
but not completely senile since at least I remember that I saw such changes
;)

-------------------------------

Name: VMMaker.oscog-nice.2233
Author: nice
Time: 5 June 2017, 6:13:56.418116 pm
UUID: ff8286e4-b96f-4ce6-9cb5-e7b286679e03
Ancestors: VMMaker.oscog-eem.2232

Integrate changes from monty to sqFileOpenNew.

There must be a way to check if failure is due to existence of file
(implemented via PrimErrInappropriate).
If we would test existence afterward, the file could have been deleted in
interim leading to another race condition.

This VMMaker change requires a coordinated platform source change (adding a
4th parameter to sqFileOpenNew).



> Forget about all I wrote before, the changes definitely deserve a proper
> review.
> Maybe check what happens in case someone did not update the VM properly
> before applying the image changes...
>
> 2017-08-29 1:36 GMT+02:00 tim Rowledge <tim at rowledge.org>:
>
>>
>> > On 28-08-2017, at 11:47 AM, Nicolas Cellier <
>> nicolas.cellier.aka.nice at gmail.com> wrote:
>> > Main request was to avoid case of race condition that can happen when
>> separating the action (like opening a file) from the query in case of
>> failure (like was file unwritable?), because another concurrent program
>> might have changed the file system status in between (think of concurrent
>> squeak images creating concurrent /tmp/foobar.baz for example).
>>
>> Oh, *that* problem. I hate that. It’s such a stupid bit of (mis)design. I
>> think I’ve been complaining about that for around 30 years…
>>
>> >
>> > I have already integrated the necessary VM changes, but it remains to
>> integrate image side changes.
>> > Last time I checked there were unecessary changes mixed that I'd
>> preferred to see discussed here, and the fallback code might not work in
>> older VM, then I came short of spare time...
>> > But in any cases, there are too many .mcz roting in inbox, so I'm glad
>> another pair of eyes analyze the changes.
>>
>> It’s all very well Torvalds declaring that all bugs are shallow with
>> enough pairs of eyes, *if* you have enough pairs of eyes. We need more.
>>
>>
>> tim
>> --
>> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
>> Strange OpCodes: RSC: Rewind System Clock
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170830/992f6907/attachment.html>


More information about the Squeak-dev mailing list