Bug 2169892 - blueprint-compiler not working in rawhide (f39)
Summary: blueprint-compiler not working in rawhide (f39)
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: blueprint-compiler
Version: 39
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Lyes Saadi
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: ZedoraTracker
TreeView+ depends on / blocked
 
Reported: 2023-02-15 00:22 UTC by Yaakov Selkowitz
Modified: 2023-08-16 07:06 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Yaakov Selkowitz 2023-02-15 00:22:19 UTC
Description of problem:

The rawhide (f39) build of whatip failed despite the f38 build succeeding:

https://kojipkgs.fedoraproject.org//work/tasks/4470/97484470/build.log

/usr/bin/blueprint-compiler batch-compile data/. ../data ../data/ui/shortcutsWindow.blp ../data/ui/headerbar.blp ../data/ui/lan_listbox_row.blp ../data/ui/listbox_with_empty_state.blp ../data/ui/net_iface_listbox_row.blp ../data/ui/net_port_listbox_row.blp
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/main.py", line 58, in main
    opts.func(opts)
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/main.py", line 106, in cmd_batch_compile
    xml, warnings = self._compile(data)
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/main.py", line 141, in _compile
    if len(ast.errors):
           ^^^^^^^^^^
  File "/usr/lib64/python3.11/functools.py", line 1001, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 78, in errors
    return list(self._get_errors())
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 90, in _get_errors
    yield from child._get_errors()
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 90, in _get_errors
    yield from child._get_errors()
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 90, in _get_errors
    yield from child._get_errors()
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 83, in _get_errors
    validator(self)
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/ast_utils.py", line 149, in inner
    func(self)
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/language/gtkbuilder_child.py", line 53, in parent_can_have_child
    if gir_class.assignable_to(parent_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/gir.py", line 398, in assignable_to
    elif self.parent and self.parent.assignable_to(other):
         ^^^^^^^^^^^
  File "/usr/lib64/python3.11/functools.py", line 1001, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/gir.py", line 374, in parent
    return self.get_containing(Repository)._resolve_dir_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/blueprintcompiler/gir.py", line 603, in _resolve_dir_entry
    return self.lookup_namespace(ns).get_type(dir_entry.DIR_ENTRY_NAME)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_type'
Arguments: ['/usr/bin/blueprint-compiler', 'batch-compile', 'data/.', '../data', '../data/ui/shortcutsWindow.blp', '../data/ui/headerbar.blp', '../data/ui/lan_listbox_row.blp', '../data/ui/listbox_with_empty_state.blp', '../data/ui/net_iface_listbox_row.blp', '../data/ui/net_port_listbox_row.blp']
***** COMPILER BUG *****
The blueprint-compiler program has crashed. Please report the above stacktrace,
along with the input file(s) if possible, on GitLab:
https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/new?issue
ninja: build stopped: subcommand failed.


Version-Release number of selected component (if applicable):
blueprint-compiler-0.6.0-2.fc38 (in f39-build)

How reproducible:
Multiple times in rawhide, but not in stable branches

Comment 1 Lyes Saadi 2023-02-15 11:05:02 UTC
Hello !

It's an annoying bug that only happens on s390x builders. 0.6.0 wasn't even meant to be pushed, but I let the commit sit in rawhide by error, as I thought the bug was going to be fixed by upstream quickly, but they didn't. I ended up forgetting about it until today, and it was pushed with the mass rebuild.

I am aware this breaks the guideline about SCM needing to be ready to be functional at any time. So, I'll revert this with an epoch, unless you know of a way to instruct noarch packages to be built on any builder except s390x? (I asked about it on matrix fedora-devel, but my question wasn't answered...)

Since blueprint-compiler would still produce usable ui files for s390x, I'd prefer to keep this update, but just make sure Fedora wouldn't build it and its dependent packages on s390x.

Comment 2 Lyes Saadi 2023-02-15 11:11:27 UTC
(Just to be clear, if I end up having to revert the update, I'll still keep this issue open and try to look into the bug myself)

Comment 3 Lyes Saadi 2023-02-15 11:39:22 UTC
Ok, I think I got an idea where the bug could be (I think it's in this function, if you want to look further: https://gitlab.gnome.org/jwestman/blueprint-compiler/-/blob/main/blueprintcompiler/typelib.py#L229). Although, I am unfortunately not able to look at it right now, and it's s390x, an arch I know nothing about. So, I'll try to look at it tomorrow!

Comment 4 Yaakov Selkowitz 2023-02-15 16:17:25 UTC
The odd thing is that 0.6.0 includes a supposed big-endian fix at that spot: https://gitlab.gnome.org/jwestman/blueprint-compiler/-/merge_requests/76

Let's try to get some help here, blocking the s390x tracker.

Comment 5 Lyes Saadi 2023-02-23 21:48:10 UTC
blueprint-compiler 0.4.0 also fails on s390x, I somehow never bothered to check, and it was never built on s390x at the time by some kind of luck:
https://copr.fedorainfracloud.org/coprs/lyessaadi/blueprint-compiler-0.6.0/build/5561735/

And since it was noarch, it didn't get tested for every arch at review/import...

So, downgrading by increasing the Epoch is out of the question :/.

Anyway, while the bug is solved, there are two paths forward since it doesn't seem that we can have the infra build on everything except a specific arch for noarch ?

Options:
- Wait for a fix, blocking multiple apps and introducing surprise failures from time to time in updates.
- Turn blueprint-compiler to an arch-specific package, but would be kind of playing with guidelines? I think if this path forward is chosen, asking fesco for a guideline exception might be preferable.

Anyway, would like to hear about your opinion to move forward, as I am quite conflicted between both options, as we do not know how long this bug might last...

Comment 6 Yaakov Selkowitz 2023-03-01 03:27:50 UTC
Dan this looks like an endianness issue, any chance you could help?

Comment 7 Dan Horák 2023-03-01 09:02:17 UTC
Hi Yaakov, how urgent is it? I could probably find some spare cycles in next weeks.

As I know nothing about blueprimnt-compiler, is there a minimal test case that exposes the failure on s390x?

Comment 8 Lyes Saadi 2023-03-01 11:40:54 UTC
Yes, there is. blueprint-compiler's builds on s390x also fail in the test section.

You can also find more about the bug here : https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96

Comment 9 Fedora Release Engineering 2023-08-16 07:06:57 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.


Note You need to log in before you can comment on or make changes to this bug.