[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#774614: jenkins.d.n: apt debug options for chroot-installation jobs



Package: qa.debian.org
Severity: wishlist
Control: user qa.debian.org@packages.debian.org
Control: usertag -1 jenkins

Hi,

first of all, thanks for all these chroot jobs, they are quiet handy. :)

That said, I wonder if they would be even more useful if we could enable
a bunch of debug options for apt. Failures like [0] are e.g. hard to reason
about as-is as the info shown is about stuff which remained broken even
after trying hard, while information about what was tried would be nice
and probably more helpful to identify and fix the (initial) problem.
The totally untested attached diff adds an array of those, which all just
print (many) many lines on stderr (well, actually stdlog) but do not
modify behaviour otherwise.

There are others which could be interesting like showing how dpkg is
called ( -o Debug::pkgDpkgPm=true ) and newer tricks like not
downloading deb files ( -o Debug::pkgAcqArchive::NoQueue=true ), but
they modify behaviour and would therefore need other changes and I am
not sure if that would actually be worthed it, so just noting in case
you want to dig deeper.


Related, it might be interesting to store the /var/lib/dpkg/status file
at various steps in the job (if that is even possible with jenkins).
Setting up (especially the bigger cases) takes quiet a bit of time and
traffic, while to reproduce some problems, all you need is the status
file and "-o dir::state::status=/path/to/file -s".

And while talking about reproducibility, a strategic
grep -H '^Date:' /var/lib/apt/lists/*Release*
after 'apt-get update's might help in figuring out what to tell
snapshot.d.o to get the exact same data as used in the job.


Best regards

David Kalnischkies

[0] https://jenkins.debian.net/job/chroot-installation_wheezy_install_developer_upgrade_to_jessie_aptdpkg_first/5/console
diff --git a/bin/chroot-installation.sh b/bin/chroot-installation.sh
index 9e154e5..76e6df4 100755
--- a/bin/chroot-installation.sh
+++ b/bin/chroot-installation.sh
@@ -51,6 +51,14 @@ mount /proc -t proc /proc
 echo -e '#!/bin/sh\nexit 101' > /usr/sbin/policy-rc.d
 chmod +x /usr/sbin/policy-rc.d
 echo 'Acquire::http::Proxy "http://localhost:3128";;' > /etc/apt/apt.conf.d/80proxy
+cat > /etc/apt/apt.conf.d/80debug << APTEOF
+# solution calculation
+Debug::pkgDepCache::Marker "true";
+Debug::pkgDepCache::AutoInstall "true";
+Debug::pkgProblemResolver "true";
+# installation order
+Debug::pkgPackageManager "true";
+APTEOF
 echo "deb-src $MIRROR $1 main" >> /etc/apt/sources.list
 apt-get update
 set +x

Attachment: signature.asc
Description: Digital signature


Reply to: