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

Bug 828660

Summary: net-analyzer/telegraf-1.20.4: emerge fails to run clean
Product: Gentoo Linux Reporter: Angus K <angusfk>
Component: Current packagesAssignee: William Hubbs <williamh>
Status: RESOLVED FIXED    
Severity: normal CC: mg.gbz, sam
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: telegraf 1.20.4 ebuild local repo

Description Angus K 2021-12-10 05:15:28 UTC
Created attachment 757870 [details]
telegraf 1.20.4 ebuild local repo

Hello,

I'm trying to write a simple ebuild to bump to a newer version of telegraf (attached), and following go-module (using older versions as a guide) I'm having a problem emerging it.

Manifest runs fine, but when trying to emerge, Portage is dying during the clean phase, with no logs or debug information outside of:

-----
[Errno 7] Argument list too long: b'/usr/bin/python3.9':
   /bin/bash -c /usr/lib/portage/python3.9/ebuild.sh clean
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/portage/process.py", line 421, in spawn
    _exec(
  File "/usr/lib/python3.9/site-packages/portage/process.py", line 784, in _exec
    os.execve(binary, myargs, env)
  File "/usr/lib/python3.9/site-packages/portage/__init__.py", line 282, in __call__
    rval = self._func(*wrapped_args, **wrapped_kwargs)
OSError: [Errno 7] Argument list too long: b'/usr/bin/python3.9'
[Errno 7] Argument list too long: b'/usr/bin/python3.9':
   /bin/bash -c /usr/lib/portage/python3.9/ebuild.sh clean
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/portage/process.py", line 421, in spawn
    _exec(
  File "/usr/lib/python3.9/site-packages/portage/process.py", line 865, in _exec
    os.execve(binary, myargs, env)
  File "/usr/lib/python3.9/site-packages/portage/__init__.py", line 282, in __call__
    rval = self._func(*wrapped_args, **wrapped_kwargs)
OSError: [Errno 7] Argument list too long: b'/usr/bin/python3.9'
 * The ebuild phase 'die_hooks' has been aborted since PORTAGE_BUILDDIR
 * does not exist: '/var/tmp/portage/net-analyzer/telegraf-1.20.4'
-----

I suspect that this is due to the sheer ridiculous size of the EGO_SUM portion, which matches upstream in Telegraf, but outside of hacking Portage to give me more information I'm not sure how to proceed.

Would love to know if there's a hidden limitation I'm bumping into with go-module?

Thanks!
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-12-10 05:31:42 UTC
What exactly are you running when this happens by the way?
Comment 2 Angus K 2021-12-10 11:45:16 UTC
This is when trying to emerge the package after repoman manifest has fork through and checked the Go modules.
Stock standard "emerge -v '=net-analyzer/telegraf-1.20.4'", using the ebuild provided in a local repo since the new version isn't upstream yet.
Comment 3 Michal G 2022-01-09 20:29:02 UTC
Tried something similar today (bumping telegraf locally to the latest version) and ran into the same problem. Except that even "ebuild telegraf-1.21.2.ebuild digest" failed with bunch of "Argument list too long" errors and didn't generate Manifest.

I guess the core cause is that "A" variable gets enormously large thanks to 3000+ EGO_SUM entries (which is, yea, ridiculous), and then portage fails to start subprocesses cause Linux has 128kB size limit on a single environment variable.

See bug 719202 that spun some other discussions and patches (bug 721088, bug 720180), but unfortunately no resolution yet.
Comment 4 William Hubbs gentoo-dev 2023-06-10 23:18:17 UTC
The latest version is now in the tree.
The fix for the issue with EGO_SUM currently is to use a dependency
tarball (see the info in the eclass).