Skip to content

atomic operations causing test failures on some arm64 machines #10627

@andrewrk

Description

@andrewrk

Zig Version

4938fb8

Steps to Reproduce

Check out exactly this git commit, and observe test failures on Drone CI.

Expected Behavior

All tests passed.

Actual Behavior

340/1083 behavior.atomics.test "behavior-native-ReleaseSafe-c-multi atomicrmw with floats"... behavior.atomics.test "behavior-native-ReleaseSafe-c-multi atomicrmw with floats"... FAIL (TestUnexpectedResult)
FAIL (TestUnexpectedResult)
/drone/src/test/behavior/defer.zig:42:13: 0x2324a3 in behavior.defer.test "behavior-native-ReleaseSafe-c-multi errdefer does not apply to fn inside fn" (test)
            return error.Bad;
            ^
/drone/src/test/behavior/defer.zig:45:5: 0x2324ab in behavior.defer.test "behavior-native-ReleaseSafe-c-multi errdefer does not apply to fn inside fn" (test)
    return S.baz();
    ^
/drone/src/test/behavior/error.zig:27:5: 0x2324e7 in behavior.error.test "behavior-native-ReleaseSafe-c-multi error binary operator" (test)
    return if (x) error.ItBroke else @as(isize, 10);
    ^
/drone/src/test/behavior/try.zig:31:9: 0x232607 in behavior.try.test "behavior-native-ReleaseSafe-c-multi try without vars" (test)
        return error.ItBroke;
        ^
/drone/src/test/behavior/try.zig:31:9: 0x23261f in behavior.try.test "behavior-native-ReleaseSafe-c-multi try then not executed with assignment" (test)
        return error.ItBroke;
        ^
/drone/src/test/behavior/defer_stage1.zig:47:13: 0x23b05f in behavior.defer_stage1.test "behavior-native-ReleaseSafe-c-multi errdefer with payload" (test)
            return error.One;
            ^
/drone/src/test/behavior/while.zig:61:5: 0x2327c7 in behavior.while.test "behavior-native-ReleaseSafe-c-multi while with error union condition" (test)
    return if (numbers_left == 0) error.OutOfNumbers else x: {
    ^
/drone/src/test/behavior/merge_error_sets.zig:10:5: 0x2349bf in behavior.merge_error_sets.test "behavior-native-ReleaseSafe-c-multi merge error sets" (test)
    return error.NotDir;
    ^
/drone/src/test/behavior/atomics.zig:95:42: 0x232e4b in behavior.atomics.test "behavior-native-ReleaseSafe-c-multi 128-bit cmpxchg" (test)
        if (builtin.cpu.arch != .x86_64) return error.SkipZigTest;
                                         ^
/drone/src/test/behavior/atomics.zig:86:5: 0x232e53 in behavior.atomics.test "behavior-native-ReleaseSafe-c-multi 128-bit cmpxchg" (test)
    try test_u128_cmpxchg();
    ^
/drone/src/lib/std/testing.zig:0:5: 0x2330a3 in behavior.atomics.test "behavior-native-ReleaseSafe-c-multi atomicrmw with floats" (test)
/drone/src/lib/std/testing.zig:0:5: 0x2330ab in behavior.atomics.test "behavior-native-ReleaseSafe-c-multi atomicrmw with floats" (test)
/drone/src/test/behavior/atomics.zig:156:5: 0x2330b3 in behavior.atomics.test "behavior-native-ReleaseSafe-c-multi atomicrmw with floats" (test)
    try testAtomicRmwFloat();
    ^
1078 passed; 4 skipped; 1 failed.
error: the following test command failed with exit code 1:
/drone/src/zig-cache/o/3d4c09defb8059d411aea6b4f8d8a902/test /drone/src/build/zig
test...The following command exited with error code 1:
/drone/src/build/zig test /drone/src/test/behavior.zig -lc --test-name-prefix behavior-native-ReleaseSafe-c-multi  -OReleaseSafe --cache-dir /drone/src/zig-cache --global-cache-dir /drone/src/zig-cache --name test -fno-single-threaded -I /drone/src/test --zig-lib-dir /drone/src/lib 

The next step here is to file an LLVM bug report upstream.

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-aarch6464-bit ARMbackend-llvmThe LLVM backend outputs an LLVM IR Module.bugObserved behavior contradicts documented or intended behaviorcontributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.upstreamAn issue with a third party project that Zig uses.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions