Bug 1922698

Summary: many DW_TAG_INVALID errors
Product: [Fedora] Fedora Reporter: Chris Murphy <bugzilla>
Component: dwarvesAssignee: Arnaldo Carvalho de Melo <acme>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: acme, jonstanley, mcermak, mjw, nick.desaulniers
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: dwarves-1.20-1.fc33 dwarves-1.20-1.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-02-06 01:18:06 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:

Description Chris Murphy 2021-01-30 22:09:31 UTC
Description of problem:

Compiling the kernel, and > 90% of the output is made up of these die__process DW_TAG_INVALID messages. Looks like a dup of bug 742257.


Version-Release number of selected component (if applicable):
dwarves-1.19-1.fc34.x86_64
gcc-11.0.0-0.17.fc34.x86_64


How reproducible:
Always


Steps to Reproduce:
1. linux git, git checkout tags/v5.11-rc5
2. using config-5.11.0-0.rc5.134.fc34.x86_64+debug, modified with localmodconfig
3. make -j8

Actual results:

Many messages like this:
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431be> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431cb> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431d8> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431e5> not handled!
DW_AT_<0x20>=0x21
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b434b3> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4350f> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4358d> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b43680> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43705> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b4372e> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b43853> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4389d> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43921> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b4394b> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43958> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43965> not handled!


kernel compile does complete

Expected results:


No errors.

Additional info:

Comment 1 Mark Wielaard 2021-01-30 22:23:21 UTC
DW_TAG_call_site is 0x48, which is the DWARF5 standardized tag for DW_TAG_GNU_call_site

Comment 2 Chris Murphy 2021-01-30 23:17:43 UTC
Also quite a lot of each of these lines, repeating:

DW_AT_<0xb>=0x21
DW_AT_<0x88>=0x21

And quite a lot of these lines but with different paths to file:

ld: warning: orphan section `.debug_line_str' from `kernel/sched/autogroup.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/stats.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/stats.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/stats.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/debug.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/debug.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/debug.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpuacct.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpuacct.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpuacct.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_line_str'

Comment 3 Mark Wielaard 2021-01-30 23:45:14 UTC
(In reply to Chris Murphy from comment #2)
> Also quite a lot of each of these lines, repeating:
> 
> DW_AT_<0xb>=0x21
> DW_AT_<0x88>=0x21

Those are DW_AT_byte_size and DW_AT_alignment given as DW_FORM_implicit_const.
Which is a new FORM in DWARF5 providing a constant value.

It should be solved upstream by:

commit 8ec231f6b0c8aaeff02ba9e5ca9ee79d86e026d2
Author: Arnaldo Carvalho de Melo <acme>
Date:   Wed Jan 27 11:12:06 2021 -0300

    dwarf_loader: Support DW_FORM_implicit_const in attr_numeric()
    
    Will be used to read DW_AT_data_bit_offset.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme>


> And quite a lot of these lines but with different paths to file:
> 
> ld: warning: orphan section `.debug_line_str' from
> `kernel/sched/autogroup.o' being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/stats.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/stats.o'
> being placed in section `.debug_rnglists't 
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/stats.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/debug.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/debug.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/debug.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_line_str'

I think that is a linker (or linker script) issue.
Should probably be reported either against the kernel or against binutils.
Might be resolved in binutils by:

commit 9e42b97628f96d8c7f59890e368ddf3a0bd8c811
Author: Fangrui Song <maskray>
Date:   Mon Jan 25 11:35:57 2021 +0000

    Add some more DWARF-5 sections

commit b8df69003de5c662fab94d10af3ad335909fa5bf
Author: Nick Clifton <nickc>
Date:   Mon Jan 25 11:20:20 2021 +0000

    Update linker scripts with the names of new DWARF-5 debug sections.
    
            * scripttempl/DWARF.sc: Add .debug_loclists, .debug_rnglists,
            .debug_line_str and .debug_str_offsets.  Move .debug_macro and
            .debug_addr into DWARF-5 section.

Or that might be something else. Best to ask in a new binutils bug.

Comment 4 Chris Murphy 2021-01-31 00:09:11 UTC
Done. Bug 1922707

Comment 5 Mark Wielaard 2021-01-31 01:51:18 UTC
(In reply to Chris Murphy from comment #4)
> Done. Bug 1922707

Thanks.

I did sent a patch for the TAG issue upstream:
https://www.spinics.net/lists/dwarves/msg00857.html

Comment 6 Nick Desaulniers 2021-02-04 01:25:59 UTC
I can confirm that with pahole @ 8d6f06f053a06829589dd3b4b4f88f8a73a21006, I no longer observe `DW_TAG_INVALID (0x48)` related failures. Thanks Mark.

Comment 7 Fedora Update System 2021-02-05 13:21:29 UTC
FEDORA-2021-804e7a572c has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-804e7a572c

Comment 8 Fedora Update System 2021-02-05 16:34:50 UTC
FEDORA-2021-eb4c8e9e7c has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2021-eb4c8e9e7c

Comment 9 Fedora Update System 2021-02-06 01:18:06 UTC
FEDORA-2021-804e7a572c has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2021-02-06 01:58:59 UTC
FEDORA-2021-eb4c8e9e7c has been pushed to the Fedora 32 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-eb4c8e9e7c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-eb4c8e9e7c

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

Comment 11 Fedora Update System 2021-02-14 01:45:35 UTC
FEDORA-2021-eb4c8e9e7c has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.