[ 
https://issues.apache.org/jira/browse/ARROW-10943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17253175#comment-17253175
 ] 

Greg Bowyer commented on ARROW-10943:
-------------------------------------

 I managed to nail down a deterministic test, looks to be RLE encoding related.

 
{code:java}
    #[test]
    fn test_bool_bug() {        const total: usize = TEST_SET_SIZE;
        const type_length: i32 = -1;        let mut encoder = 
create_test_encoder::<BoolType>(type_length, Encoding::RLE);
        let mut decoder = create_test_decoder::<BoolType>(type_length, 
Encoding::RLE);        //let mut values = <T as 
RandGen<T>>::gen_vec(type_length, total);        let values: Vec<bool> = vec![
            true, true, true, true, true, true, true, true, true, false,
            true, false, true, false, true, true, true, false, false, true, 
true, true, true, true,
            false, true, true, false, false, true, false, false, false, true, 
false, false, false,
            false, true, false, true, false, false, true, false, false, false, 
true, true, true, false,
            true, true, true, true, false, true, false, true, false, false, 
true, true, false, true,
            false, false, true, true, true, true, true, true, true, false, 
false, true, true, false,
            true, false, true, true, true, false, true, false, true, false, 
false, false, true, true,
            false, true, true, true, true, false, true, true, false, false, 
false, false, true, false,
            true, true, true, false, true, false, false, false, false, true, 
false, true, true, false,
            true, false, true, false, false, true, false, true, true, true, 
true, true, true, true,
            true, true, true, false, false, true, false, false, false, true, 
true, false, false, false,
            false, false, true, true, false, false, false, true, false, true, 
true, true, true, true,
            true, false, false, false, false, true, false, false, false, false, 
true, false, false,
            false, false, false, false, true, true, true, true, false, true, 
false, false, true, true,
            true, false, true, false, true, false, false, false, false, false, 
true, false, false,
            false, true, true, true, true, false, false, false, false, true, 
true, true, true, false,
            true, true, true, false, true, false, true, true, false, false, 
true, false, true, false,
            false, true, false, true, true, false, false, false, true, false, 
true, true, true, false,
            true, true, false, false, false, true, true, false, false, false, 
false, false, false,
            true, true, false, false, false, true, true, false, false, true, 
false, false, true, true,
            false, true, true, false, true, true, false, true, false, false, 
false, false, false,
            false, true, false, true, true, false, false, false, false, false, 
false, false, false,
            false, true, false, false, false, false, false, true, false, false, 
true, true, false,
            false, true, true, false, true, true, false, false, true, false, 
true, false, true, true,
            true, false, false, false, true, true, true, false, true, false, 
false, true, false, false,
            false, true, false, false, true, false, true, true, true, false, 
true, true, true, true,
            false, false, true, false, true, false, true, false, false, true, 
true, false, false, true,
            false, true, false, false, true, false, true, false, false, false, 
true, true, true, false,
            false, false, true, false, true, false, false, false, true, false, 
true, false, false,
            false, false, true, true, false, true, false, false, true, true, 
true, false, true, false,
            false, true, false, true, false, false, true, false, true, true, 
true, true, true, true,
            true, true, false, false, false, false, false, false, false, true, 
false, true, true,
            false, true, false, true, false, true, true, true, true, false, 
true, true, true, true,
            true, false, false, false, false, true, false, true, true, true, 
true, true, false, true,
            true, false, true, true, false, false, false, true, false, true, 
false, true, true, false,
            true, true, false, true, true, true, false, true, false, false, 
false, false, false, false,
            false, true, false, true, false, true, false, true, true, true, 
true, true, false, true,
            false, false, true, true, true, true, false, true, false, false, 
false, true, false, true,
            true, false, true, true, false, false, false, false, true, false, 
true, true, false, false,
            false, true, true, false, false, true, true, true, true, false, 
false, false, true, true,
            true, true, true, true, false, false, false, false, false, false, 
false, false, true, true,
            false, true, true, true, false, true, true, false, true, true, 
false, false, true, false,
            false, true, true, false, false, true, false, true, true, true, 
true, true, true, false,
            true, false, true, false, true, true, true, true, true, true, true, 
false, false, true,
            false, false, true, true, false, true, false, true, false, true, 
false, false, true, true,
            false, true, false, true, true, true, true, true, true, false, 
false, false, true, true,
            false, true, false, false, true, true, false, false, true, false, 
true, true, false, true,
            false, true, false, true, false, true, true, false, false, false, 
false, true, true, true,
            false, true, true, true, false, true, false, false, false, true, 
false, false, true, false,
            false, true, false, true, true, false, true, false, false, true, 
false, true, true, false,
            false, false, false, false, true, true, true, true, false, false, 
false, true, false,
            false, false, true, false, true, true, true, true, false, false, 
false, true, true, true,
            false, false, true, false, false, false, false, true, false, true, 
false, true, false,
            false, false, true, false, false, false, false, true, true, true, 
true, false, false, true,
            false, true, false, true, true, true, false, false, true, true, 
true, false, true, true,
            false, true, true, false, true, false, false, false, false, false, 
true, true, false, true,
            false, true, false, true, false, true, true, true, true, true, 
true, true, false, false,
            false, true, true, true, false, false, true, false, true, false, 
true, false, false, false,
            true, true, false, true, true, false, false, false, false, false, 
true, true, true, false,
            true, true, true, true, true, false, false, true, true, true, 
false, true, true, false,
            true, false, false, false, false, false, true, false, true, true, 
true, true, true, true,
            true, true, true, true, true, false, true, true, true, false, 
false, false, true, true,
            true, true, true, true, false, false, true, false, false, false, 
false, false, true, false,
            false, false, false, true, true, false, true, true, true, true, 
true, true, true, true,
            false, true, true, false, true, false, false, true, false, true, 
false, true, true, true,
            true, false, true, false, false, true, true, false, false, true, 
false, true, true, false,
            false, true, false, true, true, true, true, false, false, false, 
true, true, true, true,
            true, false, false, true, false, true, false, false, false, true, 
true, true, true, false,
            false, true, false, false, true, true, false, true, true, false, 
false, false, false,
            false, true, false, false, true, false, true, false, true, false, 
true, false, true, true,
            true, true, false, true, false, true, false, true, false, true, 
false, false, true, false,
            true, false, true, false, false, true, true, true, false, true, 
true, false, true, false,
            false, false, false, true, false, true, false, true, false, false, 
false, true, false,
            true, false, false, true, false, false, true, false, false, false, 
true, true, false, true,
            true, true, true, false, false
        ];

        let mut result_data = vec![bool::default(); total];

        // Test put/get spaced.
        let num_bytes = bit_util::ceil(total as i64, 8);
        let valid_bits = random_bytes(num_bytes as usize);
        let values_written = encoder.put_spaced(&values[..], 
&valid_bits[..]).unwrap();
        let data = encoder.flush_buffer().unwrap();
        decoder.set_data(data, values_written).unwrap();

        let _ = decoder.get_spaced(
            &mut result_data[..],
            values.len() - values_written,
            &valid_bits[..],
        ).unwrap();

        // Check equality
        for i in 0..total {
            if bit_util::get_bit(&valid_bits[..], i) {
                assert_eq!(result_data[i], values[i]);
            } else {
                assert_eq!(result_data[i], bool::default());
            }
        }

        let mut actual_total = put_and_get(
            &mut encoder,
            &mut decoder,
            &values[..],
            &mut result_data[..],
        ).unwrap();


        assert_eq!(actual_total, total);
        assert_eq!(result_data, values);
    }

{code}

> [Rust] Intermittent build failure in parquet encoding
> -----------------------------------------------------
>
>                 Key: ARROW-10943
>                 URL: https://issues.apache.org/jira/browse/ARROW-10943
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Rust
>            Reporter: Andy Grove
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> I saw this test failure locally
> {code:java}
> ---- encodings::encoding::tests::test_bool stdout ----
> thread 'encodings::encoding::tests::test_bool' panicked at 'Invalid byte when 
> reading bool', parquet/src/util/bit_util.rs:73:18
>  {code}
> I ran "cargo test" again and it passed
>  
> We have seen this happen in CI as well



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

Reply via email to