Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 135051
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Gentoo Catalyst Developers <catalyst@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Joshua Kinard <kumba@gentoo.org>
Add CC:
CC:
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
cat2-fix-seedcache.patch Rewrite SEEDCACHE extraction logic patch Joshua Kinard 2006-05-31 08:23 0000 1.97 KB Details | Diff
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 135051 depends on: Show dependency tree
Bug 135051 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2006-05-31 08:22 0000
Logic in modules/generic_stage_target.py:575 attempts to deduce if both
SEEDCACHE is defined in the catalyst config AND if the source_path is a
directory.  If both are true, then it is supposed to rsync the stage1root
directory over as the stage2 build directory.  If false, it attempts to run a
tar extraction.

In the event SEEDCACHE is not defined, but stage1root exists, catalyst
inadvertently tries to run a tar extraction on a directory, which bombs most
fantastically.  Example:

Using seed-stage from
/usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/
Delete this folder if you wish to use a seed stage tarball instead

The autoresume path is
/usr/catalyst/tmp/default/.autoresume-stage2-mips3-2006.1-pre/
Location of the package cache is
/usr/catalyst/packages/default/stage2-mips3-2006.1-pre/
Location of the kerncache is
/usr/catalyst/kerncache/default/stage2-mips3-2006.1-pre/
Checking for processes running in chroot and killing them.
Running action sequence: unpack

Starting tar extract from
/usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/
to /usr/catalyst/tmp/default/stage2-mips3-2006.1-pre/ (This may take some time)
...

tar: /usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/: Cannot
read: Is a directory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now

bzip2: Compressed file ends unexpectedly;
        perhaps it is corrupted?  *Possible* reason follows.
bzip2: Invalid argument
        Input file = (stdin), output file = (stdout)

[snip]


To resolve this, a patch is attached the re-writes the logic of this
conditional block as such (abbreviated hacky C logic):

if has_key(SEEDCACHE) {

------- Comment #1 From Joshua Kinard 2006-05-31 08:22:30 0000 -------
Logic in modules/generic_stage_target.py:575 attempts to deduce if both
SEEDCACHE is defined in the catalyst config AND if the source_path is a
directory.  If both are true, then it is supposed to rsync the stage1root
directory over as the stage2 build directory.  If false, it attempts to run a
tar extraction.

In the event SEEDCACHE is not defined, but stage1root exists, catalyst
inadvertently tries to run a tar extraction on a directory, which bombs most
fantastically.  Example:

Using seed-stage from
/usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/
Delete this folder if you wish to use a seed stage tarball instead

The autoresume path is
/usr/catalyst/tmp/default/.autoresume-stage2-mips3-2006.1-pre/
Location of the package cache is
/usr/catalyst/packages/default/stage2-mips3-2006.1-pre/
Location of the kerncache is
/usr/catalyst/kerncache/default/stage2-mips3-2006.1-pre/
Checking for processes running in chroot and killing them.
Running action sequence: unpack

Starting tar extract from
/usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/
to /usr/catalyst/tmp/default/stage2-mips3-2006.1-pre/ (This may take some time)
...

tar: /usr/catalyst/tmp/default/stage1-mips3-2006.1-pre/tmp/stage1root/: Cannot
read: Is a directory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now

bzip2: Compressed file ends unexpectedly;
        perhaps it is corrupted?  *Possible* reason follows.
bzip2: Invalid argument
        Input file = (stdin), output file = (stdout)

[snip]


To resolve this, a patch is attached the re-writes the logic of this
conditional block as such (abbreviated hacky C logic):

if has_key(SEEDCACHE) {
··· if isdir(source_path) {
······ /* Directory exists, use rsync */
······ run rsync();
··· } else {
······ /* Directory does not exist, or is not a
······ ** directory.  Attempt tar extract instead
······ **/
······ run tar_extract();
··· }
} else {
··· /* No SEEDCACHE, extract tarball */
··· run tar_extract();
}

------- Comment #2 From Joshua Kinard 2006-05-31 08:23:23 0000 -------
Created an attachment (id=87988) [details]
Rewrite SEEDCACHE extraction logic

------- Comment #3 From Chris Gianelloni (RETIRED) 2006-06-08 14:27:09 0000 -------
I've added this to CVS

------- Comment #4 From Chris Gianelloni (RETIRED) 2006-06-08 17:48:19 0000 -------
Fixed in 2.0_rc47

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug