You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "MP (Jira)" <ji...@apache.org> on 2020/06/12 11:36:00 UTC

[jira] [Created] (ARROW-9114) Illegal instruction crash in arrow.dll

MP created ARROW-9114:
-------------------------

             Summary: Illegal instruction crash in arrow.dll
                 Key: ARROW-9114
                 URL: https://issues.apache.org/jira/browse/ARROW-9114
             Project: Apache Arrow
          Issue Type: Bug
          Components: Python
    Affects Versions: 0.17.1
         Environment: Conda environment on Windows Server 2016. Importantly, the CPU does *not* support AVX2.
            Reporter: MP


We have been encountering illegal instruction crashes in {{arrow.dll}} when using theĀ {{conda}} packages from {{conda-forge}}. Here are the relevant packages that were installed:

{{arrow-cpp: 0.17.1-py37h1234567_4_cpu}}
{{parquet-cpp: 1.5.1-2}}
{{pyarrow: 0.17.1-py37h1234567_4_cpu}}
{{snappy: 1.1.8-he025d50_1}}

The error is:

{noformat}Windows fatal exception: 7code 0x\c000001d{noformat}

Some further investigation revealed that the offending instruction is {{BZHI}}, which as I understand it is part of the {{BMI2}} set, in turn part of {{AVX2}}. We believe this is in fact arising in {{snappy}} code here:

https://github.com/google/snappy/blob/1.1.8/snappy.cc#L717-L728

The {{snappy 1.1.8}} package appears to have been built with {{BMI2}} support enabled, if you look at the release build log here:

https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=115252&view=logs&j=2cc45e14-23e3-52d7-b33a-8c2744410b97&t=21c44aa7-1ae3-5312-cacc-7f19fefc82f4

Of course, this is then arguably an upstream issue, but I have reported it here because perhaps that configuration is the desired choice for the 'standard' {{snappy}} package and something else might need to be done in {{arrow}} instead, for example.

(Incidentally, is the {{snappy}} runtime dependency correct in the {{arrow}} feedstocks? If it's statically linked, shouldn't it only be required at build time?)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)