Failed build for: jfvelte - Galaxy S4 Value Edition (GT-I9515/L)

Today I got started with some other builds, using the /e Docker build system, which went fine.

But this one fails…

docker run \
-v “/home/make/e/src:/srv/src” \
-v “/home/make/e/zips:/srv/zips” \
-v “/home/make/e/logs:/srv/logs” \
-v “/home/make/e/ccache:/srv/ccache” \
-v “/home/make/e/keys:/srv/keys” \
-e “RELEASE_TYPE=UNOFFICIAL” \
-e “BRANCH_NAME=v1.16-r” \
-e “DEVICE_LIST=jfvelte” \
-e “REPO=https://gitlab.e.foundation/e/os/releases.git” \
-e “ANDROID_JACK_VM_ARGS=\
-Dfile.encoding=UTF-8 \
-XX:+TieredCompilation \
-Xmx12G” \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

There are builds online:
https://images.ecloud.global/dev/jfvelte/
e.g. [e-1.16-r-20231020343335-dev-jfvelte.zip]

But I’m getting this:

20:31:12 dumpvars failed with: exit status 1

** Don’t have a product spec for: ‘lineage_jfvelte’
** Do you have the right repo manifest?

No such item in brunch menu. Try ‘breakfast’

[Tue Oct 31 20:31:12 UTC 2023] Failed build for jfvelte
[Tue Oct 31 20:31:12 UTC 2023] Finishing build for jfvelte
[Tue Oct 31 20:31:12 UTC 2023] Cleaning source dir for device jfvelte
20:31:12 Entire build directory removed.

Anyone able to point me in the right direction, please?

Edit:
Just checked : https://gitlab.e.foundation/e/os/releases/-/blob/v1-r/.gitlab-ci.yml?ref_type=heads

trigger-build-r-dev:
extends: .trigger-build-dev
variables:
DEVICES: “a5y17lte a7y17lte addison ahannah albus bardock bardockpro cedric chiron d800 d801 d802 d803 d850 d851 d852 d855 dream2lte dreamlte ether f400 foster foster_tab FP2 ginkgo h830 h850 h910 h918 h990 hannah hlte hltechn hltekor hltetmo jactivelte jasmine_sprout jason jflteatt jfltespr jfltevzw jfltexx
jfvelte
klte klteactivexx klteaio kltechn kltechnduo klteduos kltedv kltekdi kltekor kuntao lavender lithium ls990 ls997 m20lte marlin montana obiwan oneplus3 platina porg porg_tab rhannah rs988 s3ve3gds s3ve3gjv s3ve3gxx sailfish scorpio shamu sirius star2lte starlte suzuran twolip us996 victara vs985 vs995 wayne whyred X00P X01AD X01BD x2 x86 YTX703F YTX703L z3 z3c zl1”
BUILD_BRANCH: “v1-r”

That error is sometimes an indication that your repo sync did not fully work: check logs\repo-xxxxx.log for anything that looks wrong

Thanks @petefoth

Missed errors for R repo, as I saw output from Q repo sync

[Tue Oct 31 20:43:20 UTC 2023] (Re)initializing branch repository

… A new version of repo (2.36) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

repo: reusing existing repo client checkout in /srv/src/R
Traceback (most recent call last):
File “/srv/src/R/.repo/repo/main.py”, line 896, in
_Main(sys.argv[1:])
File “/srv/src/R/.repo/repo/main.py”, line 861, in _Main
result = repo._Run(name, gopts, argv) or 0
File “/srv/src/R/.repo/repo/main.py”, line 293, in _Run
result = run()
File “/srv/src/R/.repo/repo/main.py”, line 276, in
run = lambda: self._RunLong(name, gopts, argv) or 0
File “/srv/src/R/.repo/repo/main.py”, line 450, in _RunLong
execute_command()
File “/srv/src/R/.repo/repo/main.py”, line 416, in execute_command
execute_command_helper()
File “/srv/src/R/.repo/repo/main.py”, line 382, in execute_command_helper
result = cmd.Execute(copts, cargs)
File “/srv/src/R/.repo/repo/subcmds/init.py”, line 387, in Execute
self._SyncManifest(opt)
File “/srv/src/R/.repo/repo/subcmds/init.py”, line 139, in _SyncManifest
if not self.manifest.manifestProject.Sync(
File “/srv/src/R/.repo/repo/project.py”, line 4457, in Sync
self.MetaBranchSwitch(submodules=submodules)
File “/srv/src/R/.repo/repo/project.py”, line 3914, in MetaBranchSwitch
self.Sync_LocalHalf(syncbuf, submodules=submodules)
File “/srv/src/R/.repo/repo/project.py”, line 1560, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File “/srv/src/R/.repo/repo/project.py”, line 3422, in _revlist
return self.work_git.rev_list(*a, **kw)
File “/srv/src/R/.repo/repo/project.py”, line 3653, in rev_list
p.Wait()
File “/srv/src/R/.repo/repo/git_command.py”, line 402, in Wait
raise GitCommandError(
git_command.GitCommandError: GitCommandError: git command failure
Project: manifests
Args: rev-list ^95c4aa92f908c7d10d789b0b408e7da740c9a9af HEAD –
Stdout:
None
Stderr:
fatal: detected dubious ownership in repository at ‘/srv/src/R/.repo/manifests’

[Tue Oct 31 20:43:21 UTC 2023] Syncing branch repository

… A new version of repo (2.36) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

fatal: GitCommandError: git command failure
Project: repo
Args: rev-list ^HEAD b99272c601bc5f466c3cfc782bb852c2c967ad27 –
Stdout:
None
Stderr:
fatal: detected dubious ownership in repository at ‘/srv/src/R/.repo/repo’

[Tue Oct 31 20:51:24 UTC 2023] (Re)initializing branch repository

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/Q/.repo/repo/repo /usr/local/bin/repo

repo has been initialized in /srv/src/Q

[Tue Oct 31 20:51:35 UTC 2023] Syncing branch repository

fatal: GitCommandError: git command failure
Project: repo
Args: rev-list ^HEAD b99272c601bc5f466c3cfc782bb852c2c967ad27 –
Stdout:
None
Stderr:
fatal: detected dubious ownership in repository at ‘/srv/src/R/.repo/repo’

Don’t get the ownership issue, as such. Is this the problem, have you seen this before?

This can be caused if you were previously running Docker as root, and you’re now running it as a non-root user. The ‘srv/src/R/.repo/repo is ‘owned’ by root

If you do ls -l srv/src/R/.repo you should see something like

drwxrwxrwx  2 pete pete     4096 Oct 22 09:23 local_manifests
drwxr-xr-x  3 pete pete     4096 Oct 13 07:46 manifests
drwxr-xr-x  8 pete pete     4096 Oct 20 12:46 manifests.git
-rw-r--r--  1 pete pete      500 Oct 13 07:46 manifest.xml
-rw-r--r--  1 pete pete    32499 Oct 20 12:46 project.list
drwxr-xr-x 14 pete pete     4096 Oct 20 12:27 project-objects
drwxr-xr-x 30 pete pete     4096 Jul 18 06:20 projects
drwxr-xr-x 11 pete pete     4096 Oct  8 19:53 repo
-rw-------  1 pete pete 71626325 Oct 20 12:46 TRACE_FILE

that shows the .repo directory is owned by me. Yours probably says somethinfg like
drwxr-xr-x 11 root root 4096 Oct 8 19:53 repo

You can fix it by using chown to change the ownership of that directory but there may be other files in the source tree owned by root which may or my not cause problems in future. The sure way of fixing is to blow away everything in your srv directory tree - which may take a while :slight_smile: and start again

Hmm, my setup is a bit different: minimal Ubuntu server 22.04 with Docker as snap.
Did not check that ever, but they are ‘owned’ by root and should be, as I run:

docker run -v “/home/make/e/src:/srv/src” …

I did 1.14, 1.15. 1.16 for jactivelte with no roblems:

Then I’m sorry I have no more ideas :frowning:

Except maybe rm -rf srv/src/R/.repo/repo and start again

Edit: only suggesting removing the .repo/repo directory (which is a clone of the repo git repo (too many 'repo’s in this post :slight_smile: )

1 Like

I have little idea … but as a git error, not repo error … I would just check if it is repeatable before destroying your sources.

No worries, I got that :wink:
But yes, it repeats… 4× since yesterday…

Same ole, same ole…
I’ll take the hit and blast the entire R folder and torture my internet connection for +24h :thinking:

@aibd gave it another go, before resorting to drastic measures…
Don’t have a clue, but it’s almost done with the build now

Device s5neolte not found. ==> Found repository: android_device_samsung_s5neolte

[Wed Nov 1 19:43:50 UTC 2023] Starting build for s5neolte, v1.16-r branch
19:43:55 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
e[1mbuild/make/core/product_config.mk:155: e[31merror: e[0me[1mCan not locate config makefile for product “lineage_s5neolte”.e[0m
19:43:55 dumpvars failed with: exit status 1

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

warning: Partial syncs are not supported. For the best experience, sync the entire tree.
repo sync has finished successfully.

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

warning: Partial syncs are not supported. For the best experience, sync the entire tree.
repo sync has finished successfully.

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

Updating files: 30% (14532/48208)
Updating files: 31% (14945/48208)
Updating files: 32% (15427/48208)
Updating files: 33% (15909/48208)
Updating files: 34% (16391/48208)
Updating files: 35% (16873/48208)
Updating files: 36% (17355/48208)
Updating files: 37% (17837/48208)
Updating files: 38% (18320/48208)
Updating files: 39% (18802/48208)
Updating files: 40% (19284/48208)
Updating files: 41% (19766/48208)
Updating files: 42% (20248/48208)
Updating files: 43% (20730/48208)
Updating files: 44% (21212/48208)
Updating files: 45% (21694/48208)
Updating files: 46% (22176/48208)
Updating files: 47% (22658/48208)
Updating files: 48% (23140/48208)
Updating files: 49% (23622/48208)
Updating files: 50% (24104/48208)
Updating files: 51% (24587/48208)
Updating files: 52% (25069/48208)
Updating files: 53% (25551/48208)
Updating files: 53% (25629/48208)
Updating files: 54% (26033/48208)
Updating files: 55% (26515/48208)
Updating files: 56% (26997/48208)
Updating files: 57% (27479/48208)
Updating files: 58% (27961/48208)
Updating files: 59% (28443/48208)
Updating files: 60% (28925/48208)
Updating files: 61% (29407/48208)
Updating files: 62% (29889/48208)
Updating files: 63% (30372/48208)
Updating files: 64% (30854/48208)
Updating files: 65% (31336/48208)
Updating files: 66% (31818/48208)
Updating files: 67% (32300/48208)
Updating files: 68% (32782/48208)
Updating files: 69% (33264/48208)
Updating files: 69% (33631/48208)
Updating files: 70% (33746/48208)
Updating files: 71% (34228/48208)
Updating files: 72% (34710/48208)
Updating files: 73% (35192/48208)
Updating files: 74% (35674/48208)
Updating files: 75% (36156/48208)
Updating files: 76% (36639/48208)
Updating files: 77% (37121/48208)
Updating files: 78% (37603/48208)
Updating files: 79% (38085/48208)
Updating files: 80% (38567/48208)
Updating files: 81% (39049/48208)
Updating files: 82% (39531/48208)
Updating files: 83% (40013/48208)
Updating files: 84% (40495/48208)
Updating files: 85% (40977/48208)
Updating files: 86% (41459/48208)
Updating files: 87% (41941/48208)
Updating files: 88% (42424/48208)
Updating files: 89% (42906/48208)
Updating files: 90% (43388/48208)
Updating files: 90% (43615/48208)
Updating files: 91% (43870/48208)
Updating files: 92% (44352/48208)
Updating files: 93% (44834/48208)
Updating files: 94% (45316/48208)
Updating files: 95% (45798/48208)
Updating files: 96% (46280/48208)
Updating files: 97% (46762/48208)
Updating files: 98% (47244/48208)
Updating files: 99% (47726/48208)
Updating files: 100% (48208/48208)
Updating files: 100% (48208/48208), done.
warning: Partial syncs are not supported. For the best experience, sync the entire tree.
repo sync has finished successfully.
Device s5neolte not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Found repository: android_device_samsung_s5neolte
Default revision: lineage-18.1
Checking branch info
Checking if device/samsung/s5neolte is fetched from android_device_samsung_s5neolte
Adding dependency: LineageOS/android_device_samsung_s5neolte → device/samsung/s5neolte
Using default branch for android_device_samsung_s5neolte
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies in device/samsung/s5neolte
Adding dependencies to manifest
Checking if device/samsung/universal7580-common is fetched from android_device_samsung_universal7580-common
Adding dependency: LineageOS/android_device_samsung_universal7580-common → device/samsung/universal7580-common
Using default branch for android_device_samsung_universal7580-common
Syncing dependencies
Looking for dependencies in device/samsung/universal7580-common
Adding dependencies to manifest
Checking if hardware/samsung is fetched from android_hardware_samsung
Adding dependency: LineageOS/android_hardware_samsung → hardware/samsung
Using default branch for android_hardware_samsung
Checking if hardware/samsung/nfc is fetched from android_hardware_samsung_nfc
Adding dependency: LineageOS/android_hardware_samsung_nfc → hardware/samsung/nfc
Using default branch for android_hardware_samsung_nfc
Checking if hardware/samsung_slsi/exynos is fetched from android_hardware_samsung_slsi_exynos
Adding dependency: LineageOS/android_hardware_samsung_slsi_exynos → hardware/samsung_slsi/exynos
Using default branch for android_hardware_samsung_slsi_exynos
Checking if hardware/samsung_slsi/exynos5 is fetched from android_hardware_samsung_slsi_exynos5
Adding dependency: LineageOS/android_hardware_samsung_slsi_exynos5 → hardware/samsung_slsi/exynos5
Using default branch for android_hardware_samsung_slsi_exynos5
Checking if hardware/samsung_slsi/exynos7580 is fetched from android_hardware_samsung_slsi_exynos7580
Adding dependency: LineageOS/android_hardware_samsung_slsi_exynos7580 → hardware/samsung_slsi/exynos7580
Using default branch for android_hardware_samsung_slsi_exynos7580
Checking if hardware/samsung_slsi/openmax is fetched from android_hardware_samsung_slsi_openmax
Adding dependency: LineageOS/android_hardware_samsung_slsi_openmax → hardware/samsung_slsi/openmax
Using default branch for android_hardware_samsung_slsi_openmax
Checking if kernel/samsung/universal7580 is fetched from android_kernel_samsung_universal7580
Adding dependency: LineageOS/android_kernel_samsung_universal7580 → kernel/samsung/universal7580
Using default branch for android_kernel_samsung_universal7580
Syncing dependencies
Looking for dependencies in hardware/samsung
hardware/samsung has no additional dependencies.
Looking for dependencies in hardware/samsung/nfc
hardware/samsung/nfc has no additional dependencies.
Looking for dependencies in hardware/samsung_slsi/exynos
hardware/samsung_slsi/exynos has no additional dependencies.
Looking for dependencies in hardware/samsung_slsi/exynos5
hardware/samsung_slsi/exynos5 has no additional dependencies.
Looking for dependencies in hardware/samsung_slsi/exynos7580
hardware/samsung_slsi/exynos7580 has no additional dependencies.
Looking for dependencies in hardware/samsung_slsi/openmax
hardware/samsung_slsi/openmax has no additional dependencies.
Looking for dependencies in kernel/samsung/universal7580
kernel/samsung/universal7580 has no additional dependencies.
Done
19:48:50 Build sandboxing disabled due to nsjail error.
19:48:51 Build sandboxing disabled due to nsjail error.

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
LINEAGE_VERSION=1.16""-r-20231101-make-nz@UNOFFICIAL-s5neolte
TARGET_PRODUCT=lineage_s5neolte
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.15.0-88-generic-x86_64-Ubuntu-20.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RQ3A.211001.001
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=vendor/samsung/universal7580-common vendor/samsung/s5neolte device/samsung/universal7580-common packages/apps/Bluetooth
WITH_SU=false

19:48:53 Build sandboxing disabled due to nsjail error.

PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
LINEAGE_VERSION=1.16""-r-20231101-make-nz@UNOFFICIAL-s5neolte
TARGET_PRODUCT=lineage_s5neolte
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.15.0-88-generic-x86_64-Ubuntu-20.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RQ3A.211001.001
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=vendor/samsung/universal7580-common vendor/samsung/s5neolte device/samsung/universal7580-common packages/apps/Bluetooth
WITH_SU=false

[100% 1/1] out/soong/.minibootstrap/minibp out/soong/.bootstrap/build.ninja
[ 1% 2/182] compile out/soong/.bootstrap/soong-shared/pkg/android/soong/shared.a

There was this — a hint?:

warning: Partial syncs are not supported.
For the best experience, sync the entire tree.
repo sync has finished successfully.

the procedual nature of that script at the “repo sync” stage is a great cause of many errors down the line.

Not a fan, but good intro tool.

This build for s5neolte also did not work earlier and now it did.
I will try

jfvelte
again, when this build ist done.

I would be inclined to spend some time investigating the git error, I searched

fatal: GitCommandError: git command failure detected in repository + repo
fatal: GitCommandError: git command failure detected dubious ownership in repository + repo

Docker makes sophisticated use of git and I would be surprised if this was really a docker error, but I would fully check if it is something local in your machine.

I speculate that a git “dubious ownership” issue might cause a failure of perhaps random bits of repo sync – as I believe is also perhaps indicated by:

@tcecyk
How do I know, whether I got a partial or a full tree now?

Any docker way to check, or so?

This is as minimal, as a minimal Ubuntu server can be.
This is pretty much all I did — from my history:

sudo snap install core snapd
snap info docker
sudo snap install docker
sudo reboot now
htop
sudo docker pull registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

So I see a big typo in the subject I am flagging up. I meant

fatal: GitCommandError: git command failure detected dubious ownership in repository + repo

Was referring to git configuration in your machine … but I have to say that I had a prejudiced shudder when I saw docker inside snap. :smile:

Also just throwing in … for me in Debian

Build sandboxing disabled due to nsjail error.

was a kernel unprivileged user namespaces issue.

repo (instrumenting git) is encountering some git repo state - https://gerrit.googlesource.com/git-repo/+/refs/heads/main/subcmds/sync.py#1847 → see whatever it goes true on def IsPartiallySynced(self) → _LAST_CHECKOUT. Looks like the git repos checkout state is different to what it expects on (after a branch / tag change?)

if you have the bandwidth, or access to good bandwidth and 1TB to spare, create a full aosp / lineage mirror and spawn builds from there.

Meaning to write a howto on this, it’s a great pattern if you build for more than 2-3 devices

Yes, this is the only major thing I did. I started a T build, but ran out of disk space, when building.
I then just deleted the T dir, to free up space again for R builds.

Then I also just wanted to see, if I could still build some Q, but it also failed with not finding the “product spec”, so I just deleted the Q dir, too.

Too messy?

I just did:

docker pull registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

Again errors for jfvelte

[Wed Nov 1 23:43:21 UTC 2023] Starting build for jfvelte, v1.15-r branch
23:43:26 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
23:43:26 dumpvars failed with: exit status 1
File “/usr/local/bin/repo”, line 1292
comment_line = re.compile(rb"^ *#")
^
SyntaxError: invalid syntax
Device jfvelte not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Found repository: android_device_samsung_jfvelte
Default revision: lineage-18.1
Checking branch info
Checking if device/samsung/jfvelte is fetched from android_device_samsung_jfvelte
Adding dependency: LineageOS/android_device_samsung_jfvelte → device/samsung/jfvelte
Using default branch for android_device_samsung_jfvelte
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies in device/samsung/jfvelte
device/samsung/jfvelte has no additional dependencies.
Done
23:43:27 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
23:43:27 dumpvars failed with: exit status 1
23:43:28 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
23:43:28 dumpvars failed with: exit status 1

** Don’t have a product spec for: ‘lineage_jfvelte’
** Do you have the right repo manifest?

No such item in brunch menu. Try ‘breakfast’

[Wed Nov 1 23:43:28 UTC 2023] Failed build for jfvelte
[Wed Nov 1 23:43:28 UTC 2023] Finishing build for jfvelte
[Wed Nov 1 23:43:28 UTC 2023] Cleaning source dir for device jfvelte
23:43:28 Entire build directory removed.

build completed successfully (1 seconds)

Neither nor, my Ubuntu-Server is a older Dell Workstation I have at home!

But happy to read your HowTo!

On a server I find snaps to be pretty solid.
And I wanted to it as minimal as can be and also perhaps write a beginers howto…