Skip to content

[C++][CI] Debug memory pool interferes with ASAN check #39973

@zanmato1984

Description

@zanmato1984

Describe the bug, including details regarding any error messages, version, and platform.

Debug memory pool, introduced in #12330, allocates additional bytes at the end of a buffer to identify unintended writes beyond the buffer’s boundary. However this will prevent ASAN from detecting invalid reads in these extra bytes.

A demo of this problem in action could be found in this CI run https://github.com/zanmato1984/arrow/actions/runs/7752895694/job/21143188221?pr=3#step:6:3370 of PR zanmato1984#3. It indicates that a legacy case is already failing the ASAN check, which I’ll address in a separate issue.

Besides, I’m afraid that some “tail bytes”-kind bugs that I have been recently working on, such as #32570, #39577, #39583, and #39778, could potentially have been caught at a better chance if ASAN check was fully effective.

We should consider disabling debug memory pool for ASAN check in CI.

cc @pitrou @bkietz

Component(s)

C++, Continuous Integration

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions