zanmato1984 opened a new issue, #39583:
URL: https://github.com/apache/arrow/issues/39583

   ### Describe the bug, including details regarding any error messages, 
version, and platform.
   
   This is a subsequent issue of https://github.com/apache/arrow/issues/32570.
   
   In the last fix https://github.com/apache/arrow/pull/39234, I didn't realize 
there were similar issue for fixed size types.
   
   I am now able to produce the segmentation fault using fixed size types, 
listed in the following UT:
   ```
   TEST(ExecBatchBuilder, AppendBatchDupRowsFixedSize) {
     std::unique_ptr<MemoryPool> owned_pool = MemoryPool::CreateDefault();
     MemoryPool* pool = owned_pool.get();
     {
       // 63-byte data occupying almost one minimal 64-byte aligned memory 
region.
       ExecBatch batch_fsb = JSONToExecBatch({fixed_size_binary(9)}, R"([
           ["000000000"],
           ["000000000"],
           ["000000000"],
           ["000000000"],
           ["000000000"],
           ["000000000"],
           ["123456789"]])");  // 9-byte tail row, not aligned to a word.
       ASSERT_EQ(batch_fsb[0].array()->buffers[1]->capacity(), 64);
       ExecBatchBuilder builder;
       uint16_t row_ids[2] = {6, 6};
       ASSERT_OK(builder.AppendSelected(pool, batch_fsb, 2, row_ids, 
/*num_cols=*/1));
       ExecBatch built = builder.Flush();
       ExecBatch batch_fsb_appended =
           JSONToExecBatch({fixed_size_binary(9)}, R"([["123456789"], 
["123456789"]])");
       ASSERT_EQ(batch_fsb_appended, built);
       ASSERT_NE(0, pool->bytes_allocated());
     }
     ASSERT_EQ(0, pool->bytes_allocated());
   }
   ```
   
   ### Component(s)
   
   C++


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to