Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 2169892

Summary: blueprint-compiler not working in rawhide (f39)
Product: [Fedora] Fedora Reporter: Yaakov Selkowitz <yselkowi>
Component: blueprint-compilerAssignee: Lyes Saadi <fedora>
Status: CLOSED ERRATA QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 39CC: 0xmrtt, dan, dhorak, fedora, gnome-sig
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: blueprint-compiler-0.10.0-1.fc40 blueprint-compiler-0.10.0-1.fc39 blueprint-compiler-0.10.0-1.fc38 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-09-14 19:07:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765    

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.

Comment 10 Fedora Update System 2023-09-14 19:06:15 UTC
FEDORA-2023-0f41f5c611 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-0f41f5c611

Comment 11 Fedora Update System 2023-09-14 19:07:39 UTC
FEDORA-2023-0f41f5c611 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2023-09-14 19:41:07 UTC
FEDORA-2023-8893244e3c has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-8893244e3c

Comment 13 Fedora Update System 2023-09-14 21:05:34 UTC
FEDORA-2023-bf95c29918 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-bf95c29918

Comment 14 Fedora Update System 2023-09-15 01:06:38 UTC
FEDORA-2023-bf95c29918 has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-bf95c29918`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-bf95c29918

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 15 Fedora Update System 2023-09-15 02:28:40 UTC
FEDORA-2023-8893244e3c has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-8893244e3c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-8893244e3c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2023-09-23 00:16:55 UTC
FEDORA-2023-8893244e3c has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Fedora Update System 2023-09-23 01:30:27 UTC
FEDORA-2023-bf95c29918 has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.