BLAG

BLAG Forums
It is currently Sat Dec 20, 2014 12:22 pm

All times are UTC




Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2
Author Message
 Post subject:
PostPosted: Fri Jan 25, 2008 6:38 pm 
Offline

Joined: Fri Nov 18, 2005 3:07 am
Posts: 699
Is anaconda running on the newest kernel? or is the new kernel just what's being installed.

Kernel 2.6.24 is out so it will be interesting to see if it's still there.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 27, 2008 6:26 am 
Offline
Site Admin

Joined: Sun Mar 14, 2004 3:17 pm
Posts: 4492
Location: Loveland, Colorado, USA
Code:
Linux blag80k64.blagblagblag.org 2.6.24-0blag.f8 #1 SMP Sat Jan 26 22:33:39 EST 2008 x86_64 x86_64 x86_64 GNU/Linux


This is the "cleaned source"/deblobbed kernel available at:
ftp://ftp.blagblagblag.org/pub/BLAG/lin ... 6/TESTING/


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 27, 2008 10:44 am 
Offline
Site Admin

Joined: Sun Mar 14, 2004 3:17 pm
Posts: 4492
Location: Loveland, Colorado, USA
iron_chef wrote:
This bit right here is where it hangs:
Code:
  self.loopbackFile = "%s%s%s" % (chroot,
           fsset.filesystemSpace(chroot)[0][0],
           "/rhinstall-stage2.img")

   try:
     win = self.waitWindow (_("Copying File"),
                     _("Transferring install image to hard drive..."))
     shutil.copyfile("%s/images/stage2.img" % (self.tree,),
                   self.loopbackFile)
     win.pop()


The 'shutil.copyfile()' call is executing, but it goes off into the weeds and never finishes. The win.pop() line is what makes the pop-up message window disappear, which never happens. shutil.copyfile() is copying the file stage2.img from the mounted CD (at /mnt/source) to the newly formatted root partition (mounted at /mnt/sysimage) as rhinstall-stage2.img. stage2.img is a squashfs'ed filesystem that is also loop-mounted at /mnt/runtime, and that's where anaconda is running from.
Anaconda actually finishes the file copy (if you get to a shell and look at /mnt/sysimage/rhinstall-stage2.img, you can even see that it's the same size as stage2.img. But it just never finishes. Running ps -ax from a shell shows that the anaconda processes is in the "D" state, or uninterruptable sleep, which should never ever happen unless the kernel screws something up.


From 70k's python-2.5-15.fc7 Python-2.5/Lib/shutil.py:

Code:
def copyfile(src, dst):
    """Copy data from src to dst"""
    if _samefile(src, dst):
        raise Error, "`%s` and `%s` are the same file" % (src, dst)

    fsrc = None
    fdst = None
    try:
        fsrc = open(src, 'rb')
        fdst = open(dst, 'wb')
        copyfileobj(fsrc, fdst)
    finally:
        if fdst:
            fdst.close()
        if fsrc:
            fsrc.close()


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 27, 2008 7:30 pm 
Offline

Joined: Thu Sep 28, 2006 5:41 pm
Posts: 68
Location: Idaho, USA
jebba wrote:
From 70k's python-2.5-15.fc7 Python-2.5/Lib/shutil.py:

Code:
def copyfile(src, dst):
    """Copy data from src to dst"""
    if _samefile(src, dst):
        raise Error, "`%s` and `%s` are the same file" % (src, dst)

    fsrc = None
    fdst = None
    try:
        fsrc = open(src, 'rb')
        fdst = open(dst, 'wb')
        copyfileobj(fsrc, fdst)
    finally:
        if fdst:
            fdst.close()
        if fsrc:
            fsrc.close()


I've looked into that before. It's pretty straightforward, just basic built-in python calls. I've even ripped the call to shutil.copyfile() out and replaced it, in anaconda, with the lower-level os.open() calls in order to tweak some of the file descriptor flags. That didn't work either.
It's interesting that there's no except: clause in that function. The finally: section gets run no matter what happens in the try: section, even if there's exceptions thrown. Maybe something's happening and it's not getting caught?
Also, if you look at the code for copyfileobj():

Code:
def copyfileobj(fsrc, fdst, length=16*1024):
    """copy data from file-like object fsrc to file-like object fdst"""
    while 1:
        buf = fsrc.read(length)
        if not buf:
            break
        fdst.write(buf)

you can see where it's getting into the infinite loop. I guess what's happening is that the built-in read() call isn't returning an EOF when there's no more data. It's just blocking forever, thus it never breaks out of the while loop. Interesting. Well, frustrating mostly, but still interesting... :)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 27, 2008 8:27 pm 
Offline
Site Admin

Joined: Sun Mar 14, 2004 3:17 pm
Posts: 4492
Location: Loveland, Colorado, USA
I tried to md5sum the rhinstall-stage2.img (from HD) and stage2.img (from CD) on vt2 during the hang. I was able to md5sum the former fine, but not the latter. In fact, I couldn't md5sum the latter on my laptop either--that command is hanging in a terminal right now. So don't think it's anaconda. I think we have something related to the loopback device or perhaps corrupt ISOs. The fact that it builds fine and works with 2.6.22 but not 2.6.23 or 2.6.24 tells us quite a bit. In sum, I dont think we're going to solve this by poking at anaconda and/or python. Perhaps rebuilding `mkisofs` (cdrkit) and such would do the trick.... I'm not sure, but I think we need to head in that direction.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group