Bug 1219341

Summary: [abrt] acpica-tools: AcpiDmPromoteTarget(): iasl killed by SIGSEGV
Product: [Fedora] Fedora Reporter: Sergei LITVINENKO <sergei.litvinenko>
Component: acpica-toolsAssignee: Al Stone (Old account - use ahs3) <ahs3+donotuse>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: ahs3+donotuse, sergei.litvinenko
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/11c80525dfa6e3eb1076a18396d81428dad96ead
Whiteboard: abrt_hash:8443438c51e1a4489f2d3a66e3c0205d7a711e68
Fixed In Version: acpica-tools-20150515-2.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-21 00:35:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace
none
File: cgroup
none
File: core_backtrace
none
File: dso_list
none
File: environ
none
File: limits
none
File: maps
none
File: open_fds
none
File: proc_pid_status
none
File: exploitable
none
File: ssdt9.dat
none
Proposed patch
none
$ sudo acpidump -c -o full.tables none

Description Sergei LITVINENKO 2015-05-07 06:27:28 UTC
Description of problem:
decoding of section ssdt9.dat

[sergeil@homedesk PU551LD]$ iasl -d ssdt9.dat

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20141107-64 [Dec  2 2014]
Copyright (c) 2000 - 2014 Intel Corporation

Loading Acpi table from file  ssdt9.dat - Length 00003102 (000C1E)
ACPI: SSDT 0x0000000000000000 000C1E (v01 SgRef  SgPch    00001000 INTL 20120711)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 7 (20141107/dmextern-819)
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 7 (20141107/dmextern-819)
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 5 (20141107/dmextern-819)

Found 4 external control methods, reparsing with new information
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Segmentation fault (core dumped)


Version-Release number of selected component:
acpica-tools-20141107-1.fc20

Additional info:
reporter:       libreport-2.2.3
backtrace_rating: 4
cmdline:        iasl -d ssdt9.dat
crash_function: AcpiDmPromoteTarget
executable:     /usr/bin/iasl
kernel:         3.19.5-100.fc20.x86_64
runlevel:       N 5
type:           CCpp
uid:            1000
var_log_messages: [System Logs]:\n-- Logs begin at Чт 2015-01-15 20:35:59 EET, end at Чт 2015-05-07 09:15:00 EEST. --

Truncated backtrace:
Thread no. 1 (9 frames)
 #0 AcpiDmPromoteTarget at ../../../source/components/disassembler/dmcstyle.c:653
 #1 AcpiDmCheckForSymbolicOpcode at ../../../source/components/disassembler/dmcstyle.c:426
 #2 AcpiDmDescendingOp at ../../../source/components/disassembler/dmwalk.c:501
 #3 AcpiDmWalkParseTree at ../../../source/components/disassembler/dmwalk.c:178
 #4 AcpiDmDisassemble at ../../../source/components/disassembler/dmwalk.c:124
 #5 AdDisplayTables at ../../../source/common/adisasm.c:712
 #6 AdAmlDisassemble at ../../../source/common/adisasm.c:483
 #7 AslDoDisassembly at ../../../source/compiler/aslstartup.c:251
 #8 AslDoOneFile at ../../../source/compiler/aslstartup.c:343

Comment 1 Sergei LITVINENKO 2015-05-07 06:27:32 UTC
Created attachment 1022939 [details]
File: backtrace

Comment 2 Sergei LITVINENKO 2015-05-07 06:27:33 UTC
Created attachment 1022940 [details]
File: cgroup

Comment 3 Sergei LITVINENKO 2015-05-07 06:27:34 UTC
Created attachment 1022941 [details]
File: core_backtrace

Comment 4 Sergei LITVINENKO 2015-05-07 06:27:35 UTC
Created attachment 1022942 [details]
File: dso_list

Comment 5 Sergei LITVINENKO 2015-05-07 06:27:36 UTC
Created attachment 1022943 [details]
File: environ

Comment 6 Sergei LITVINENKO 2015-05-07 06:27:37 UTC
Created attachment 1022944 [details]
File: limits

Comment 7 Sergei LITVINENKO 2015-05-07 06:27:39 UTC
Created attachment 1022945 [details]
File: maps

Comment 8 Sergei LITVINENKO 2015-05-07 06:27:40 UTC
Created attachment 1022946 [details]
File: open_fds

Comment 9 Sergei LITVINENKO 2015-05-07 06:27:41 UTC
Created attachment 1022948 [details]
File: proc_pid_status

Comment 10 Sergei LITVINENKO 2015-05-07 06:27:42 UTC
Created attachment 1022949 [details]
File: exploitable

Comment 11 Sergei LITVINENKO 2015-05-07 06:27:43 UTC
Created attachment 1022950 [details]
File: ssdt9.dat

Comment 12 Fedora End Of Life 2015-05-29 13:49:27 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '20'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 20 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 13 Al Stone (Old account - use ahs3@redhat.com) 2015-06-01 20:46:45 UTC
Created attachment 1033510 [details]
Proposed patch

The attached patch will be sent upstream as a proposed fix; several places use the Target pointer in dmcstyle.c without checking whether or not it is non-null, causing the segfault.  It's not clear this is the proper way to fix this problem, however -- it would appear that Target is not being set in some cases where it should be so perhaps upstream has a better long-term answer.

Comment 14 Al Stone (Old account - use ahs3@redhat.com) 2015-06-02 20:15:42 UTC
Would it be possible to get a copy of acpidump output so we can have the full set of tables?  Upstream thinks the issue may be with tables external to this SSDT.  To get these tables, you can do something like this:

   $ sudo acpidump -c -o full.tables

Thanks.

Comment 15 Fedora Update System 2015-06-04 00:27:01 UTC
acpica-tools-20150515-2.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/acpica-tools-20150515-2.fc22

Comment 16 Fedora Update System 2015-06-04 00:27:10 UTC
acpica-tools-20150515-2.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/acpica-tools-20150515-2.fc21

Comment 17 Sergei LITVINENKO 2015-06-04 19:06:28 UTC
Created attachment 1034833 [details]
$ sudo acpidump -c -o full.tables

Comment 18 Fedora Update System 2015-06-06 00:01:46 UTC
Package acpica-tools-20150515-2.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing acpica-tools-20150515-2.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-9530/acpica-tools-20150515-2.fc22
then log in and leave karma (feedback).

Comment 19 Sergei LITVINENKO 2015-06-06 12:33:35 UTC
Modification is not enough

----------------------------------------------------------
[root@localhost acpi]# cat get-acpi-info.sh 
----------------------------------------------------------
#!/bin/sh
# Author: Lekensteyn <lekensteyn>
# This script is released into public domain, do whatever you want with it
# Version history:
# 2012-01-08: Initial release
# 2012-01-08 21:42 UTC: Update bug reporting URL
err=false
if ! dmidecode -V >/dev/null; then
        echo "Please install dmidecode"
        err=true
fi
if ! acpidump -h >/dev/null; then
        echo "Please install acpidump"
        err=true
fi
if ! sudo -V >/dev/null; then
        sudo() {
                echo "Running command as root: $*"
                su -c "$*"
        }
fi
$err && exit

cd "$(mktemp -d)"

echo "Dumping ACPI tables..."
sudo acpidump -c -o acpidump.txt

acpixtract acpidump.txt
# everything can be retrieved from the dump, iasl is not mandatory
iasl -h >/dev/null && for i in *.dat; do iasl -d "$i"; done
# clear the file

echo "Gathering computer model and BIOS version..."
: > dmidecode.txt
info="system-manufacturer system-product-name system-version"
info="$info baseboard-manufacturer baseboard-product-name baseboard-version"
info="$info bios-vendor bios-version bios-release-date"
for key in $info;do printf "%-22s: %s\n" $key "$(sudo dmidecode -s $key)" >>dmidecode.txt;done

echo "Dumping PCI information..."
lspci -vvvnn > lspci.txt
name="$(head -2 dmidecode.txt | sed 's/ *$//;s/^[^:]*: *//;s/[^A-Za-z0-9.,-]/_/g' | tr '\n' - | sed 's/-$//')"
mkdir -p "$name" && cp *.dsl *.txt "$name"

tar czf "$name.tar.gz" "$name"

echo "Please submit the below file on https://bugs.launchpad.net/lpbugreporter/+bug/752542/+addcomment"
ls -l "$PWD/$name.tar.gz"
----------------------------------------------------------

Result: Segmentation fault
...

Reading ACPI table from file  ssdt9.dat - Length 00003102 (0x000C1E)
ACPI: SSDT 0x0000000000000000 000C1E (v01 SgRef  SgPch    00001000 INTL 20120711)
Acpi table [SSDT] successfully installed and loaded
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 7 (20150515/dmextern-819)
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 7 (20150515/dmextern-819)
ACPI Error: External method arg count mismatch _SB_.PCI0.LPCB.EC0_.WRAM: Current 2, attempted 5 (20150515/dmextern-819)

Found 4 external control methods, reparsing with new information
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
get-acpi-info.sh: line 31:  2649 Segmentation fault      (core dumped) iasl -d "$i"

...

Comment 20 Fedora Update System 2015-06-21 00:35:05 UTC
acpica-tools-20150515-2.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 21 Fedora Update System 2015-06-21 00:35:43 UTC
acpica-tools-20150515-2.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.