Missing tests for FFI in CI

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Missing tests for FFI in CI

Stephan Eggermont-3
Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up
with our own code, we made a fresh start with the latest base image and
OSWindows. We were finally able to figure out what went wrong with two
simple tests that were failing in 64 bit that worked correctly in 32 bit.

FFIConstantHandleType externalType is the wrong size

After confirming that and making it work, we were told that a number of FFI
fixes were done by Nicolas and Eliot in Squeak that did not get integrated
in Pharo. Applying the changes from the latest Squeak FFI resolved the
problem, and a few that we were unaware of.

Stephan




Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

Tim Mackinnon
That is awesome - great work chasing all of that!

Any idea of what kinds of things would have been impacted that we can all keep an eye out for or retest?

Also, Is there anything useful we can add to our process to try and avoid this in the future?

Tim

Sent from my iPhone

> On 21 Mar 2019, at 07:00, Stephan Eggermont <[hidden email]> wrote:
>
> Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up
> with our own code, we made a fresh start with the latest base image and
> OSWindows. We were finally able to figure out what went wrong with two
> simple tests that were failing in 64 bit that worked correctly in 32 bit.
>
> FFIConstantHandleType externalType is the wrong size
>
> After confirming that and making it work, we were told that a number of FFI
> fixes were done by Nicolas and Eliot in Squeak that did not get integrated
> in Pharo. Applying the changes from the latest Squeak FFI resolved the
> problem, and a few that we were unaware of.
>
> Stephan
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

ducasse


> On 21 Mar 2019, at 13:46, Tim Mackinnon <[hidden email]> wrote:
>
> That is awesome - great work chasing all of that!
>
> Any idea of what kinds of things would have been impacted that we can all keep an eye out for or retest?
>
> Also, Is there anything useful we can add to our process to try and avoid this in the future?

tests :)

tests are the only way.


>> On 21 Mar 2019, at 07:00, Stephan Eggermont <[hidden email]> wrote:
>>
>> Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up
>> with our own code, we made a fresh start with the latest base image and
>> OSWindows. We were finally able to figure out what went wrong with two
>> simple tests that were failing in 64 bit that worked correctly in 32 bit.
>>
>> FFIConstantHandleType externalType is the wrong size
>>
>> After confirming that and making it work, we were told that a number of FFI
>> fixes were done by Nicolas and Eliot in Squeak that did not get integrated
>> in Pharo. Applying the changes from the latest Squeak FFI resolved the
>> problem, and a few that we were unaware of.
>>
>> Stephan
>>
>>
>>
>>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

ducasse
In reply to this post by Stephan Eggermont-3
Hello Stefan

Can you report the exact call you were doing?
I talked with G and Pablo and the bug they fixed is not the same.
Now they would like to experiment and write tests for all the platform.

Stef

> On 21 Mar 2019, at 08:00, Stephan Eggermont <[hidden email]> wrote:
>
> Yesterday, we tracked down a serious issue in 64 bit FFI. After giving up
> with our own code, we made a fresh start with the latest base image and
> OSWindows. We were finally able to figure out what went wrong with two
> simple tests that were failing in 64 bit that worked correctly in 32 bit.
>
> FFIConstantHandleType externalType is the wrong size
>
> After confirming that and making it work, we were told that a number of FFI
> fixes were done by Nicolas and Eliot in Squeak that did not get integrated
> in Pharo. Applying the changes from the latest Squeak FFI resolved the
> problem, and a few that we were unaware of.
>
> Stephan
>
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

Stephan Eggermont-3
ducasse <[hidden email]> wrote:
> Hello Stefan
>
> Can you report the exact call you were doing?
> I talked with G and Pablo and the bug they fixed is not the same.
> Now they would like to experiment and write tests for all the platform.

BOOL GetExitCodeProcess(
  HANDLE  hProcess,
  LPDWORD lpExitCode
);

I was trying to get the exit code of a running process on windows. That
didn’t work, so we started again with OSWindows on a clean Pharo 8. There
we noticed that the currentProcess was not [ 255 255 255 255 255 255 255
255] but [ 255 255 255 255 0 0 0 0]. That (and the test being green in 32
bit) triggered the idea. We did a quick and dirty change to verify, and
then found out that the Squeak code had cleaner fixes.

Stephan




Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

Guillermo Polito
Hi Stephan,

Le jeu. 21 mars 2019 à 21:39, Stephan Eggermont <[hidden email]> a écrit :
ducasse <[hidden email]> wrote:
> Hello Stefan
>
> Can you report the exact call you were doing?
> I talked with G and Pablo and the bug they fixed is not the same.
> Now they would like to experiment and write tests for all the platform.

BOOL GetExitCodeProcess(
  HANDLE  hProcess,
  LPDWORD lpExitCode
);

what are your mappings for BOOL, HANDLE and LPDWORD? Those are user defined types :)


I was trying to get the exit code of a running process on windows. That
didn’t work, so we started again with OSWindows on a clean Pharo 8. There
we noticed that the currentProcess was not [ 255 255 255 255 255 255 255
255] but [ 255 255 255 255 0 0 0 0]. That (and the test being green in 32
bit) triggered the idea. We did a quick and dirty change to verify, and
then found out that the Squeak code had cleaner fixes.

Stephan




--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Missing tests for FFI in CI

Stephan Eggermont-3
Guillermo Polito <[hidden email]>
wrote:

>>
>> BOOL GetExitCodeProcess(
>> HANDLE  hProcess,
>> LPDWORD lpExitCode
>> );
>>
>
> what are your mappings for BOOL, HANDLE and LPDWORD? Those are user defined
> types :)
>

I downloaded the stable version of OSWindows from the catalog

Stephan