Ignite ARM Unsafe GetFloat Segmentation Fault

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Ignite ARM Unsafe GetFloat Segmentation Fault

dsetrakyan
Igniters,

There was a question on SO about using Ignite with ARM:
http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault

Does anyone have any experience with ARM to shed some light on the issue
user is having?

Thanks,
D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite ARM Unsafe GetFloat Segmentation Fault

Denis Magda
ARM device may be working in big endian mode. This can definitely cause
issues with Unsafe that uses predefined x86/x64 offsets (for little
endian) in Ignite code.

I'll dig deeply to prove my conjecture and can respond the user later.

--
Denis

On 9/16/2015 4:48 AM, Dmitriy Setrakyan wrote:

> Igniters,
>
> There was a question on SO about using Ignite with ARM:
> http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault
>
> Does anyone have any experience with ARM to shed some light on the issue
> user is having?
>
> Thanks,
> D.
>

Reply | Threaded
Open this post in threaded view
|

Re: Ignite ARM Unsafe GetFloat Segmentation Fault

Valentin Kulichenko
I think that at least our direct marshalling is incompatible with big
endian, because DirectByteBufferStream always uses Unsafe. We should have
something similar to PortablePrimitives (or even this specific class) there
and automatically switch to byte-by-byte processing if needed.

-Val

On Tue, Sep 15, 2015 at 11:15 PM, Denis Magda <[hidden email]> wrote:

> ARM device may be working in big endian mode. This can definitely cause
> issues with Unsafe that uses predefined x86/x64 offsets (for little endian)
> in Ignite code.
>
> I'll dig deeply to prove my conjecture and can respond the user later.
>
> --
> Denis
>
>
> On 9/16/2015 4:48 AM, Dmitriy Setrakyan wrote:
>
>> Igniters,
>>
>> There was a question on SO about using Ignite with ARM:
>>
>> http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault
>>
>> Does anyone have any experience with ARM to shed some light on the issue
>> user is having?
>>
>> Thanks,
>> D.
>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite ARM Unsafe GetFloat Segmentation Fault

dsetrakyan
On Wed, Sep 16, 2015 at 9:22 AM, Valentin Kulichenko <
[hidden email]> wrote:

> I think that at least our direct marshalling is incompatible with big
> endian, because DirectByteBufferStream always uses Unsafe. We should have
> something similar to PortablePrimitives (or even this specific class) there
> and automatically switch to byte-by-byte processing if needed.
>

My preference would be to identify the issue and properly document it in
Jira.


>
> -Val
>
> On Tue, Sep 15, 2015 at 11:15 PM, Denis Magda <[hidden email]> wrote:
>
> > ARM device may be working in big endian mode. This can definitely cause
> > issues with Unsafe that uses predefined x86/x64 offsets (for little
> endian)
> > in Ignite code.
> >
> > I'll dig deeply to prove my conjecture and can respond the user later.
> >
> > --
> > Denis
> >
> >
> > On 9/16/2015 4:48 AM, Dmitriy Setrakyan wrote:
> >
> >> Igniters,
> >>
> >> There was a question on SO about using Ignite with ARM:
> >>
> >>
> http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault
> >>
> >> Does anyone have any experience with ARM to shed some light on the issue
> >> user is having?
> >>
> >> Thanks,
> >> D.
> >>
> >>
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite ARM Unsafe GetFloat Segmentation Fault

Vladimir Ozerov
Note that there is another similar problem reported for HP-UX environment:
https://issues.apache.org/jira/browse/IGNITE-1493. While the problem
appears to be completely different in nature (address alignment problem),
it looks like we need some systematic work on targeting different
archs/OSes. I expect that we face lots of problems with endiannes,
unaligned access, JVM offsets, memory ordering, etc.

As per endiannes and alignment issues, Netty is a good reference point:
https://github.com/netty/netty/blob/master/common/src/main/java/io/netty/util/internal/PlatformDependent0.java



On Wed, Sep 16, 2015 at 9:23 AM, Dmitriy Setrakyan <[hidden email]>
wrote:

> On Wed, Sep 16, 2015 at 9:22 AM, Valentin Kulichenko <
> [hidden email]> wrote:
>
> > I think that at least our direct marshalling is incompatible with big
> > endian, because DirectByteBufferStream always uses Unsafe. We should have
> > something similar to PortablePrimitives (or even this specific class)
> there
> > and automatically switch to byte-by-byte processing if needed.
> >
>
> My preference would be to identify the issue and properly document it in
> Jira.
>
>
> >
> > -Val
> >
> > On Tue, Sep 15, 2015 at 11:15 PM, Denis Magda <[hidden email]>
> wrote:
> >
> > > ARM device may be working in big endian mode. This can definitely cause
> > > issues with Unsafe that uses predefined x86/x64 offsets (for little
> > endian)
> > > in Ignite code.
> > >
> > > I'll dig deeply to prove my conjecture and can respond the user later.
> > >
> > > --
> > > Denis
> > >
> > >
> > > On 9/16/2015 4:48 AM, Dmitriy Setrakyan wrote:
> > >
> > >> Igniters,
> > >>
> > >> There was a question on SO about using Ignite with ARM:
> > >>
> > >>
> >
> http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault
> > >>
> > >> Does anyone have any experience with ARM to shed some light on the
> issue
> > >> user is having?
> > >>
> > >> Thanks,
> > >> D.
> > >>
> > >>
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite ARM Unsafe GetFloat Segmentation Fault

Denis Magda
Guys,

I've created a special task to overcome this issue: [1]

Already linked the task with IGNITE-1493 and put a reference to user's
question from StackOverflow.

Feel free to leave your thought in [1].

[1] https://issues.apache.org/jira/browse/IGNITE-1497

--
Denis

On 9/16/2015 10:33 AM, Vladimir Ozerov wrote:

> Note that there is another similar problem reported for HP-UX environment:
> https://issues.apache.org/jira/browse/IGNITE-1493. While the problem
> appears to be completely different in nature (address alignment problem),
> it looks like we need some systematic work on targeting different
> archs/OSes. I expect that we face lots of problems with endiannes,
> unaligned access, JVM offsets, memory ordering, etc.
>
> As per endiannes and alignment issues, Netty is a good reference point:
> https://github.com/netty/netty/blob/master/common/src/main/java/io/netty/util/internal/PlatformDependent0.java
>
>
>
> On Wed, Sep 16, 2015 at 9:23 AM, Dmitriy Setrakyan <[hidden email]>
> wrote:
>
>> On Wed, Sep 16, 2015 at 9:22 AM, Valentin Kulichenko <
>> [hidden email]> wrote:
>>
>>> I think that at least our direct marshalling is incompatible with big
>>> endian, because DirectByteBufferStream always uses Unsafe. We should have
>>> something similar to PortablePrimitives (or even this specific class)
>> there
>>> and automatically switch to byte-by-byte processing if needed.
>>>
>> My preference would be to identify the issue and properly document it in
>> Jira.
>>
>>
>>> -Val
>>>
>>> On Tue, Sep 15, 2015 at 11:15 PM, Denis Magda <[hidden email]>
>> wrote:
>>>> ARM device may be working in big endian mode. This can definitely cause
>>>> issues with Unsafe that uses predefined x86/x64 offsets (for little
>>> endian)
>>>> in Ignite code.
>>>>
>>>> I'll dig deeply to prove my conjecture and can respond the user later.
>>>>
>>>> --
>>>> Denis
>>>>
>>>>
>>>> On 9/16/2015 4:48 AM, Dmitriy Setrakyan wrote:
>>>>
>>>>> Igniters,
>>>>>
>>>>> There was a question on SO about using Ignite with ARM:
>>>>>
>>>>>
>> http://stackoverflow.com/questions/32592881/apache-ignite-arm-unsafe-getfloat-segmentation-fault
>>>>> Does anyone have any experience with ARM to shed some light on the
>> issue
>>>>> user is having?
>>>>>
>>>>> Thanks,
>>>>> D.
>>>>>
>>>>>