https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235538
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: b...@freebsd.org
Reporter: rfra...@rfraile.eu
Created attachment 201777
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=201777=edit
Add fetch_check_connection function to freebsd-update
Hello,
Running freebsd-update in a system with limited resources (low power cpu and 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,
--
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"