Re: [systemd-devel] SSL handshake error from offlineimap when using systemd to initialize

2018-01-24 Thread Yubin Ruan
On Wed, Jan 24, 2018 at 08:57:18AM +0100, Reindl Harald wrote:
> 
> 
> Am 24.01.2018 um 08:13 schrieb Yubin Ruan:
> > On Tue, Jan 23, 2018 at 04:10:10PM +0100, Lennart Poettering wrote:
> > > On Di, 23.01.18 09:09, Reindl Harald (h.rei...@thelounge.net) wrote:
> > > > depeding on how your network is configured use "network.service" or
> > > > "networkmanager.service" (or however the networkmanager service is 
> > > > called in
> > > > detail, i don#t use it)
> > > 
> > > Nope. Use "network-online.target" if you are looking for a generic
> > > unit to order after that is reached only after the network has been
> > > "configured" for the first time, for some vague definition of
> > > "configured", that is up to the networking implementation to fill with
> > > sense...
> > 
> > Now I have these in the configuration file
> > 
> > [Unit]
> > Description=Sync mail
> > Wants=network-online.target
> > After=network.target network-online.target
> > 
> > [Service]
> > Type=oneshot
> > ExecStart=/path/to/the/script
> > TimeoutStartSec=1min30s
> > 
> > [Install]
> > WantedBy=default.target
> > 
> > However the script is still broken at system startup. Hmm...I am using a
> > Ubuntu 16.04LTS. I will post if there are any news
> 
> AGAIN: how is your network started
> 
> Lennart is *not* correct - at least on Fedora all the wait-online stuff
> don't work while "After=network.service" does when you still ue the cliassic
> network.service for a lot of obvious reasons
> 
> [root@srv-rhsoft:~]$ cat /etc/rc.d/init.d/network
> #! /bin/bash
> #
> # network   Bring up/down networking
> #
> # chkconfig: - 10 90
> # description: Activates/Deactivates all network interfaces configured to \
> #  start at boot time.
> #
> ### BEGIN INIT INFO
> # Provides: $network
> # Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager
> $network-pre
> # Short-Description: Bring up/down networking
> # Description: Bring up/down networking
> ### END INIT INFO

Below are /etc/init.d/networking and /etc/init.d/network-manager respectively.
It seems that it is /etc/init.d/networking that is responsible for bringing up
the network.

##
# /etc/init.d/networking
##
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:  networking ifupdown
# Required-Start:mountkernfs $local_fs urandom
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop:  0 6
# Short-Description: Raise network interfaces.
# Description:   Prepare /run/network directory, ifstate file and raise 
network interfaces, or take them down.
### END INIT INFO

PATH="/sbin:/bin"
RUN_DIR="/run/network"
IFSTATE="$RUN_DIR/ifstate"
STATEDIR="$RUN_DIR/state"

[ -x /sbin/ifup ] || exit 0
[ -x /sbin/ifdown ] || exit 0

. /lib/lsb/init-functions

CONFIGURE_INTERFACES=yes
EXCLUDE_INTERFACES=
VERBOSE=no

[ -f /etc/default/networking ] && . /etc/default/networking

verbose=""
[ "$VERBOSE" = yes ] && verbose=-v

process_exclusions() {
set -- $EXCLUDE_INTERFACES
exclusions=""
for d
do
exclusions="-X $d $exclusions"
done
echo $exclusions
}

process_options() {
[ -e /etc/network/options ] || return 0
log_warning_msg "/etc/network/options still exists and it will be IGNORED! 
Please use /etc/sysctl.conf instead."
}

check_ifstate() {
if [ ! -d "$RUN_DIR" ] ; then
if ! mkdir -p "$RUN_DIR" ; then
log_failure_msg "can't create $RUN_DIR"
exit 1
fi
if ! chown root:netdev "$RUN_DIR" ; then
log_warning_msg "can't chown $RUN_DIR"
fi
fi
if [ ! -r "$IFSTATE" ] ; then
if ! :> "$IFSTATE" ; then
log_failure_msg "can't initialise $IFSTATE"
exit 1
fi
fi
}

check_network_file_systems() {
[ -e /proc/mounts ] || return 0

if [ -e /etc/iscsi/iscsi.initramfs ]; then
log_warning_msg "not deconfiguring network interfaces: iSCSI root is 
mounted."
exit 0
fi

while read DEV MTPT FSTYPE REST; do
case $DEV in
/dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*|curlftpfs*)
log_warning_msg "not deconfiguring network interfaces: network 
devices still mounted."
exit 0
;;
esac
case $FSTYPE in

nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)
log_war

Re: [systemd-devel] SSL handshake error from offlineimap when using systemd to initialize

2018-01-23 Thread Yubin Ruan
On Tue, Jan 23, 2018 at 04:10:10PM +0100, Lennart Poettering wrote:
> On Di, 23.01.18 09:09, Reindl Harald (h.rei...@thelounge.net) wrote:
> 
> > > I got in the configuration file
> > > 
> > >[Unit]
> > >After=network.target
> > > 
> > > Isn't this enough to get the initialization order right?
> > 
> > no, the target does more or less nothing useful
> 
> Well, it doesn't do what Yubin assumes it does, but it certainly does
> something "useful": while it doesn't make the network *connectivity*
> is up, it does make sure the network *subsystem* is. And that does have
> uses: during shutdown it makes sure that your service is terminated
> before the network subsystem goes away. During start-up otoh it is
> indeed with little effect usually.
> 
> > depeding on how your network is configured use "network.service" or
> > "networkmanager.service" (or however the networkmanager service is called in
> > detail, i don#t use it)
> 
> Nope. Use "network-online.target" if you are looking for a generic
> unit to order after that is reached only after the network has been
> "configured" for the first time, for some vague definition of
> "configured", that is up to the networking implementation to fill with
> sense...

Now I have these in the configuration file

[Unit]
Description=Sync mail
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=oneshot
ExecStart=/path/to/the/script
TimeoutStartSec=1min30s

[Install]
WantedBy=default.target

However the script is still broken at system startup. Hmm...I am using a
Ubuntu 16.04LTS. I will post if there are any news.

--
Yubin
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] SSL handshake error from offlineimap when using systemd to initialize

2018-01-22 Thread Yubin Ruan
On Mon, Jan 22, 2018 at 01:54:36PM +0100, Lennart Poettering wrote:
> On So, 21.01.18 19:12, Yubin Ruan (ablacktsh...@gmail.com) wrote:
> 
> > Hi,
> > 
> > I use offlineimap to synchronize my emails. I want it to do a 
> > synchronization
> > at system startup so recently I add a systemd service for it. However I 
> > always
> > get error like this:
> > 
> >EOF occurred in violation of protocol (_ssl.c:590)
> 
> This suggests your network doesn't work when you invoke this.
> 
> > 1. usually (after system startup) the same service is invoked by a timer
> > and it works well so there is no problem with the script.
> > 
> > 2. I believe the network is reachable, because the system will
> > auto-connect WIFI after system startup. Maybe the initialization order 
> > is
> > not configured properly? If so please see my mail service file
> > below.
> 
> Well, this is necessarily racy: your network setup races agains your
> offlineimap invocation...

I got in the configuration file

  [Unit]
  After=network.target

Isn't this enough to get the initialization order right?

--
Yubin
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] SSL handshake error from offlineimap when using systemd to initialize

2018-01-21 Thread Yubin Ruan
Hi,

I use offlineimap to synchronize my emails. I want it to do a synchronization
at system startup so recently I add a systemd service for it. However I always
get error like this:

   EOF occurred in violation of protocol (_ssl.c:590)
  *** Finished account 'BLACK' in 0:00
 ERROR: Exceptions occurred during the run!
 ERROR: While attempting to sync account 'BLACK'
   EOF occurred in violation of protocol (_ssl.c:590)
 Traceback:
   File "/usr/share/offlineimap/offlineimap/accounts.py", line 263, in 
syncrunner
 self.__sync()
   File "/usr/share/offlineimap/offlineimap/accounts.py", line 326, in __sync
 remoterepos.getfolders()
   File "/usr/share/offlineimap/offlineimap/repository/IMAP.py", line 384, in 
getfolders
 imapobj = self.imapserver.acquireconnection()
   File "/usr/share/offlineimap/offlineimap/imapserver.py", line 483, in 
acquireconnection
 tls_level=self.tlslevel,
   File "/usr/share/offlineimap/offlineimap/imaplibutil.py", line 186, in 
__init__
 super(WrappedIMAP4_SSL, self).__init__(*args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/imaplib2.py", line 2138, in __init__
 IMAP4.__init__(self, host, port, debug, debug_file, identifier, timeout, 
debug_buf_lvl)
   File "/usr/lib/python2.7/dist-packages/imaplib2.py", line 357, in __init__
 self.open(host, port)
   File "/usr/share/offlineimap/offlineimap/imaplibutil.py", line 194, in open
 super(WrappedIMAP4_SSL, self).open(host, port)
   File "/usr/lib/python2.7/dist-packages/imaplib2.py", line 2151, in open
 self.ssl_wrap_socket()
   File "/usr/lib/python2.7/dist-packages/imaplib2.py", line 522, in 
ssl_wrap_socket
 self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, 
ca_certs=self.ca_certs, cert_reqs=cert_reqs, ssl_version=ssl_version)
   File "/usr/lib/python2.7/ssl.py", line 933, in wrap_socket
 ciphers=ciphers)
   File "/usr/lib/python2.7/ssl.py", line 601, in __init__
 self.do_handshake()
   File "/usr/lib/python2.7/ssl.py", line 830, in do_handshake
 self._sslobj.do_handshake()

Currently I don't know what the problem is, but:

1. usually (after system startup) the same service is invoked by a timer
and it works well so there is no problem with the script.

2. I believe the network is reachable, because the system will
auto-connect WIFI after system startup. Maybe the initialization order is
not configured properly? If so please see my mail service file below.

I heard that to perform a SSL handshake the system have to contain some
randomness (such that some random keys can be generated), so maybe a SSL
handshake at system startup is deemed to fail?

FYI, this is my systemd mail service file:

# ~/.config/systemd/user/mail.service
# this file is enabled with "systemctl --user enable mail.service
[Unit]
Description=Sync mail
After=network.target

[Service]
Type=oneshot
ExecStart=/path/to/the/script/mmail
TimeoutStartSec=1min30s

[Install]
WantedBy=default.target

--
Yubin
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel