Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Feb 2019 18:52:12 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 235538] [patch] freebsd-update: Try to avoid failing when network is unavailable
Message-ID:  <bug-235538-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235538

            Bug ID: 235538
           Summary: [patch] freebsd-update: Try to avoid failing when
                    network is unavailable
           Product: Base System
           Version: 12.0-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: rfraile@rfraile.eu

Created attachment 201777
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D201777&action=
=3Dedit
Add fetch_check_connection function to freebsd-update

Hello,

Running freebsd-update in a system with limited resources (low power cpu an=
d sd
storage as disk for example) takes a long time (+5 hours in a RaspberryPi).=
 If
we also have a poor network link dependent to a mobile 3G network, is more
difficult to complete it properly.

When freebsd-update execute the lines that calls phttpget, if the network is
unavailable, it directly fails, throwing away the time spend previously.

There is a workaround tunning phttpget with the HTTP_TIMEOUT environment
variable, but it only works before doing the tcp connection. If it can't
resolve the dns, it fails ending the execution.

The solution that I include in the patch adds a call to the server previous=
 the
phttpget execution, checking if it was ok or not, looping on it waiting 60
seconds until the next try if it fails. If the executions is made from cron=
, it
only loops once and fails.

If you are looking over the upgrade and see that is stuck on that point, you
have a chance to fix it, restart the modem, wait until you receive better
connectivity or whatever, but it can continue.

In the new function I use the fetch command because is used already on
freebsd-update and its part of the base system. Also netcat or telnet can be
used, but the environmental variables that can modify the fetch behaviour, =
like
http_proxy, aren't available on those alternatives.

As well, I use for fetch the file latest.ssl because the other file that I
found, pub.ssl, is a bit larger. I didn't find any other way to get a dumb =
file
like a readme.txt or similar in the updateN.freebsd.org servers.

I tested it and works as expected.

Thanks,

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-235538-227>