Summary: | emerge fails when source is fetched by cvs | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | José Romildo Malaquias <jrmalaq> |
Component: | Current packages | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | coredumb, leroutier, mdi, mrannanj, swtaylor, tove |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
José Romildo Malaquias
2004-03-31 10:17:06 UTC
When invoked by emerge, cvs is failing with an unknown host message. If I replace the name of the cvs server in the ebuild by its IP adress (found with the help of ping or the hostx program), emerge succeeds. So the question now is: why cvs can resolve the cvs server name when called in the command line, but fail to do so when called by emerge? The program noip2 from the package net-dns/noip-updater-2.0.15 is failling to resolve dynupdate.no-ip.com, although "hostx dynupdate.no-ip.com" and "ping dynupdate.no-ip.com" succeeds, as described in bug #41608. Maybe the issues are related. *** Bug 45426 has been marked as a duplicate of this bug. *** *** Bug 46879 has been marked as a duplicate of this bug. *** coredumb: any ideas if this is a portage or cvs.eclass break ? it's a portage break it works when going back to portage 2.0.50-r1 (no more in portage tree) but still using actual cvs.eclass unmodified portage -r1 works, -r3 doesn't. repeatable. This suggests sandbox. side-by-side strace -e trace=file without sandbox on left, with sandbox on right. These are the moments surrounding cvs within ebuild dying. Hopefully this will survive the cut-n-paste. The play-by-play as it appears to me: chdir to kismet/kismet-devel/libpcap-2002.12.23 is attempted in both situations. ENOENT is returned (directory doesn't exist). Side without sandbox performs three mkdir commands in order to create the directory that didn't exist, life is good. Sandbox side never lets these mkdir calls reach the system. CVS update fails. unlink("CVS/Entries.Static") = -1 ENOENT (No such file o unlink("CVS/Entries.Static") = -1 ENOENT (No such file o access("CVS/Entries.Log", F_OK) = -1 ENOENT (No such file o access("CVS/Entries.Log", F_OK) = -1 ENOENT (No such file o chdir("/usr/portage/distfiles/cvs-src") = 0 chdir("/usr/portage/distfiles/cvs-src") = 0 chdir("kismet/kismet-devel/libpcap-2002.12.23") = -1 ENOENT ( chdir("kismet/kismet-devel/libpcap-2002.12.23") = -1 ENOENT ( mkdir("kismet", 0777) = -1 EEXIST (File exists) | getcwd("/usr/portage/distfiles/cvs-src", 8192) = 31 mkdir("kismet/kismet-devel", 0777) = -1 EEXIST (File exists) | lstat64("/usr/portage/distfiles/cvs-src", {st_mode=S_IFDIR|S_ mkdir("kismet/kismet-devel/libpcap-2002.12.23", 0777) = 0 | lstat64("/usr/portage/distfiles/cvs-src/kismet", {st_mode=S_I access("kismet/kismet-devel/libpcap-2002.12.23/CVS", F_OK) = | access("kismet/CVS", F_OK) = 0 mkdir("kismet/kismet-devel/libpcap-2002.12.23/CVS", 0777) = 0 < open("kismet/kismet-devel/libpcap-2002.12.23/CVS/Root", O_RDW < fstat64(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 < open("kismet/kismet-devel/libpcap-2002.12.23/CVS/Repository", < fstat64(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 < open("kismet/kismet-devel/libpcap-2002.12.23/CVS/Entries", O_ < Ok, here's some really verbose logs by adding -t to the cvs command... /usr/portage/distfiles/cvs-src *is* being added to the "addwrite" call. The thing that jumps out at me is it doesn't seem to have trouble until it starts getting to directories that have a period in them. Could the "." be getting rejected by sandbox's mkdir check? #emerge kismet-cvs (stuff deleted) S-> Create_Admin (libpcap-2002.12.23, kismet/kismet-devel/libpcap-2002.12.23, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23, , , 0, 0) S-> unlink_file(libpcap-2002.12.23/CVS/Tag) -> unlink_file(CVS/Tag) -> ParseInfo(/home/dragorn/cvs/CVSROOT/rcsinfo, kismet/kismet-devel/libpcap-2002.12.23, ALL) S<- Create_Admin S-> unlink_file(libpcap-2002.12.23/CVS/Entries.Static) -> unlink_file(CVS/Entries.Static) S-> unlink_file(CVS/Tag) -> unlink_file(CVS/Tag) S-> Create_Admin (SUNOS4, kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, , , 0, 0) S-> unlink_file(SUNOS4/CVS/Tag) -> Create_Admin (., ., /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, , , 0, 1, 1) -> unlink_file(./CVS/Tag) <- Create_Admin -> unlink_file(CVS/Tag) -> rename(CVS/Entries.Backup,CVS/Entries) -> unlink_file(CVS/Entries.Log) -> ParseInfo(/home/dragorn/cvs/CVSROOT/rcsinfo, kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, ALL) S<- Create_Admin S-> unlink_file(SUNOS4/CVS/Entries.Static) -> unlink_file(CVS/Entries.Static) S-> unlink_file(CVS/Tag) -> unlink_file(CVS/Tag) S-> rename(CVS/Entries.Backup,CVS/Entries) S-> unlink_file(CVS/Entries.Log) S-> Create_Admin (Win32, kismet/kismet-devel/libpcap-2002.12.23/Win32, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/Win32, , , 0, 0) S-> unlink_file(Win32/CVS/Tag) cvs update: warning: server is not creating directories one at a time -> Create_Admin (kismet, kismet, /home/dragorn/cvs/kismet, , , 0, 0, 1) cvs [update aborted]: there is a version in kismet already -> Lock_Cleanup() !!! ERROR: net-wireless/kismet-cvs-2004.03.28 failed. !!! Function cvs_fetch, Line 327, Exitcode 1 !!! cvs update command failed #mkdir /usr/portage/distfiles/cvs-src/kismet/kismet-devel/libpcap-2002.12.23/Win32 #emerge kismet-cvs (stuff deleted) S-> unlink_file(libpcap-2002.12.23/CVS/Entries.Static) -> unlink_file(CVS/Entries.Static) S-> unlink_file(CVS/Tag) -> unlink_file(CVS/Tag) S-> Create_Admin (SUNOS4, kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, , , 0, 0) S-> unlink_file(SUNOS4/CVS/Tag) -> unlink_file(CVS/Tag) -> ParseInfo(/home/dragorn/cvs/CVSROOT/rcsinfo, kismet/kismet-devel/libpcap-2002.12.23/SUNOS4, ALL) S<- Create_Admin S-> unlink_file(SUNOS4/CVS/Entries.Static) -> unlink_file(CVS/Entries.Static) S-> unlink_file(CVS/Tag) -> unlink_file(CVS/Tag) S-> rename(CVS/Entries.Backup,CVS/Entries) S-> unlink_file(CVS/Entries.Log) S-> Create_Admin (Win32, kismet/kismet-devel/libpcap-2002.12.23/Win32, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/Win32, , , 0, 0) S-> unlink_file(Win32/CVS/Tag) -> Create_Admin (., ., /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/Win32, , , 0, 1, 1) -> unlink_file(./CVS/Tag) <- Create_Admin -> unlink_file(CVS/Tag) -> rename(CVS/Entries.Backup,CVS/Entries) -> unlink_file(CVS/Entries.Log) -> ParseInfo(/home/dragorn/cvs/CVSROOT/rcsinfo, kismet/kismet-devel/libpcap-2002.12.23/Win32, ALL) S<- Create_Admin S-> unlink_file(Win32/CVS/Entries.Static) -> unlink_file(CVS/Entries.Static) S-> unlink_file(CVS/Tag) -> unlink_file(CVS/Tag) S-> Create_Admin (Include, kismet/kismet-devel/libpcap-2002.12.23/Win32/Include, /home/dragorn/cvs/kismet/kismet-devel/libpcap-2002.12.23/Win32/Include, , , 0, 0) S-> unlink_file(Include/CVS/Tag) cvs update: warning: server is not creating directories one at a time -> Create_Admin (kismet, kismet, /home/dragorn/cvs/kismet, , , 0, 0, 1) cvs [update aborted]: there is a version in kismet already -> Lock_Cleanup() !!! ERROR: net-wireless/kismet-cvs-2004.03.28 failed. !!! Function cvs_fetch, Line 327, Exitcode 1 !!! cvs update command failed As the reporter of this bug, I am afraid that it is not the same as bugs #45426 and #46879. The problem I originally describe here seems to be related to domain name resolution, if you look closer at it. It also happens with portage-2.0.50-r1. This bug has been resolved with portage-2.0.50-r5. Fixed |