Skip to content

Commits on Source 5

  • Sam Thursfield's avatar
    Fix crash when --debug is passed · 064abe66
    Sam Thursfield authored and Valentin David's avatar Valentin David committed
    I hit the following backtrace running `bst --debug push` and `bst
    --debug build`:
    
        pid:16736 id:000[--:--:--][][] START   Push
        pid:16736 id:000[--:--:--][][] START   Loading pipeline
        pid:16736 id:000[00:00:00][][] SUCCESS Loading pipeline
        pid:16736 id:000[--:--:--][][] START   Resolving pipeline
        pid:16736 id:000[--:--:--][][] BUG     'MesonElement' object has no attribute '_Element__cache_key'
    
            Traceback (most recent call last):
              File "/home/sam/.local/bin/bst", line 8, in <module>
                sys.exit(cli())
              File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 722, in __call__
                return self.main(*args, **kwargs)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/cli.py", line 162, in override_main
                standalone_mode=standalone_mode, **extra)
              File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 697, in main
                rv = self.invoke(ctx)
              File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
                return _process_result(sub_ctx.command.invoke(sub_ctx))
              File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
                return ctx.invoke(self.callback, **ctx.params)
              File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
                return callback(*args, **kwargs)
              File "/home/sam/.local/lib/python3.6/site-packages/click/decorators.py", line 27, in new_func
                return f(get_current_context().obj, *args, **kwargs)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/cli.py", line 471, in push
                app.stream.push(elements, selection=deps, remote=remote)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_stream.py", line 341, in push
                fetch_subprojects=True)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_stream.py", line 814, in _load
                fetch_subprojects=fetch_subprojects)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_pipeline.py", line 119, in load
                for meta in meta_elements
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_pipeline.py", line 119, in <listcomp>
                for meta in meta_elements
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 894, in _new_from_meta
                element = project.create_element(artifacts, meta)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_project.py", line 184, in create_element
                element = self._element_factory.create(self._context, self, artifacts, meta)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_elementfactory.py", line 57, in create
                return element_type(context, project, artifacts, meta, default_config)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 196, in __init__
                super().__init__(meta.name, context, project, meta.provenance, "element")
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 171, in __init__
                self.debug("Created: {}".format(self))
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 407, in debug
                self.__message(MessageType.DEBUG, brief, detail=detail)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 652, in __message
                self.__context.message(message)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_context.py", line 338, in message
                self._message_handler(message, context=self)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/app.py", line 665, in _message_handler
                text = self.logger.render(message)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 585, in render
                return self._render(message)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 620, in _render
                text += widget.render(message)
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 228, in render
                _, key, missing = plugin._get_display_key()
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 1138, in _get_display_key
                cache_key = self._get_cache_key()
              File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 991, in _get_cache_key
                return self.__cache_key
            AttributeError: 'MesonElement' object has no attribute '_Element__cache_key'
    
    The issue here is that when `--debug` is enabled, Plugin.__init__()
    tries to log a message like this:
    
            pid:16929 id:001[--:--:--][????????][ main:tracker.bst                   ] DEBUG   Created: meson element at tracker.bst [line 1 column 0]
    
    The log formatter is trying to get the cache key of the element in
    order to show it in the log, but the attribute hasn't yet been set
    because we've not got to the Element() constructor.
    064abe66
  • Valentin David's avatar
    Merge branch 'valentindavid/fix-debug-crash-1.2' into 'bst-1.2' · 6a2f3b59
    Valentin David authored
    Fix crash when --debug is passed
    
    See merge request !648
    6a2f3b59
  • Jürg Billeter's avatar
    _artifactcache/cascache.py: Fix for PEP 479 / Python 3.7 · 002749b5
    Jürg Billeter authored and Valentin David's avatar Valentin David committed
    Do not rely on `StopIteration` bubbling up.
    
    https://www.python.org/dev/peps/pep-0479/
    002749b5
  • Valentin David's avatar
    Merge branch 'valentindavid/python3.7-1.2' into 'bst-1.2' · 60df233d
    Valentin David authored
    Python 3.7 support
    
    See merge request !649
    60df233d
  • Phillip Smyth's avatar
    _stream.py: Added functionality for workspace open -f · 60c817c0
    Phillip Smyth authored and Valentin David's avatar Valentin David committed
    tests/frontend/workspace.py: Added tests
    60c817c0
Loading