Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 421099

Summary: >=dev-vcs/git-1.7.10.2 has parallel build issues
Product: Gentoo Linux Reporter: Davide Pesavento <pesa>
Component: [OLD] DevelopmentAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: hasufell, robbat2
Priority: Normal Keywords: InVCS
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 445274, 705178    
Attachments: build.log

Description Davide Pesavento (RETIRED) gentoo-dev 2012-06-14 13:06:43 UTC
Lots of "file exists" warnings, such as:

ln: failed to create hard link '/var/tmp/portage/dev-vcs/git-1.7.10.2/temp/prepstrip/inodes/181540_lockfile': File exists

(which seem harmless), but also a few more serious "file truncated" ones:

x86_64-pc-linux-gnu-strip:/var/tmp/portage/dev-vcs/git-1.7.10.2/image/usr/libexec/git-core/git-check-attr: File truncated

(this happens when portage strips the binaries, after src_install).

All warnings disappear with MAKEOPTS=-j1
Comment 1 Davide Pesavento (RETIRED) gentoo-dev 2012-06-14 13:07:29 UTC
Created attachment 315301 [details]
build.log
Comment 2 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2012-08-23 05:26:21 UTC
Please retest on >=1.7.12-r1
Comment 3 Davide Pesavento (RETIRED) gentoo-dev 2012-08-23 06:22:57 UTC
Same in 1.7.12-r1, e.g.:

x86_64-pc-linux-gnu-strip:/var/tmp/portage/dev-vcs/git-1.7.12-r1/image/usr/libexec/git-core/git-status[.fini]: File truncated
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2012-08-23 20:22:45 UTC
portage:
in the prepstrip script, this line needs to have the error silenced:
if ! ln "${x}" "${lockfile}" ; then
Comment 5 Zac Medico gentoo-dev 2012-08-23 22:31:00 UTC
The "failed to create hard link" messages are expected but the "File truncated" messages look like a possible problem. Maybe this is due to a file being stripped at the same time that debugedit is editing the file. If so, then this should fix it:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=c74972c6b1e30232ab961f0206cdee81b7e4c5f5

(In reply to comment #4)
> portage:
> in the prepstrip script, this line needs to have the error silenced:
> if ! ln "${x}" "${lockfile}" ; then

Okay, that's included in the above commit.
Comment 6 Zac Medico gentoo-dev 2012-08-26 23:13:52 UTC
This is fixed in 2.1.11.12 and 2.2.0_alpha123.
Comment 7 Davide Pesavento (RETIRED) gentoo-dev 2012-11-04 02:15:07 UTC
Happens again with git-1.8.0-r1 and portage-2.2.0_alpha142

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line
   usr/bin/git-upload-archive
   usr/bin/git-receive-pack
   usr/bin/git
   usr/bin/git-shell
   usr/bin/git-upload-pack
[...]
   usr/libexec/git-core/git-reflog
   usr/libexec/git-core/git-mv
   usr/libexec/git-core/git-merge-base
x86_64-pc-linux-gnu-strip:/var/tmp/portage/dev-vcs/git-1.8.0-r1/image/usr/libexec/git-core/git-merge-base[.got.plt]: File truncated
   usr/libexec/git-core/git-mktree
   usr/libexec/git-core/git-fast-export
   usr/libexec/git-core/git-merge-tree
   usr/libexec/git-core/git-fsck
   usr/libexec/git-core/git-mktag
[...]
   usr/libexec/git-core/git-blame
   usr/libexec/git-core/git-archive
   usr/libexec/git-core/git-symbolic-ref
   usr/libexec/git-core/git-annotate
   usr/libexec/git-core/git-fmt-merge-msg
   usr/libexec/git-core/git-replace
   usr/libexec/git-core/git-upload-pack
   usr/libexec/git-core/git-fetch
x86_64-pc-linux-gnu-strip:/var/tmp/portage/dev-vcs/git-1.8.0-r1/image/usr/libexec/git-core/git-fetch: File truncated
   usr/libexec/git-core/git-pack-refs
   usr/libexec/git-core/git-format-patch
[...]
Comment 8 Zac Medico gentoo-dev 2012-11-04 22:28:05 UTC
*** Bug 441664 has been marked as a duplicate of this bug. ***
Comment 9 Zac Medico gentoo-dev 2012-11-04 23:59:46 UTC
The current prepstrip code assumes that the inode number of an executable remains constant when it is stripped, but it seems that's no longer working. So, my plan is to create one big directory of hardlinks prior to the parallel stripping, and operate on those in order to ensure that we only try to strip each executable once.
Comment 11 Zac Medico gentoo-dev 2012-11-29 23:52:54 UTC
This is fixed in 2.1.11.32 and 2.2.0_alpha143.