Re: [igt-dev] ✗ GitLab.Pipeline: warning for Dockerfile.debian*: Switch over to buster

Guillaume Tucker
2019-07-22T08:03:17Z

On 15/07/2019 09:13, Arkadiusz Hiler wrote:
> On Fri, Jul 12, 2019 at 09:57:17AM +0100, Guillaume Tucker wrote:
>> On 08/07/2019 13:21, Arkadiusz Hiler wrote:
>>> On Mon, Jul 08, 2019 at 07:25:14AM +0000, Patchwork wrote:
>>>> == Series Details ==
>>>>
>>>> Series: Dockerfile.debian*: Switch over to buster
>>>> URL : https://patchwork.freedesktop.org/series/63339/
>>>> State : warning
>>>>
>>>> == Summary ==
>>>>
>>>> Pipeline status: FAILED.
>>>>
>>>> See https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/47180 for more details.
>>>>
>>>> == Logs ==
>>>>
>>>
>>>> For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/47180
>>>
>>> Seems like it's failing for MIPS realiably:
>>>
>>> https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/405401
>>>
>>>
>>> One example of many sigsegvs:
>>> --- command ---
>>> /usr/bin/qemu-mips /builds/gfx-ci/igt-ci-tags/build/lib/tests/igt_invalid_subtest_name
>>> --- stdout ---
>>> IGT-Version: 1.24-NO-GIT (mips) (Linux: 4.9.0-9-amd64 mips)
>>> --- stderr ---
>>> (igt_invalid_subtest_name:92) igt_core-CRITICAL: Invalid subtest name "# invalid name !".
>>> igt_invalid_subtest_name: ../lib/igt_core.c:1714: igt_exit: Assertion `!test_with_subtests || skipped_one || succeeded_one || failed_one' failed.
>>> Received signal SIGABRT.
>>> Stack trace:
>>> Received signal SIGSEGV.
>>> Stack trace:
>>> qemu: uncaught target signal 11 (Segmentation fault) - core dumped
>>> igt_invalid_subtest_name: ../lib/tests/igt_tests_common.h:46: internal_assert_wsignaled: Assertion `WIFSIGNALED(wstatus) && WTERMSIG(wstatus) == signal' failed.
>>> qemu: uncaught target signal 6 (Aborted) - core dumped
>>> -------
>>>
>>> Other architectures seem to be fine and the same thing is passing on
>>> stretch.
>>>
>>> Guillaume, do you have any idea what may be going on before I dig into
>>> it?
>>
>> I've had a look, the segfault is coming from libunwind when
>> trying to do a stack trace. The version of libunwind in Debian
>> Stretch (1.1) had large parts unimplemented for MIPS, and while
>> the one in Buster (1.2.1) seems to be able to fully support that
>> it also appears to have a bug causing the segfault.
>>
>> There have been a few fixes upstream in libunwind for MIPS, maybe
>> some of these need to be back-ported to the package in Debian.
>> I've built the 1.2.1 version from source and can reproduce the
>> problem, I can try the latest version to see if there has been a
>> fix for that next week. And if that's the case, ask the Debian
>> package maintainer to add some fixes. If the latest upstream
>> version still doesn't work, well I guess that would be something
>> to report to the MIPS people who worked on libunwind.
>>
>> Guillaume
>
> Thanks for investigating this! Poke me here or on the IRC (ivyl) when
> you think it might be working with buster. I'll give the series another
> spin.

Sorry for the slow reply, I've now found a fix for it upstream:

https://github.com/libunwind/libunwind/commit/fd44f596b2dad70acdc81cc76983585f888e045d

and I've sent a bug report in Debian to ask for this patch to be
added to the package in Buster. I don't know how long it will
take for this to land but I'll ping you when I get some news.

Guillaume