Bug 1360415
| Summary: | Crash does not always parse correctly the modules symbol tables | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Sebastien Piechurski <sebastien.piechurski> | ||||||
| Component: | crash | Assignee: | Dave Anderson <anderson> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | Emma Wu <xiawu> | ||||||
| Severity: | low | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 7.4 | CC: | alexandre.louvet, anderson, cye, sebastien.piechurski | ||||||
| Target Milestone: | rc | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | crash-7.1.8-1.el7 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2017-08-01 22:04:38 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: | 1394638, 1404314 | ||||||||
| Attachments: |
|
||||||||
|
Description
Sebastien Piechurski
2016-07-26 16:23:47 UTC
Would it be possible that you could make a vmlinux/vmcore pair that shows this problem available? You can contact me offline with the location of your vmlinux/vmcore pair. I cannot reproduce it to the extent that your example shows, but I do see occasional "double" symbols, where for example, "sys -M" shows the same module address mapped to two different symbols, where the one of them has a truncated name string. In any case, the patch makes sense, and has been checked in upstream: https://github.com/crash-utility/crash/commit/2399cce9b7e93ea8b6b21b09873cfa7f091eea7b Fix for the gathering of module symbol name strings during session initialization. In the unlikely case where the ordering of module symbol name strings does not match the order of the kernel_symbol structures, a faulty module symbol list entry may be created that contains a bogus name string. (sebastien.piechurski) (In reply to Dave Anderson from comment #4) > I cannot reproduce it to the extent that your example shows, but I do see > occasional "double" symbols, where for example, "sys -M" shows the same > module address mapped to two different symbols, where the one of them > has a truncated name string. > > In any case, the patch makes sense, and has been checked in upstream: > > > https://github.com/crash-utility/crash/commit/ > 2399cce9b7e93ea8b6b21b09873cfa7f091eea7b > > Fix for the gathering of module symbol name strings during session > initialization. In the unlikely case where the ordering of module > symbol name strings does not match the order of the kernel_symbol > structures, a faulty module symbol list entry may be created that > contains a bogus name string. > (sebastien.piechurski) Hi Dave Anderson, Sorry for disturb you. I try to reproduce this problem on my kvm guest, but when i run "sys -M" on crash>, i got error message "sys: invalid option -- 'M'". Could you give me some idea how to reproduce this problem? test package: crash-7.1.2-4.el7.x86_64 -- Thanks, Qiao Created attachment 1224321 [details]
module which display crash issue
Here are how to get the original issue :
- on a box running
* kernel 3.10.0-327.36.3.el7.x86_64
* crash-7.1.2-3.el7_2.x86_64
- load the attached libcfs.ko kernel modules (I don't exactly know how to generate a synthetic module which display this issue, so I just give you the one on which the issue was discovered and I used to track it down).
# gzip -d ./libcfs.ko.gz
# insmod ./libcfs.ko
- start crash on the live system
# crash
- examine the symbol
crash> sym libcfs_log_return
ffffffffa05a2de0 (t) libcfs_log_return [libcfs]
crash> sym ffffffffa05a2de0
ffffffffa05a2de0 (?) <FF>@R[<A0><FF><FF><FF><FF>^^u\<A0><FF><FF><FF><FF>@E[<A0><FF><FF><FF><FF><EF>t\<A0>
<FF><FF><FF><FF> E[<A0><FF><FF><FF><FF>^Fu\<A0><FF><FF><FF><FF><B0>?[<A0><FF><FF><FF><FF><D8>t\<A0><FF>
<FF><FF><FF>`I[<A0><FF><FF><FF><FF>Ku\<A0><FF><FF><FF><FF>^PF[<A0><FF><FF><FF><FF><C6>t\<A0><FF><FF><FF>
<FF>pA[<A0><FF><FF><FF><FF>4u\<A0><FF><FF><FF><FF> [libcfs]
(In reply to Qiao Zhao from comment #5) > (In reply to Dave Anderson from comment #4) > > I cannot reproduce it to the extent that your example shows, but I do see > > occasional "double" symbols, where for example, "sys -M" shows the same > > module address mapped to two different symbols, where the one of them > > has a truncated name string. > > > > In any case, the patch makes sense, and has been checked in upstream: > > > > > > https://github.com/crash-utility/crash/commit/ > > 2399cce9b7e93ea8b6b21b09873cfa7f091eea7b > > > > Fix for the gathering of module symbol name strings during session > > initialization. In the unlikely case where the ordering of module > > symbol name strings does not match the order of the kernel_symbol > > structures, a faulty module symbol list entry may be created that > > contains a bogus name string. > > (sebastien.piechurski) > > Hi Dave Anderson, > > Sorry for disturb you. I try to reproduce this problem on my kvm guest, but > when i run "sys -M" on crash>, i got error message "sys: invalid option -- > 'M'". > Could you give me some idea how to reproduce this problem? > > test package: crash-7.1.2-4.el7.x86_64 > > -- > Thanks, > Qiao Sorry, that was a misprint. It should be: sym -M (In reply to alexandre.louvet from comment #6) > Created attachment 1224321 [details] > module which display crash issue > > Here are how to get the original issue : > > - on a box running > * kernel 3.10.0-327.36.3.el7.x86_64 > * crash-7.1.2-3.el7_2.x86_64 > > - load the attached libcfs.ko kernel modules (I don't exactly know how to > generate a synthetic module which display this issue, so I just give you the > one on which the issue was discovered and I used to track it down). > # gzip -d ./libcfs.ko.gz > # insmod ./libcfs.ko > > - start crash on the live system > # crash > > - examine the symbol > crash> sym libcfs_log_return > ffffffffa05a2de0 (t) libcfs_log_return [libcfs] > > crash> sym ffffffffa05a2de0 > ffffffffa05a2de0 (?) > <FF>@R[<A0><FF><FF><FF><FF>^^u\<A0><FF><FF><FF><FF>@E[<A0><FF><FF><FF><FF><EF > >t\<A0> > <FF><FF><FF><FF> > E[<A0><FF><FF><FF><FF>^Fu\<A0><FF><FF><FF><FF><B0>?[<A0><FF><FF><FF><FF><D8>t > \<A0><FF> > <FF><FF><FF>`I[<A0><FF><FF><FF><FF>Ku\<A0><FF><FF><FF><FF>^PF[<A0><FF><FF><FF > ><FF><C6>t\<A0><FF><FF><FF> > <FF>pA[<A0><FF><FF><FF><FF>4u\<A0><FF><FF><FF><FF> [libcfs] Thanks for your "modules", i have got the same results. Thanks very much! Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2019 |