Re: [chrony-users] Porting to Ubuntu 18.04 from 16.04 |
[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-users Archives ]
Hi Christian,
Thanks for your reply
The change was from 2.1.1 to 3.2
gpsd is 3.15 and 3.17 respectively
The exact error from the chronyd is the following
This happens when I `systemctl restart` the chrony service or on boot-up. It makes no difference whether gpsd is running (although gpsd does run fine if I start it).
$ systemctl status chrony ● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Tue 2019-10-15 15:21:46 EDT; 4min 14s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Process: 1005 ExecStartPost=/usr/lib/chrony/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Process: 7080 ExecStart=/usr/lib/systemd/scripts/chronyd-starter.sh $DAEMON_OPTS (code=exited, status=1/FAILURE) Main PID: 1003 (code=exited, status=0/SUCCESS) Oct 15 15:21:46 autorally4 systemd[1]: Starting chrony, an NTP client/server... Oct 15 15:21:46 autorally4 chronyd[7086]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 -DEBUG) Oct 15 15:21:46 autorally4 chronyd-starter.sh[7080]: bind() failed Oct 15 15:21:46 autorally4 chronyd[7086]: Fatal error : bind() failed Oct 15 15:21:46 autorally4 systemd[1]: chrony.service: Control process exited, code=exited status=1 Oct 15 15:21:46 autorally4 systemd[1]: chrony.service: Failed with result 'exit-code'. Oct 15 15:21:46 autorally4 systemd[1]: Failed to start chrony, an NTP client/server. $ journalctl -xe Oct 15 15:41:24 autorally4 gnome-shell[1458]: clutter_actor_show: assertion 'CLUTTER_IS_ACTOR (self)' failed Oct 15 15:41:51 autorally4 sudo[2724]: autorally : TTY=pts/0 ; PWD=/home/autorally ; USER=root ; COMMAND=/bin/systemctl restart chrony Oct 15 15:41:51 autorally4 sudo[2724]: pam_unix(sudo:session): session opened for user root by (uid=0) Oct 15 15:41:51 autorally4 systemd[1]: Starting chrony, an NTP client/server... -- Subject: Unit chrony.service has begun start-up -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Unit chrony.service has begun starting up. Oct 15 15:41:51 autorally4 chronyd[2733]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 -DEBUG) Oct 15 15:41:51 autorally4 audit[2733]: AVC apparmor="DENIED" operation="mknod" profile="" name="/tmp/chrony.arGPSroverPortB.sock" pid=2733 comm="chronyd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 Oct 15 15:41:51 autorally4 chronyd-starter.sh[2727]: bind() failed Oct 15 15:41:51 autorally4 chronyd[2733]: Fatal error : bind() failed Oct 15 15:41:51 autorally4 systemd[1]: chrony.service: Control process exited, code=exited status=1 Oct 15 15:41:51 autorally4 systemd[1]: chrony.service: Failed with result 'exit-code'. Oct 15 15:41:51 autorally4 systemd[1]: Failed to start chrony, an NTP client/server. -- Subject: Unit chrony.service has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Unit chrony.service has failed. -- -- The result is RESULT. Oct 15 15:41:51 autorally4 kernel: audit: type=1400 audit(1571168511.567:45): apparmor="DENIED" operation="mknod" profile="" name="/tmp/chrony.arGPSroverPortB.sock" pid=2733 comm="chronyd" requested_mask="c" denied_mask="c" fsuid=0 ou Oct 15 15:41:51 autorally4 sudo[2724]:
On Mon, Oct 14, 2019 at 11:10 PM Knaup, Jacob <jacobk@xxxxxxxxxx> wrote:
Hello,
We are currently using chrony on several systems running Ubuntu 16.04 without issue. We have the config file below.
We are in the process of upgrading to 18.04 and it seems that some things have changed. Specifically the line
refclock SOCK /var/run/chrony.arGPSroverPortB.sock refid PPS0 prefercauses the daemon to throw an error about not being able to connect, and then it crashes.
Hi Jacob,am I right that your upgrade was from chrony 2.1.1 to 3.2.4 which matches the versions in Xenial and Bionic?
The difference between those [2] isn't clearly pointing to something in regard to your issue
We might need to clarify a few things:Or do you run different versions, if so from where?Is it chrony itself that crashes on this or gpsd when it tries to connect?If it is chrony, does it crash on start or only later when gpsd connects to it?Could you also post exactly the messages that trigger when things crash?
In general we have to be careful which code we look at as due to [1] and siblings the master branch (not yet released) look quite different.
Did you also upgrade the gpsd version, maybe (some) differences are on this side of things?At least what is provided by Ubuntu changed from 3.15 to 3.17 between those releases.
It seems that it requires the address in a different format, as values that begin with `tty` do not cause this error. For reference, `arGPSroverPortB` is a symlink to a tty device.
Is there any guidance for what needs to be changed between these versions?
Best,
Jacob
####################################################################### # # This is an example chrony configuration file. You should copy it to # /etc/chrony.conf after uncommenting and editing the options that you # want to enable. The more obscure options are not included. Refer # to the documentation for these. # # Copyright 2002 Richard P. Curnow # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # ####################################################################### ### COMMENTS # Any of the following lines are comments (you have a choice of # comment start character): # a comment % a comment ! a comment ; a comment # # Below, the '!' form is used for lines that you might want to # uncomment and edit to make your own chrony.conf file. # ####################################################################### ####################################################################### ### SPECIFY YOUR NTP SERVERS # Most computers using chrony will send measurement requests to one or # more 'NTP servers'. You will probably find that your Internet Service # Provider or company have one or more NTP servers that you can specify. # Failing that, there are a lot of public NTP servers. There is a list # you can access at # http://www.eecis.udel.edu/~mills/ntp/servers.htm. ! server ntp0.your-isp.com ! server ntp1.your-isp.com ! server ntp.public-server.org # However, for dial-up use you probably want these instead. The word # 'offline' means that the server is not visible at boot time. Use # chronyc's 'online' command to tell chronyd that these servers have # become visible after you go on-line. server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org allow # set larger delay to allow the NMEA source to overlap with # the other sources and avoid the falseticker status refclock SHM 0 refid GPS precision 1e-1 offset 0.9999 delay 0.2 refclock SHM 1 refid PPS1 precision 1e-9 refclock SOCK /var/run/chrony.arGPSroverPortB.sock refid PPS0 prefer # if not chronyd running as root #refclock SOCK /tmp/chrony.arGPSroverPortB.sock refid PPS # You may want to specify NTP 'peers' instead. If you run a network # with a lot of computers and want several computers running chrony to # have the 'front-line' interface to the public NTP servers, you can # 'peer' these machines together to increase robustness. ! peer ntp0.my-company.com # There are other options to the 'server' and 'peer' directives that you # might want to use. For example, you can ignore measurements whose # round-trip-time is too large (indicating that the measurement is # probably useless, because you don't know which way the measurement # message got held up.) Consult the full documentation for details. ####################################################################### ### AVOIDING POTENTIALLY BOGUS CHANGES TO YOUR CLOCK # # To avoid changes being made to your computer's gain/loss compensation # when the measurement history is too erratic, you might want to enable # one of the following lines. The first seems good for dial-up (or # other high-latency connections like slow leased lines), the second # seems OK for a LAN environment. maxupdateskew 100 ! maxupdateskew 5 ####################################################################### ### FILENAMES ETC # Chrony likes to keep information about your computer's clock in files. # The 'driftfile' stores the computer's clock gain/loss rate in parts # per million. When chronyd starts, the system clock can be tuned # immediately so that it doesn't gain or lose any more time. You # generally want this, so it is uncommented. driftfile /etc/chrony.drift # If you want to use the program called chronyc to configure aspects of # chronyd's operation once it is running (e.g. tell it the Internet link # has gone up or down), you need a password. This is stored in the # following keys file. (You also need keys to support authenticated NTP # exchanges between cooperating machines.) Again, this option is # assumed by default. ! keyfile /etc/chrony.keys # Tell chronyd which numbered key in the file is used as the password # for chronyc. (You can pick any integer up to 2**32-1. '1' is just a # default. Using another value will _NOT_ increase security.) ! commandkey 1 # chronyd can save the measurement history for the servers to files when # it it exits. This is useful in 2 situations: # # 1. On Linux, if you stop chronyd and restart it with '-r' (e.g. after # an upgrade), the old measurements will still be relevant when chronyd # is restarted. This will reduce the time needed to get accurate # gain/loss measurements, especially with a dial-up link. # # 2. Again on Linux, if you use the RTC support and start chronyd with # '-r -s' on bootup, measurements from the last boot will still be # useful (the real time clock is used to 'flywheel' chronyd between # boots). # # Enable these two options to use this. ! dumponexit ! dumpdir /var/log/chrony # chronyd writes its process ID to a file. If you try to start a second # copy of chronyd, it will detect that the process named in the file is # still running and bail out. If you want to change the path to the PID # file, uncomment this line and edit it. The default path is shown. ! pidfile /var/run/chronyd.pid ####################################################################### ### INITIAL CLOCK CORRECTION # This option is only useful if your NTP servers are visible at boot # time. This probably means you are on a LAN. If so, the following # option will choose the best-looking of the servers and correct the # system time to that. The value '10' means that if the error is less # than 10 seconds, it will be gradually removed by speeding up or # slowing down your computer's clock until it is correct. If the error # is above 10 seconds, an immediate time jump will be applied to correct # it. Some software can get upset if the system clock jumps (especially # backwards), so be careful! ! initstepslew 10 ntp0.your-company.com ntp1.your-company.com ntp2.your-company.com ####################################################################### ### LOGGING # If you want to log information about the time measurements chronyd has # gathered, you might want to enable the following lines. You probably # only need this if you really enjoy looking at the logs, you want to # produce some graphs of your system's timekeeping performance, or you # need help in debugging a problem. ! logdir /var/log/chrony ! log measurements statistics tracking # If you have real time clock support enabled (see below), you might want # this line instead: ! log measurements statistics tracking rtc ####################################################################### ### ACTING AS AN NTP SERVER # You might want the computer to be an NTP server for other computers. # e.g. you might be running chronyd on a dial-up machine that has a LAN # sitting behind it with several 'satellite' computers on it. # # By default, chronyd does not allow any clients to access it. You need # to explicitly enable access using 'allow' and 'deny' directives. # # e.g. to enable client access from the 192.168.*.* class B subnet, allow 192.168/16 # .. but disallow the 192.168.100.* subnet of that, ! deny 192.168.100/24 # You can have as many allow and deny directives as you need. The order # is unimportant. # If you want chronyd to act as an NTP broadcast server, enable and edit # (and maybe copy) the following line. This means that a broadcast # packet is sent to the address 192.168.1.255 every 60 seconds. The # address MUST correspond to the broadcast address of one of the network # interfaces on your machine. If you have multiple network interfaces, # add a broadcast line for each. ! broadcast 60 192.168.1.255 # If you want to present your computer's time for others to synchronise # with, even if you don't seem to be synchronised to any NTP servers # yourself, enable the following line. The value 10 may be varied # between 1 and 15. You should avoid small values because you will look # like a real NTP server. The value 10 means that you appear to be 10 # NTP 'hops' away from an authoritative source (atomic clock, GPS # receiver, radio clock etc). local stratum 1 # Normally, chronyd will keep track of how many times each client # machine accesses it. The information can be accessed by the 'clients' # command of chronyc. You can disable this facility by uncommenting the # following line. This will save a bit of memory if you have many # clients. ! noclientlog # The clientlog size is limited to 512KB by default. If you have many # clients, especially in many different subnets, you might want to # increase the limit. ! clientloglimit 4194304 ####################################################################### ### REPORTING BIG CLOCK CHANGES # Perhaps you want to know if chronyd suddenly detects any large error # in your computer's clock. This might indicate a fault or a problem # with the server(s) you are using, for example. # # The next option causes a message to be written to syslog when chronyd # has to correct an error above 0.5 seconds (you can use any amount you # like). ! logchange 0.5 # The next option will send email to the named person when chronyd has # to correct an error above 0.5 seconds. (If you need to send mail to # several people, you need to set up a mailing list or sendmail alias # for them and use the address of that.) ! mailonchange wibble@xxxxxxxxxx 0.5 ####################################################################### ### COMMAND ACCESS # The program chronyc is used to show the current operation of chronyd # and to change parts of its configuration whilst it is running. # Normally, chronyd will only allow connections from chronyc on the same # machine as itself. This is for security. If you have a subnet # 192.168.*.* and you want to be able to use chronyc from any machine on # it, you could uncomment the following line. (Edit this to your own # situation.) cmdallow 192.168/16 # You can add as many 'cmdallow' and 'cmddeny' lines as you like. The # syntax and meaning is the same as for 'allow' and 'deny', except that # 'cmdallow' and 'cmddeny' control access to the chronyd's command port. # NOTE, even if the host where you run chronyc is granted access, you # still need a command key set up and you have to know the password to # put into chronyc to allow you to modify chronyd's parameters. By # default all you can do is view information about chronyd's operation. # Some people have reported that the need the following line to allow # chronyc to work even on the same machine. This should not be # necessary, and the problem is being investigated. You can leave this # line enabled, as it's benign otherwise. cmdallow 127.0.0.1 ####################################################################### ### REAL TIME CLOCK # chronyd can characterise the system's real-time clock. This is the # clock that keeps running when the power is turned off, so that the # machine knows the approximate time when it boots again. The error at # a particular epoch and gain/loss rate can be written to a file and # used later by chronyd when it is started with the '-s' option. # # You need to have 'enhanced RTC support' compiled into your Linux # kernel. (Note, these options apply only to Linux.) ! rtcfile /etc/chrony.rtc # Your RTC can be set to keep Universal Coordinated Time (UTC) or local # time. (Local time means UTC +/- the effect of your timezone.) If you # use UTC, chronyd will function correctly even if the computer is off # at the epoch when you enter or leave summer time (aka daylight saving # time). However, if you dual boot your system with Microsoft Windows, # that will work better if your RTC maintains local time. You take your # pick! ! rtconutc # By default chronyd assumes that the enhanced RTC device is accessed as # /dev/rtc. If it's accessed somewhere else on your system (e.g. you're # using devfs), uncomment and edit the following line. ! rtcdevice /dev/misc/rtc ####################################################################### ### REAL TIME SCHEDULER # This directive tells chronyd to use the real-time FIFO scheduler with the # specified priority (which must be between 0 and 100). This should result # in reduced latency. You don't need it unless you really have a requirement # for extreme clock stability. Works only on Linux. Note that the "-P" # command-line switch will override this. ! sched_priority 1 ####################################################################### ### LOCKING CHRONYD INTO RAM # This directive tells chronyd to use the mlockall() syscall to lock itself # into RAM so that it will never be paged out. This should result in reduced # latency. You don't need it unless you really have a requirement # for extreme clock stability. Works only on Linux. Note that the "-m" # command-line switch will also enable this feature. ! lock_all
--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |