PINE64 - 12.0-CURRENT r324563 - ntpd can't keep time

Mark Millard markmi at dsl-only.net
Tue Nov 14 11:29:10 UTC 2017


[Top post of an FYI and other short notes.]

FYI: My Pine64+ 2GB context uses an external USB3
powered hub with a USB3 SSD on one of the Pine64+ 2GB
USB2 ports in order to hold the UFS root file system.
(I can boot with just the sdcard but rarely do.)

(I've only used ZFS in a couple of contexts, all with
more than 2 GiBytes of RAM.)

The -r320599 'works' point means that a (slow) bisect
may be possible in your context to narrow the range of
what changes in head might be at issue in your context.
What is the smallest -r?????? figure above -r320599
that you have seen the problem with? Could you test
some approximate mid-point between the two? (A
difficulty with this can be avoiding other known
problems in the history.)

[End top post]

On 2017-Nov-14, at 1:39 AM, Mark Millard <markmi at dsl-only.net> wrote:

> On 2017-Nov-13, at 11:06 PM, Henri Hennebert <hlh at restart.be> wrote:
> 
>>> . . .
>> 
>> I believe that the clock of the Pine64+ is going too fast and that the 2 servers where polled and so show this offset/jitter. In an other occurrence of this problem, if I wait long enough, all servers display huge offset.
>> In a old version of Freebsd12, when dev.cpu.0.freq was accessible, the problem appear when I force the frequency to 1200.
> 
> May be the time is just being damaged on occasion
> or read-incorrectly sometimes? (Once seen as wrong,
> the adjustment process will gradually change time
> towards what it calculates as a supposedly better
> time.)
> 
> Good to know that eventually  all the servers show
> a large jitter(?) at the same time. (Jitter reflects
> more history and so may be a better reference.)
> 
>> In the same network, other computers (amd64) get no problem with this ntpd configuration.
> 
> Good to know. It helps localize the issue.
> 
>>> It looks to me like you need to avoid those 2 severs,
>>> substituting some others or some such. If some
>>> communication channel(s) involved are corrupting data
>>> then simply switching servers might not avoid the
>>> issue?
>>> I finally got a hold of the rpi3 and updated it to
>>> -r325700 from back a -r320123. it has been up 9 hr
>>> 40 min and date is still showing the correct time,
>>> no evidence of huge offsets or huge jitter.
>>> The Pine64+ 2GB is also at -r325700 now and has been
>>> up for 2 days. It also is working fine. Again no
>>> evidence of huge offsets or huge jitter.
>> 
>> Did you run heavy jobs running on this system? My Pine64+ is managing my connection to internet (mpd5), named, dhcp, my mail (sendmail + cyrus-imap) and dspam with postgres as db. The problem crops up when for example I run a port upgrade.
> 
> I did a complete, from-scratch -j4 buildworld buildkernel
> on the Pine64+ 2GB, keeping it busy for a little under
> 18 hr + 10 min as I remember. top showed that it used some
> swapspace during this. I included:
> 
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLD_BOOTSTRAP=
> WITH_LLD=
> WITH_LLD_IS_LD=
> WITH_LLDB=
> WITH_BOOT=
> 
> But it did claim to reuse the system clang instead
> of building a bootstrap clang compiler. Yet the
> WITH_LLD_BOOTSTRAP= did lead to a bunch of
> bootstrap activity anyway, so two builds of lld
> related materials. (The purpose of the build
> was to see if it would complete or not, extra work
> made for a better test.)
> 
> It was on an earlier version than -r325700 
> that I last rebuilt my ports but rebuilding the
> ports has never caused a time problem either.
> The ports builds were via poudriere.
> 
> But I do not use the Pine64+ 2GB for any of those
> other things that you list as using yours for. I
> do ssh over ethernet into the Pine64+ to work on
> it but it is not a service provider at all, just
> a machine for me to do build experiments with
> (native and cross builds) and other forms of problem
> investigations. nfs is present but little/rarely
> used, and only temporarily in use at that.
> 
> As a step in potential isolation of what contributes
> vs. what does not, could you temporarily revert to
> not using/running the Pine64+ 2GB for the other
> activities and try the ports builds and/or buildworld
> buildkernel? Does it still have the problem in
> something like my simpler context?
> 
> If time no long jumps, then you could add back an
> activity and try again until the additions lead to
> the time problem. That might give a clue what could
> be interfering with time.
> 
> Also: I do not know if you have access to a 2nd
> Pine64 to check for a device-specific problem by
> switching devices temporarily. Such might also
> allow keeping your services active while checking
> the simpler context.
> 
> If Pine64s had a general time problem, there would
> be a general problem for everyone else. I think the
> stage of investigation is still: try to isolate a
> smaller context sufficient to have the problem but
> for which an even smaller context is observed to
> not have the problem. Try to narrow the range of
> differences between observed-working and
> observed-failing to gain a clue about what
> contributes to the problem vs. what does not.
> 
> 
> 
> FYI: Sitting idle the Pine64+ 2GB here shows
> in top:
> 
> sshd: <?>@pts/0 (sshd)
> sshd: <?> [priv] (sshd)
> /usr/sbin/sshd
> /usr/sbin/ntpd -g -c /etc/ntp.conf -p /var/run/ntpd.pid -f /var/db/ntpd.drift
> sendmail: accepting connections (sendmail)
> sendmail: Queue runner at 00:30:00 for /var/spool/clientmqueue (sendmail)
> /sbin/devd
> top -CawPosize
> login [pam] (<login>)
> su (<su>)
> top -CawPosize
> /usr/sbin/mountd -r
> su (sh)
> -sh (sh)
> -sh (<sh>)
> nfsd: master (nfsd)
> dhclient: awg0 (dhclient)
> /usr/sbin/cron -s (<cron>)
> dhclient: awg0 [priv] (dhclient)
> /usr/sbin/syslogd -s
> /usr/sbin/rpcbind
> nfsd: server (nfsd)
> 
> (I do not normally use sendmail for anything. It
> just sits there while the Pine64+ 2GB is up. nfs
> is normally idle but is used on occasion.)
> 
> FYI: The installed ports list (far more is built
> by poudriere):
> 
> # pkg info
> atf-0.21                       C, C++ and shell libraries to write ATF-compliant test programs
> binutils-2.28,1                GNU binary tools
> bonnie-2.0.6_1                 Performance Test of Filesystem I/O
> bonnie++-1.97.3                Performance Test of Filesystem I/O
> ca_root_nss-3.32.1             Root certificate bundle from the Mozilla Project
> curl-7.56.1                    Command line tool and library for transferring data with URLs
> dialog4ports-0.1.6             Console Interface to configure ports
> dtrace-toolkit-1.0_1           Collection of useful scripts for DTrace
> dwarfdump-20161124             Tool to display DWARF debugging information in ELF files
> expat-2.2.1                    XML 1.0 parser written in C
> freebsd-release-manifests-20171003 FreeBSD release manifests
> gcc7-7.2.0_2                   GNU Compiler Collection 7
> gdb-8.0.1_1                    GNU GDB of newer version than comes with the system
> gettext-runtime-0.19.8.1_1     GNU gettext runtime libraries and programs
> git-lite-2.14.3                Distributed source code management tool (lite package)
> gmp-6.1.2                      Free library for arbitrary precision arithmetic
> indexinfo-0.3                  Utility to regenerate the GNU info page index
> iorate-3.05                    General purpose storage I/O benchmarking tool
> iozone-3.457                   Performance Test of Sequential File I/O
> kyua-0.13_4,3                  Testing framework for infrastructure software
> libedit-3.1.20170329_2,1       Command line editor library
> libidn2-2.0.4                  Implementation of IDNA2008 internationalized domain names
> libnghttp2-1.27.0              HTTP/2.0 C Library
> libunistring-0.9.7             Unicode string library
> lua52-5.2.4                    Small, compilable scripting language providing easy access to C code
> lutok-0.4_6                    Lightweight C++ API for Lua
> mpc-1.0.3                      Library of complex numbers with arbitrarily high precision
> mpfr-3.1.6                     Library for multiple-precision floating-point computations
> patch-2.7.5                    GNU patch utility
> pcre-8.40_1                    Perl Compatible Regular Expressions library
> perl5-5.24.3                   Practical Extraction and Report Language
> pkg-1.10.1                     Package manager
> portlint-2.17.13               Verifier for FreeBSD port directory
> portmaster-3.17.10             Manage your ports without external databases or languages
> poudriere-devel-3.1.99.20171028 Port build and test system
> randomio-1.4                   Multithreaded disk i/o microbenchmark
> readline-7.0.3_1               Library for editing command lines as they are typed
> rsync-3.1.2_7                  Network file distribution/synchronization utility
> sqlite3-3.20.1_2               SQL database engine in a C library
> stress-1.0.4                   Tool to impose load on and stress test Unix-like systems
> sudo-1.8.21p2                  Allow others to run commands as root
> unzip-6.0_7                    List, test, and extract compressed files from a ZIP archive
> wget-1.19.2                    Retrieve files from the Net via HTTP(S) and FTP
> zip-3.0_1                      Create/update ZIP files compatible with PKZIP
> 
> So it is enough to keep the Pine64+ 2GB busy
> for a a notable time when rebuilt. In particular,
> gcc7-7.2.0_2 (and what it requires) takes a fair
> time to build.
> 
> The poudriere build of the ports is currently the
> primary thing the ports are used for: build tests
> to catch build failures, should they occur.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list