Bug 98526

Summary: glsl/tests/general-ir-test regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact: mesa-dev
Severity: normal    
Priority: medium CC: edmondo.tommasina, maraeo, nhaehnle
Version: gitKeywords: bisected, have-backtrace, regression
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2016-11-01 08:34:49 UTC
mesa: 1b88760f8501f88db9155204d2ce35871e29752d (master 13.1.0-devel)

FAIL: glsl/tests/general-ir-test
================================

Running main() from gtest_main.cc
[==========] Running 33 tests from 6 test cases.
[----------] Global test environment set-up.
[----------] 6 tests from vertex_builtin
[ RUN      ] vertex_builtin.names_start_with_gl
Assertion failed: (info->canary == CANARY), function get_header, file ralloc.c, line 84.
FAIL glsl/tests/general-ir-test (exit status: 134)


a4a93103fb8f5c21c4cd17e89f07badfab14c0ab is the first bad commit
commit a4a93103fb8f5c21c4cd17e89f07badfab14c0ab
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Fri Oct 7 19:17:15 2016 +0200

    glsl: use the linear allocator for ast_node and derived classes

    Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>

:040000 040000 aad10b2aed01733162b6dfc26714163da8f90b43 2e203c376cdf8bda94e43410bda9a975300f0dc7 M      src
bisect run success
Comment 1 Vinson Lee 2016-11-01 18:58:58 UTC
(gdb) bt
#0  0x00007ffff6d4f428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff6d5102a in __GI_abort () at abort.c:89
#2  0x00007ffff6d47bd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x51d493 "info->canary == CANARY", file=file@entry=0x51d201 "ralloc.c", line=line@entry=84, 
    function=function@entry=0x51d4aa "ralloc_header *get_header(const void *)") at assert.c:92
#3  0x00007ffff6d47c82 in __GI___assert_fail (assertion=0x51d493 "info->canary == CANARY", file=0x51d201 "ralloc.c", line=84, function=0x51d4aa "ralloc_header *get_header(const void *)") at assert.c:101
#4  0x0000000000499d0e in get_header (ptr=<optimized out>) at ralloc.c:84
#5  ralloc_set_destructor (ptr=<optimized out>, destructor=<optimized out>) at ralloc.c:347
#6  0x000000000044a3b7 in symbol_table_entry::operator new (size=64, mem_ctx=<optimized out>) at glsl/glsl_symbol_table.cpp:30
#7  glsl_symbol_table::add_type (this=0x788190, name=0x785980 "void", t=0x76dc88 <glsl_type::_void_type>) at glsl/glsl_symbol_table.cpp:171
#8  0x0000000000441580 in add_type (symbols=<optimized out>, type=0x6) at glsl/builtin_types.cpp:270
#9  _mesa_glsl_initialize_types (state=<optimized out>) at glsl/builtin_types.cpp:284
#10 0x0000000000409033 in common_builtin::SetUp (this=0x7ffff7fd1010) at glsl/tests/builtin_variable_test.cpp:73
#11 0x0000000000438ae6 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (method=<optimized out>, location=<optimized out>, object=<optimized out>) at ./src/gtest.cc:2078
#12 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=<optimized out>, method=(void (testing::Test::*)(testing::Test * const)) 0x226e, location=0x5088b5 "SetUp()")
    at ./src/gtest.cc:2114
#13 0x0000000000422f36 in testing::Test::Run (this=0x7ffff7fd1010) at ./src/gtest.cc:2146
#14 0x0000000000423f50 in testing::TestInfo::Run (this=0x780c40) at ./src/gtest.cc:2326
#15 0x00000000004246e3 in testing::TestCase::Run (this=<optimized out>) at ./src/gtest.cc:2444
#16 0x000000000042ba99 in testing::internal::UnitTestImpl::RunAllTests (this=<optimized out>) at ./src/gtest.cc:4315
#17 0x00000000004394cf in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (method=<optimized out>, location=<optimized out>, object=<optimized out>)
    at ./src/gtest.cc:2078
#18 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=<optimized out>, method=<optimized out>, 
    location=0x508f66 "auxiliary test code (environments or event listeners)") at ./src/gtest.cc:2114
#19 0x000000000042b73f in testing::UnitTest::Run (this=0x76cb90 <testing::UnitTest::GetInstance()::instance>) at ./src/gtest.cc:3926
#20 0x0000000000441512 in RUN_ALL_TESTS () at ../../src/gtest/include/gtest/gtest.h:2288
#21 main (argc=<optimized out>, argv=0x226e) at src/gtest_main.cc:37
Comment 2 Marek Olšák 2016-11-01 21:50:01 UTC
I can't reproduce this.
Comment 3 Vinson Lee 2016-11-01 21:52:44 UTC
This is so far a regression with clang builds only.
Comment 4 Vinson Lee 2016-11-16 23:12:08 UTC
commit ed6694d5114e81cf1c413aec8265ddc8a5c52599
Author: Vinson Lee <vlee@freedesktop.org>
Date:   Sun Nov 13 22:53:54 2016 -0800

    util: Fix Clang trivial destructor check.
    
    Check for Clang before GCC.
    
    Clang defines __GNUC__ == 4 and __GNUC_MINOR__ == 2 and matches the GCC
    check but not the GCC version for trivial destructor.
    
    Fixes: 98ab905af0e0 ("mesa: Define introspection macro to determine
    whether a type is trivially destructible.")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98526
    Signed-off-by: Vinson Lee <vlee@freedesktop.org>
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
    Reviewed-by: Francisco Jerez <currojerez@riseup.net>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.