[Pharo-dev] [Vm-dev] Random corrupted data when copying from very large byte array

Alistair Grant akgrant0710 at gmail.com
Tue Jan 23 03:24:25 EST 2018


Hi Eliot,

On 23 January 2018 at 01:47, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>
> Hi Alistair,
>
> On Mon, Jan 22, 2018 at 1:42 AM, Alistair Grant <akgrant0710 at gmail.com> wrote:
>>
>>
>> Hi Eliot,
>>
>> On Sat, Jan 20, 2018 at 09:19:04AM +0100, Alistair Grant wrote:
>> > Hi Eliot,
>> >
>> > On 19 January 2018 at 23:04, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>> > > Hi Alistair, Hi Cl??ment,
>> > >
>> > > On Fri, Jan 19, 2018 at 12:53 PM, Alistair Grant <akgrant0710 at gmail.com>
>> > > wrote:
>> > >>
>> > >> Hi Cl??ment,
>> > >>
>> > >> On 19 January 2018 at 17:21, Alistair Grant <akgrant0710 at gmail.com> wrote:
>> > >> > Hi Cl??ment,
>> > >> >
>> > >> > On 19 January 2018 at 17:04, Cl??ment Bera <bera.clement at gmail.com>
>> > >> > wrote:
>> > >> >> Does not seem to be related to prim 105.
>> > >> >>
>> > >
>> > >
>> > > I suspect that the problem is the same compactor bug I've been trying to
>> > > reproduce all week, and have just fixed.  Could you try and reproduce with a
>> > > VM built from the latest commit?
>> >
>> > Happy to, but I'm out all day today, so it will be tomorrow or Monday.
>> >
>> > Cheers,
>> > Alistair
>> > (on the run...)
>>
>>
>> I've tested this with 2 images and 3 VMs in all 6
>> combinations:
>>
>> - "Old VM":   commit date: Wed Jan 10 23:39:30 2018 -0800, gcc 4.8.5
>> - "New VM":   commit date: Sat Jan 20 13:52:26 2018 +0100, gcc 4.8.5
>> - "GCC 5 VM": commit date: Sat Jan 20 13:52:26 2018 +0100, gcc 5.4.0
>> - Clean image: commit id: b28d466f
>> - Work image:  commit id: eb0a6fb1
>>
>> The gcc 5 is only there because I was playing with it.  The results may
>> be useful, or completely misleading. :-)
>>
>> Each time I ran "5 timesRepeat: [ self test4 ]"
>> with the halts replaced with a count increment.
>> test4 is the method provided in Cyrille's original message.
>>
>> Result summary:
>>
>> - Old VM + Work image:  5, 5, 5, 0, 0
>> - Old VM + Clean image: 5, 5, 0, 0, 0
>> - New VM + Work image:  5, 0, 5, 5, 5
>> - New VM + Clean image: 0, 0, 1, 5, 5
>> - GCC 5 + Work image:   0, 0, 0, 0, 0
>> - GCC 5 + Clean image:  0, 0, 0, 0, 0
>
>
> This is strong evidence for the issue being a compiler bug with 4.8.x
> If exactly the same input source for the Vm wrks with gcc 5 but not with 4.8.x then there is a small chance it is due to the Vm relying on undefined behavior, but I doubt it.
> Assuming it is a gcc bug then
> - it should be documented in the HowToBuild files for the relevant platforms
> - Ci builds should start using gcc 5 and dispense with gcc 4.8.x
> - since the problem is fixed with gcc 5 there seems little point trying to identify which version of gcc introduces the problem and communicating the problem to the gcc maintainers
>
> What's the status of the bug on Windows and Mac OS X?


I can't check MacOS.  Clement?

I get the problem on Windows (version info below).

Note that Max Leske and I have been using gcc 4.8 because of a problem
with OSProcess and gcc 5 (it possibly doesn't affect me anymore, I'm
currently using OSSubprocess).  See:

http://lists.squeakfoundation.org/pipermail/vm-dev/2017-May/025216.html

I'll try and confirm correct OSSubprocess operation with gcc 5, but it
will take a while, I'm battling too many different problems at the
moment:

- TZ and DST handling on Windows
- Windows VM suddenly can't find any of its plugins.  Is anyone else
seeing strange behaviour here with VMs from the last few days?
-- It looks like the plugin handling mechanism is completely different
on Windows to Unix, so the VM doesn't report where it is looking and
doesn't provide the option to specify the directory.  Grrrrrgh.
- My linux build environment.
- real life :-)


Windows version info:

OS: Windows 10
Image: Pharo 7.0 Build information:
Pharo-7.0+alpha.build.439.sha.481071068244d0484241924f79ba791f80701316
(32 Bit)
VM:
Win32 built on Nov 27 2017 00:05:44 GMT Compiler: 6.4.0 [Production Spur VM]
CoInterpreter VMMaker.oscog- nice.2281 uuid:
4beeaee7-567e-1a4b-b0fb-bd95ce302516 Nov 27 2017
StackToRegisterMappingCogit VMMaker.oscog-nice.2283 uuid:
2d20324d-a2ab-48d6-b0f6-9fc3d66899da Nov 27 2017
VM: 201711262336 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
$ Date: Mon Nov 27 00:36:29 2017 +0100 $
Plugins: 201711262336 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $




Cheers,
Alistair




More information about the Pharo-dev mailing list