Bug 533600 - assert(gc->gc.gc_refs == GC_REACHABLE) failing when sealert.py exits
Summary: assert(gc->gc.gc_refs == GC_REACHABLE) failing when sealert.py exits
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: python
Version: 12
Hardware: x86_64
OS: Linux
low
medium
Target Milestone: ---
Assignee: Dave Malcolm
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: abrt_hash:54f4e53f9967c5ef806608188fe...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-07 18:23 UTC by Ryan Jenkins
Modified: 2010-12-04 03:28 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-12-04 03:28:02 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (3.52 KB, text/plain)
2009-11-07 18:23 UTC, Ryan Jenkins
no flags Details

Description Ryan Jenkins 2009-11-07 18:23:54 UTC
abrt detected a crash.

How to reproduce
-----
1. Allow memory access for wine programs
2.
3.

Attached file: backtrace
cmdline: /usr/bin/python -E /usr/bin/sealert -s
component: python
executable: /usr/bin/python
kernel: 2.6.31.5-117.fc12.x86_64
package: python-2.6.2-2.fc12
rating: 4
reason: Process was terminated by signal 6

Comment 1 Ryan Jenkins 2009-11-07 18:23:56 UTC
Created attachment 367956 [details]
File: backtrace

Comment 2 Dave Malcolm 2009-11-09 22:35:54 UTC
Thanks for filing this bug report.

Are you able to reproduce this problem?


Notes to self:
Looking at the backtrace, it appears that the problem is this assertion failing:
  assert(gc->gc.gc_refs == GC_REACHABLE);
during collect(2) for the final garbage collection of python objects as the program exits (i.e. garbage collection of the longest-lived containers).

Looks like somehow one of the container objects in the oldest generation either doesn't have this set to GC_REACHABLE going in to the iteration, or is listed twice, etc

Possibly a bug in a C extension module that sealert.py uses?

Comment 3 Dave Malcolm 2009-11-09 22:50:20 UTC
CCing dwalsh, jdennis

dwalsh, jdennis: is this something you've seen before?

I'm wondering if there's a deeply hidden garbage-collection/reference handling problem in one of the C extensions used by sealert (DBus?  GObject? SELinux?)

It _might_ be possible to encourage this bug to show itself by inserting a call to:
   import gc
   gc.set_debug(63) # for really verbose debug output
   gc.collect()
into the script somewhere where it's going to be called a lot.

Comment 4 Ryan Jenkins 2009-11-10 03:47:25 UTC
Sorry, I can't seem to reproduce this. I attempted to revert the memory permissions using:

/usr/sbin/setsebool -P mmap_low_allowed 0

and run winecfg again, but wasn't able to trigger the SELinux warning like before. Maybe I'm not reverting the setting properly? I'm not very knowledgeable about SELinux.

Comment 5 Dave Malcolm 2009-11-10 13:48:20 UTC
(In reply to comment #4)
> Sorry, I can't seem to reproduce this. I attempted to revert the memory
Thanks for trying.

What you saw looks like a symptom of a problem, rather than the actual cause; the backtrace is an assertion failure deep inside Python's cleanup code on exiting; when it fired the bug had already happened.  So this bug is likely to be one of those nasty ones where there isn't an obvious cause/effect connection, and reproducing may be hard.

For the record, can you supply the output from following query:

rpm -q setroubleshoot-server audit-libs-python policycoreutils-python pygobject2 rpm-python setroubleshoot-plugins dbus-python libxml2-python

Thanks!

(Note to self: looks similar to this one http://bugs.python.org/issue1740599 which appears to have been an error in a C extension)

Comment 6 Daniel Walsh 2009-11-10 14:15:02 UTC
One possible cause would be a constructor/destructor of libselinux which allocates and frees memory.

Comment 7 Ryan Jenkins 2009-11-10 16:29:39 UTC
Here's your info:

setroubleshoot-server-2.2.42-1.fc12.x86_64
audit-libs-python-2.0.1-1.fc12.x86_64
policycoreutils-python-2.0.74-4.fc12.x86_64
pygobject2-2.20.0-1.fc12.x86_64
rpm-python-4.7.1-6.fc12.x86_64
setroubleshoot-plugins-2.1.29-1.fc12.noarch
dbus-python-0.83.0-6.fc12.x86_64
libxml2-python-2.7.6-1.fc12.x86_64

Comment 8 Bug Zapper 2010-11-04 06:43:56 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  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 WONTFIX if it remains open with a Fedora 
'version' of '12'.

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 prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 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 please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

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.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 9 Bug Zapper 2010-12-04 03:28:02 UTC
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.


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