Buildbot: tests using asserts and address sanitizer #47

Open
opened 2023-02-27 18:16:00 +01:00 by Brecht Van Lommel · 2 comments

These can catch various bugs.

Adding such builds in addition to the current ones requires a lot of extra capacity. However there can also be differences where something works in such builds but not release builds, but perhaps that is rare enough?

The simplest strategy would be to enable this for all non-package builds, and disable it for all package builds. But something better than that may be needed.

These can catch various bugs. Adding such builds in addition to the current ones requires a lot of extra capacity. However there can also be differences where something works in such builds but not release builds, but perhaps that is rare enough? The simplest strategy would be to enable this for all non-package builds, and disable it for all package builds. But something better than that may be needed.

In all my time with blender, i'm only aware of a single bug where something worked in asan but not in a non asan build (it was a rare case where we case where we cached a pointer+memblocksize somewhere when we shouldn't have, that got freed, re-allocated and our cache had the wrong size for the new memblock, since asan doesn't re-use addresses that slipped by) think native solution of having it off for Packaged builds, on for all others will suffice just fine.

Depending on the sanatizers we want to enable, it may cause some trouble for Windows based devs since MSVC currently only implements the address sanatizer portion of what we colloquially call asan, leaksanatizer, ubsan etc are currently not implemented. So there may be some "it was passing here locally" incidents, but given how explicit the error messages coming out of asan are, devs can likely just fix the issue from the build logs.

In all my time with blender, i'm only aware of a single bug where something worked in asan but not in a non asan build (it was a rare case where we case where we cached a pointer+memblocksize somewhere when we shouldn't have, that got freed, re-allocated and our cache had the wrong size for the new memblock, since asan doesn't re-use addresses that slipped by) think native solution of having it off for Packaged builds, on for all others will suffice just fine. Depending on the sanatizers we want to enable, it may cause some trouble for Windows based devs since MSVC currently only implements the address sanatizer portion of what we colloquially call asan, leaksanatizer, ubsan etc are currently not implemented. So there may be some "it was passing here locally" incidents, but given how explicit the error messages coming out of asan are, devs can likely just fix the issue from the build logs.
Brecht Van Lommel added the
Service
Buildbot
label 2023-02-27 18:53:11 +01:00
Author
Owner

Asserts are now enabled in non-package builds.

There is also a sanitizer build configuration now, next to release and debug. This is only for macOS and Linux. However this is currently failing tests. Build times would also have to be looked at, to see if we can afford the extra overhead.

Asserts are now enabled in non-package builds. There is also a sanitizer build configuration now, next to release and debug. This is only for macOS and Linux. However this is currently failing tests. Build times would also have to be looked at, to see if we can afford the extra overhead.
Bart van der Braak added this to the DevOps Progress Board project 2024-07-16 12:58:45 +02:00
Bart van der Braak added the
Type
Feature
label 2024-08-01 11:26:59 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: infrastructure/blender-projects-platform#47
No description provided.