Bug 860022 - AttributeError: preconf
AttributeError: preconf
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: anaconda (Show other bugs)
18
x86_64 Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Brian Lane
Fedora Extras Quality Assurance
abrt_hash:aeb440033348d0944a28d722a24...
:
Depends On:
Blocks: F18-accepted/F18FinalFreezeExcept
  Show dependency treegraph
 
Reported: 2012-09-24 12:02 EDT by Stef Walter
Modified: 2014-01-21 18:23 EST (History)
15 users (show)

See Also:
Fixed In Version: anaconda-18.37.7-1
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-01-02 16:48:44 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
File: ifcfg.log (55 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: version (8 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: product (6 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: type (9 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: environ (802 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: storage.log (54.12 KB, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: program.log (31.17 KB, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: release (24 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: anaconda.log (2.23 KB, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: syslog (71.17 KB, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: hashmarkername (8 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: ks.cfg (726 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: packaging.log (183 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: cmdline_file (138 bytes, text/plain)
2012-09-24 12:02 EDT, Stef Walter
no flags Details
File: anaconda-tb (189.11 KB, text/plain)
2012-09-24 12:03 EDT, Stef Walter
no flags Details
File: description (1.70 KB, text/plain)
2012-09-24 12:03 EDT, Stef Walter
no flags Details
Screenshot of crash (42.49 KB, image/png)
2012-12-18 13:25 EST, Orion Poplawski
no flags Details
screenshot of crash (39.47 KB, image/png)
2012-12-18 17:53 EST, Orion Poplawski
no flags Details
screenshot - pycurl.error: cannot invoke setopt() - perform() is currently running (52.25 KB, image/png)
2012-12-18 18:06 EST, Orion Poplawski
no flags Details

  None (edit)
Description Stef Walter 2012-09-24 12:02:16 EDT
Version-Release number of selected component:
anaconda-18.6.8

Additional info:
libreport version: 2.0.12
cmdline:        /usr/bin/python  /sbin/anaconda
kernel:         3.6.0-0.rc2.git2.1.fc18.x86_64
Comment 1 Stef Walter 2012-09-24 12:02:19 EDT
Created attachment 616622 [details]
File: ifcfg.log
Comment 2 Stef Walter 2012-09-24 12:02:21 EDT
Created attachment 616623 [details]
File: version
Comment 3 Stef Walter 2012-09-24 12:02:23 EDT
Created attachment 616624 [details]
File: product
Comment 4 Stef Walter 2012-09-24 12:02:26 EDT
Created attachment 616625 [details]
File: type
Comment 5 Stef Walter 2012-09-24 12:02:28 EDT
Created attachment 616626 [details]
File: environ
Comment 6 Stef Walter 2012-09-24 12:02:34 EDT
Created attachment 616627 [details]
File: storage.log
Comment 7 Stef Walter 2012-09-24 12:02:37 EDT
Created attachment 616628 [details]
File: program.log
Comment 8 Stef Walter 2012-09-24 12:02:39 EDT
Created attachment 616629 [details]
File: release
Comment 9 Stef Walter 2012-09-24 12:02:42 EDT
Created attachment 616630 [details]
File: anaconda.log
Comment 10 Stef Walter 2012-09-24 12:02:46 EDT
Created attachment 616631 [details]
File: syslog
Comment 11 Stef Walter 2012-09-24 12:02:49 EDT
Created attachment 616632 [details]
File: hashmarkername
Comment 12 Stef Walter 2012-09-24 12:02:52 EDT
Created attachment 616634 [details]
File: ks.cfg
Comment 13 Stef Walter 2012-09-24 12:02:55 EDT
Created attachment 616635 [details]
File: packaging.log
Comment 14 Stef Walter 2012-09-24 12:02:58 EDT
Created attachment 616636 [details]
File: cmdline_file
Comment 15 Stef Walter 2012-09-24 12:03:03 EDT
Created attachment 616637 [details]
File: anaconda-tb
Comment 16 Stef Walter 2012-09-24 12:03:06 EDT
Created attachment 616638 [details]
File: description
Comment 17 Jesse Keating 2012-09-24 17:54:10 EDT
This is a traceback out of the yum module.  Are we doing something wrong here yum folks?
Comment 18 Zdeněk Pavlas 2012-09-25 03:25:22 EDT
yum/__init__:
@313:        uuid = self.preconf.uuid
@385:        del self.preconf

I'd bet that somewhere between these two lines _getConfig() is called recursively, so the "inner" function deletes self.preconf, and the "outer" one tracebacks.  There's likely some self.conf reference between lines 313 and 385.  doPluginSetup, maybe?
Comment 19 James Antill 2012-09-25 15:51:48 EDT
 What Zdeněk says is true, but because of that possibility we try to limit what we do a _lot_ between those two lines. Here is a mostly complete list:

1. Take values from preconf

2. Setup arch. data.

3. config.readStartupConfig()

4. config._getsysver() manual call for releasever=/

5. doLoggingSetup()

6. doPluginSetup()

7. config.readMainConfig()

...and at that point self._conf is set, at which point we can't recurse into this code path.
 My guess is that #6 is the problem, at that point we do a couple of things that might be triggering something:

6.1: import each plugin module (runs any top level code) in the module.

6.2: runs the "config_hook" of each enabled plugin.

...and here the problem is likely #6.2 (you should be able to run this outside of anaconda though).

 If you don't have any weird plugins, it probably means you are overridding one of the stages above ... which will be harder to debug :(.
Comment 20 Orion Poplawski 2012-12-18 13:25:44 EST
Created attachment 665671 [details]
Screenshot of crash

I've been seeing this off and on for a while on my vm installs.  Just got it with 18.37.3 from F18-TC3.  In text mode install the traceback does not appear to be logged anywhere (a separate bug?), but the screen shot does show another traceback along with the reported one.
Comment 21 Orion Poplawski 2012-12-18 17:53:43 EST
Created attachment 665809 [details]
screenshot of crash

Tried a second time.  Got a different yet similar crash.  Something does seem racy.  I've got a lot of repos configured - I wonder if that helps trigger it.
Comment 22 Orion Poplawski 2012-12-18 18:06:55 EST
Created attachment 665811 [details]
screenshot - pycurl.error: cannot invoke setopt() - perform() is currently running

Third try, yet a different traceback.
Comment 23 Zdeněk Pavlas 2012-12-19 04:45:42 EST
The traceback from c#22 suggests two threads are using the same curl_obj instance in urlgrabber module.  This module is not thread-safe.

Seems that most methods in YumPayload class use yum_lock to synchronize access to Yum internal state, but at yumpayload.py:487, self._yum.repos is touched directly.  This triggers opening *.repo files with urlgrabber.grabber.urlopen().
Comment 24 Zdeněk Pavlas 2012-12-19 08:27:43 EST
AIUI, Anaconda touches self._yum.repos from >1 thread.  It's a property that mostly just returns self._yum._repos (so it's thread-safe).  But on first run, the getter also parses repositories from yum.conf and (possibly remote) *.repo files (this uses urlgrabber and is not thread-safe).

The "1st run" check in Yum is racy.  http://lists.baseurl.org/pipermail/yum-devel/2012-December/009843.html kind of "fixes" this, but IMO Anaconda should make sure YumBase object is instantiated and initialized from 1 thread only.
Comment 25 Brian Lane 2012-12-19 12:12:20 EST
I've added _yum_lock to everyplace I can see us using self._yum, give this updates.img a try (against smoke8)

http://bcl.fedorapeople.org/updates/860022.img
Comment 26 Orion Poplawski 2012-12-19 12:59:21 EST
Works for me with TC3, thanks!
Comment 27 Adam Williamson 2012-12-19 13:04:15 EST
Discussed at 2012-12-19 blocker review meeting: http://meetbot.fedoraproject.org/fedora-bugzappers/2012-12-19/f18final-blocker-review-6.2012-12-19-17.02.log.txt . We are delaying the decision on blocker status as we're not sure how likely this is to hit people - it seems to be related to having a large number of repos, Orion, exactly how many do you have? - but we're at least agreed that it is NTH.
Comment 28 Orion Poplawski 2012-12-19 13:55:43 EST
base url + 8 additional repos
Comment 29 Adam Williamson 2012-12-21 17:07:54 EST
Discussed at 2012-12-21 blocker review meeting: http://meetbot.fedoraproject.org/fedora-bugzappers/2012-12-21/f18final-blocker-review-7.2012-12-21-18.33.log.txt . Agreed this doesn't seem to happen often enough to consider a blocker, but it's already accepted as NTH, and will be in next anaconda build.
Comment 30 Fedora Update System 2012-12-21 18:32:01 EST
dracut-024-17.git20121220.fc18, anaconda-18.37.7-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/FEDORA-2012-20838/dracut-024-17.git20121220.fc18,anaconda-18.37.7-1.fc18
Comment 31 Fedora Update System 2012-12-22 16:10:18 EST
Package dracut-024-17.git20121220.fc18, anaconda-18.37.8-1.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing dracut-024-17.git20121220.fc18 anaconda-18.37.8-1.fc18'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-20838/dracut-024-17.git20121220.fc18,anaconda-18.37.8-1.fc18
then log in and leave karma (feedback).
Comment 32 Fedora Update System 2013-01-02 16:48:47 EST
dracut-024-17.git20121220.fc18, anaconda-18.37.8-1.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

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