You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Andy Grove (Jira)" <ji...@apache.org> on 2020/12/19 14:56:00 UTC

[jira] [Updated] (ARROW-10888) [Rust] Tracking issue for safety issues

     [ https://issues.apache.org/jira/browse/ARROW-10888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Grove updated ARROW-10888:
-------------------------------
    Description: 
We have a number of functions in the Rust code base that use unsafe code but they are not declared as unsafe or documented as to why we are guaranteeing that they are actually safe.

I have seen recent criticism of the project on social media because of this and it is something that we should address.

If anyone is interested in working on this, please create sub-tasks under this JIRA.

Here is a count by source file as of 19 Dec 2020 of the work "unsafe".
{code:java}
./arrow-pyarrow-integration-testing/src/lib.rs:3
./parquet/src/util/hash_util.rs:6
./parquet/src/util/bit_packing.rs:34
./parquet/src/util/bit_util.rs:1
./parquet/src/data_type.rs:12
./parquet/src/arrow/record_reader.rs:5
./parquet/src/arrow/array_reader.rs:8
./arrow/src/buffer.rs:32
./arrow/src/compute/kernels/comparison.rs:2
./arrow/src/compute/kernels/substring.rs:1
./arrow/src/compute/kernels/arithmetic.rs:1
./arrow/src/compute/kernels/length.rs:2
./arrow/src/compute/util.rs:1
./arrow/src/util/bit_chunk_iterator.rs:6
./arrow/src/util/bit_util.rs:11
./arrow/src/util/integration_util.rs:1
./arrow/src/bytes.rs:5
./arrow/src/arch/avx512.rs:4
./arrow/src/bitmap.rs:1
./arrow/src/datatypes.rs:12
./arrow/src/zz_memory_check.rs:1
./arrow/src/ffi.rs:18
./arrow/src/array/transform/mod.rs:1
./arrow/src/array/array.rs:1
./arrow/src/array/ffi.rs:2
./arrow/src/array/array_list.rs:4
./arrow/src/array/array_string.rs:2
./arrow/src/array/builder.rs:6
./arrow/src/array/array_boolean.rs:4
./arrow/src/array/raw_pointer.rs:2
./arrow/src/array/data.rs:1
./arrow/src/array/array_primitive.rs:4
./arrow/src/array/array_binary.rs:4
./arrow/src/array/array_union.rs:2
./arrow/src/memory.rs:10
./arrow/src/ipc/gen/File.rs:2
./arrow/src/ipc/gen/Message.rs:2
./arrow/src/ipc/gen/Schema.rs:2
 {code}
 

  was:
We have a number of functions in the Rust code base that use unsafe code but they are not declared as unsafe or documented as to why we are guaranteeing that they are actually safe.

I have seen recent criticism of the project on social media because of this and it is something that we should address.

If anyone is interested in working on this, please create sub-tasks under this JIRA.

 


> [Rust] Tracking issue for safety issues
> ---------------------------------------
>
>                 Key: ARROW-10888
>                 URL: https://issues.apache.org/jira/browse/ARROW-10888
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Rust
>            Reporter: Andy Grove
>            Priority: Major
>
> We have a number of functions in the Rust code base that use unsafe code but they are not declared as unsafe or documented as to why we are guaranteeing that they are actually safe.
> I have seen recent criticism of the project on social media because of this and it is something that we should address.
> If anyone is interested in working on this, please create sub-tasks under this JIRA.
> Here is a count by source file as of 19 Dec 2020 of the work "unsafe".
> {code:java}
> ./arrow-pyarrow-integration-testing/src/lib.rs:3
> ./parquet/src/util/hash_util.rs:6
> ./parquet/src/util/bit_packing.rs:34
> ./parquet/src/util/bit_util.rs:1
> ./parquet/src/data_type.rs:12
> ./parquet/src/arrow/record_reader.rs:5
> ./parquet/src/arrow/array_reader.rs:8
> ./arrow/src/buffer.rs:32
> ./arrow/src/compute/kernels/comparison.rs:2
> ./arrow/src/compute/kernels/substring.rs:1
> ./arrow/src/compute/kernels/arithmetic.rs:1
> ./arrow/src/compute/kernels/length.rs:2
> ./arrow/src/compute/util.rs:1
> ./arrow/src/util/bit_chunk_iterator.rs:6
> ./arrow/src/util/bit_util.rs:11
> ./arrow/src/util/integration_util.rs:1
> ./arrow/src/bytes.rs:5
> ./arrow/src/arch/avx512.rs:4
> ./arrow/src/bitmap.rs:1
> ./arrow/src/datatypes.rs:12
> ./arrow/src/zz_memory_check.rs:1
> ./arrow/src/ffi.rs:18
> ./arrow/src/array/transform/mod.rs:1
> ./arrow/src/array/array.rs:1
> ./arrow/src/array/ffi.rs:2
> ./arrow/src/array/array_list.rs:4
> ./arrow/src/array/array_string.rs:2
> ./arrow/src/array/builder.rs:6
> ./arrow/src/array/array_boolean.rs:4
> ./arrow/src/array/raw_pointer.rs:2
> ./arrow/src/array/data.rs:1
> ./arrow/src/array/array_primitive.rs:4
> ./arrow/src/array/array_binary.rs:4
> ./arrow/src/array/array_union.rs:2
> ./arrow/src/memory.rs:10
> ./arrow/src/ipc/gen/File.rs:2
> ./arrow/src/ipc/gen/Message.rs:2
> ./arrow/src/ipc/gen/Schema.rs:2
>  {code}
>  



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