Skip to content

Should not take 10 minutes to print error message when workspace build fails

Here's a typical experience with a build failure. Note FAILURE Running build-commands occurs at 08:10, but FAILURE Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1 does not occur until 17:51. That's nearly 10 minutes between informing me that I have a build failure, and informing me what the failure was. This is really terrible for developer productivity. Let's say I have 10 build failures in a row to fix, what would take an hour or two to handle with JHBuild is going to take days with BuildStream.

[--:--:--][????????][build:core-deps/WebKitGTK+.bst      ] STATUS  Running build-commands

    cmake --build _builddir -- ${JOBS}

[00:08:10][????????][build:core-deps/WebKitGTK+.bst      ] FAILURE Running build-commands
[00:08:10][????????][build:core-deps/WebKitGTK+.bst      ] FAILURE Running build-commands
[00:17:51][????????][build:core-deps/WebKitGTK+.bst      ] FAILURE Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1

    Sandbox directory: /home/mcatanzaro/.cache/buildstream/build/core-deps-WebKitGTK+-dup1vcv8

    Printing the last 20 lines from log file:
    /home/mcatanzaro/.cache/buildstream/logs/gnome/core-deps-WebKitGTK+/????????-build.4874.log
    ======================================================================
    DerivedSources/ForwardingHeaders/wtf/Variant.h:674:9:   required from ‘void WTF::__variant_data<_Head, _Rest ...>::__destroy(WTF::in_place_index_t<_Index>) [with long unsigned int _Index = 1; _Head = WTF::RefPtr<WebCore::MediaSource>; _Rest = {WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> >}; WTF::in_place_index_t<_Index> = WTF::in_place_tag (&)(WTF::__in_place_private::__value_holder<1>&)]’
    DerivedSources/ForwardingHeaders/wtf/Variant.h:825:13:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
    DerivedSources/ForwardingHeaders/wtf/Variant.h:1470:45:   required from ‘void WTF::Variant< <template-parameter-1-1> >::__destroy_self() [with _Types = {WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> >}]’
    DerivedSources/ForwardingHeaders/wtf/Variant.h:922:9:   required from ‘WTF::__variant_base<_Derived, __trivial_destructor>::~__variant_base() [with _Derived = WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > >; bool __trivial_destructor = false]’
    DerivedSources/ForwardingHeaders/wtf/Variant.h:1439:7:   required from ‘struct std::is_trivially_copy_constructible<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
    /usr/include/c++/7.3.0/optional:105:8:   required from ‘class std::_Optional_base<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
    /usr/include/c++/7.3.0/optional:453:11:   required from ‘class std::optional<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
    ../Source/WebCore/html/HTMLMediaElement.h:1126:19:   required from here
    DerivedSources/ForwardingHeaders/wtf/RefPtr.h:45:14: error: invalid use of incomplete type ‘class WebCore::Blob’
             ptr->deref();
             ~~~~~^~~~~
    In file included from ../Source/WebCore/page/DOMWindow.h:35:0,
                     from ../Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:33:
    ../Source/WebCore/html/ImageBitmap.h:36:7: note: forward declaration of ‘class WebCore::Blob’
     class Blob;
           ^~~~
    ninja: build stopped: subcommand failed.
    [00:08:10] FAILURE [core-deps/WebKitGTK+.bst]: Running build-commands
    [00:08:10] FAILURE [core-deps/WebKitGTK+.bst]: Running build-commands
    [00:17:51] FAILURE [core-deps/WebKitGTK+.bst]: Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information