Re: poudriere gives [ERROR] Unhandled error! lately

From: John Kennedy <warlock_at_phouka.net>
Date: Mon, 18 Aug 2025 20:18:17 UTC
On Mon, Aug 18, 2025 at 10:57:53AM +0200, mike new wrote:
> Hi,
> 
> trying to build a port using poudriere doesn't work an longer for me > (FreeBSD 14.2 and also 14.3)
> for example:

  I just rebuilt a relatively smallish number this morning on 14.3/stable without any issues.

> ...
> [00:00:02] Debug: Package fetch: Skipping
> gobject-introspection-bootstrap-1.84.0,1: have package
> [00:00:02] Debug: Package fetch: Skipping glib-bootstrap-2.84.1_3,2: have
> package
> Updating FreeBSD repository catalogue...
> [14:amd64-default] Fetching meta.conf: 100%    179 B  0.2kB/s    00:01
> [14:amd64-default] Fetching data.pkg: 100%   10 MiB  10.5MB/s   00:01
> Processing entries: 100%
> FreeBSD repository update completed. 36206 packages processed.
> FreeBSD is up to date.
> [ERROR] Unhandled error!
> [00:00:06] Cleaning up
> [00:00:06] Unmounting file systems
> Exiting with status 1
> ...

  The only time I've seen that recently was on BSD15 when a missing library was messing up cpdup,
but I was able to see a "why" inline with the rest of the poudriere output.  I guess my generic
guess might be that your current base-world is causing an issue with your current poudriere binary
which can be an interesting chicken-vs-egg situation.

> Currently I have FreeBSD 14.3 on ZFS:
> 
> # uname -a
> FreeBSD r1 14.3-RELEASE FreeBSD 14.3-RELEASE
> releng/14.3-n271432-8c9ce319fef7 GENERIC amd64

  It doesn't look like you're set WITHOUT_REPRODUCIBLE_BUILD, so I'm not sure that I can trust
anything I see there literally.  My advice:

    make sure the environment inside the jail (that build your poudriere) matches the
	environment that poudriere is running in.  If they're not close enough, you
	could run into issues like that.
    make sure you don't have something weird going on with ports that you haven't described.
	I do a git pull into /usr/ports and that is what my jail is based on, but if you're
	tracking quarterly branches and recently switched (as an examnple), maybe similar issues.

  When I do my initial bootstrap on a fresh install, I often just pull down enough to do a poudriere
build, rebuild and install those, then build everything else I need.

  I'm on stable (with ZFS), of course, but should make me more prone to breakage than a -RELEASE.

$ uname -aUK
	FreeBSD bsd76 14.3-STABLE FreeBSD 14.3-STABLE #102 stable/14-n272195-8b26c76a6d41: Sun Aug 17 13:25:33 PDT 2025     warlock@bsd76:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 1403504 1403504

> # poudriere jail -i -j 14:amd64
> Jail name:         14:amd64
> Jail version:      14.3-RELEASE-p1
> Jail arch:         amd64
> Jail method:       http
> Jail mount:        /P/jails/14_amd64
> Jail fs:           zr1/P/jails/14:amd64
> Jail updated:      2025-08-04 11:18:26
> Jail pkgbase:      disabled

  You're using the "http" jail method there.  Not sure what version you're getting there, vs what
you're running.  AFAIK, that is 14.3-RELEASE-p2 now, which I'd normally expect to see in your uname
output but might be masked by reproducible builds.  But that might be one way that reality could get
out of sync.  Normally, poudriere would see a kernel change like that, throw out all your existing
packages and make you rebuild them all.  In my case, I'm pulling from the kernel source of what I've
most recently build and should be running, so they stay in sync.

$ poudriere jail -i -j 14
	Jail name:         14
	Jail version:      14.3-STABLE 1403504
	Jail arch:         amd64
	Jail method:       src=/usr/src
	Jail mount:        /usr/local/poudriere/jails/14
	Jail fs:           zroot/poudriere/jails/14
	Jail updated:      2025-08-17 13:49:26
	Jail pkgbase:      disabled

> # poudriere ports -l
> PORTSTREE METHOD TIMESTAMP           PATH
> default   null   2021-02-09 17:16:00 /usr/ports

$ poudriere ports -l
	PORTSTREE METHOD TIMESTAMP           PATH
	master    null   2024-12-08 20:05:15 /usr/ports