portmaster 3.13.13 real endless loop "Waiting on fetch &
checksum..."
Michael Ranner
michael at ranner.eu
Sat Aug 11 13:35:50 UTC 2012
Ok, I have debugged the subshell:
I replaced the pm_make for "make -DBATCH checksum" with an pm_make2
function:
...
pm_make2 () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l
PM_URB_LIST;
echo "XXX5" >/tmp/xxx5
pwd >>/tmp/xxx5
echo "/usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*" >>/tmp/xxx5
/usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; echo "XXX6"
>/tmp/xxx6 ); }
...
echo "XXX1" >/tmp/xxx1
(echo "XXX2" >/tmp/xxx2; pm_make2 -DBATCH checksum >>
$fetchlog 2>&1 && echo "XXX3" >/tmp/xxx3 && {
echo "XXX4" >/tmp/xxx4
rm -f ${TMPDIR}/f-${PM_PARENT_PID}-*-${portdir#*/}.*;
exit 0; }
allfiles=`pm_make -V ALLFILES`
pm_make delete-distfiles RESTRICTED_FILES="${allfiles}" \
>> $fetchlog 2>&1 &&
echo "===>>> RE-STARTING FETCH <<<===" >> $fetchlog
pm_make -DBATCH checksum >> $fetchlog 2>&1
rm -f ${TMPDIR}/f-${PM_PARENT_PID}-*-${portdir#*/}.* )&
...
It hangs on /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*;
I will get no XXX6 output and there is no nice, make or fetch process.
There seems some weird problem with "-DBATCH" on my system. With the
following modification (without -DBATCH) fetch will start to download
but it will still not exit from pm_make2. There is no output for XXX6
pm_make2 () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l
PM_URB_LIST;
echo "XXX5" >/tmp/xxx5
pwd >>/tmp/xxx5
echo "/usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*" >>/tmp/xxx5
/usr/bin/make checksum >/tmp/xxx6 2>&1
#/usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; echo "XXX6"
>>/tmp/xxx6 ); }
/usr/bin/nice /usr/bin/make checksum; echo "XXX6" >>/tmp/xxx6 ); }
But make -DBATCH checksum works from commandline:
[root at gatekeeper /usr/ports/archivers/unzip]# make -DBATCH checksum
===> License Info-ZIP accepted by the user
Use INSTALL_AS_INFOUNZIP=yes to install Info Unzip as
/usr/local/bin/info-unzip
=> unzip60.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch
http://surfnet.dl.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz
unzip60.tar.gz 100% of 1344 kB 125 kBps
00m00s
=> SHA256 Checksum OK for unzip60.tar.gz.
Any idea?
Am 11.08.12 11:21, schrieb Doug Barton:
> On 08/11/2012 01:24 AM, Michael Ranner wrote:
>> As I already told, "portmaster -F" is fetching to /usr/ports/distfiles
>> and appending to fetchlog in /tmp
> In your other message you indicate that the fetchlog in /tmp is empty.
> So I'm confused.
>
>> But "portmaster -i" does this not!
> By the time it gets to the 'make checksum' process there is nothing
> different about the code for -F or -i.
>
> Based on what you're describing it sounds like your fetch process is
> hanging, and/or not exiting properly.
>
> What portmaster does is launch a subshell in the background that has a
> mini-script to run 'make checksum'. That target will verify the files if
> they exist, or fetch them and then verify if they do not. Once that is
> done, the mini-script removes the fetchlog which acts as a sort of flag
> to signal portmaster that it's done.
>
> If the fetch part of the process is completing, but the actual 'make
> checksum' target is not, that's an OS or ports infrastructure bug. If
> the fetch is not completing it could be an OS bug, or it could be a
> stalled/slow remote site, a bad Internet connection, or any of a
> half-dozen other things.
>
> Either way, I seriously doubt the code in portmaster is at fault. That
> code hasn't changed in many years.
>
> The only other thing I can think of to try is to start a build for one
> of the ports you're having trouble with (after removing the distfiles of
> course) and just let it run. While it's running, check these things:
>
> 1. Does the distfile actually get downloaded?
> 2. Does the fetch complete? That is, does the full file get downloaded,
> which matches the size and checksum in the distinfo file?
> 3. If the fetching of the file completes, does 'ps axww' show that a
> fetch process for that file is still underway?
> 4. If the fetching of the file completes, can you run 'make checksum' in
> the port directory and get a positive result?
> 5. What happens if you just let the portmaster process run for a few hours?
>
> Doug
--
Mit freundlichen Grüßen
Ing. Michael Ranner
GSM: +43 676 4155044
Mail: michael at ranner.eu
WWW: http://www.azedo.at/
More information about the freebsd-ports
mailing list