On Tue, Apr 19, 2016 at 01:06:25PM +0000, Jan Wickbom wrote:
> 
> 
> > -----Original Message-----
> > From: Ben Pfaff [mailto:b...@ovn.org]
> > Sent: den 18 april 2016 17:37
> > To: Jan Wickbom
> > Cc: discuss@openvswitch.org
> > Subject: Re: [ovs-discuss] Missing fatal signals in fatal_signals.c
> > 
> > On Mon, Apr 18, 2016 at 02:22:37PM +0000, Jan Wickbom wrote:
> > > Hi,
> > > SIGTERM/INT/HUP/ALRM are intercepted in vswitchd. When they are
> > caught some
> > > cleaning up is performed e.g. all vhost-user-XXX socket files are removed 
> > > as
> > > well as socket files for communication between vswitchd and the database
> > etc.
> > >
> > > However, there are more signals generating a process termination but they
> > are
> > > not handled and as a consequence there will be socket files left. When
> > > restarting, they will sometimes stop re-creation of vhostuser sockets with
> > > still existing names, resulting in log entries like these:
> > >
> > > |dpdk|ERR|vhost-user socket device setup failure for socket
> > /var/run/openvswitch/vhostuser-e184f013-72d|bridge|WARN|could not
> > open network device vhostuser-e184f013-72d (Unknown error -1)
> > > |dpdk|ERR|vhost-user socket device setup failure for socket
> > /var/run/openvswitch/vhostuser-06802a37-a09|bridge|WARN|could not
> > open network device vhostuser-06802a37-a09 (Unknown error -1)
> > >
> > > They need to be removed manually and vswitchd restarted again. Is it a
> > "design
> > > decision" to handle only the signals as defined in fatal_signals.c?
> > 
> > Yes.  The signals listed there are the ones that terminate the process,
> > can be caught, do not indicate a program bug, and are not
> > special-purpose signals such as SIGUSR1 or SIGUSR2 or SIGPOLL.
> > 
> > It is too risky to catch signals that indicate a program bug.
> > 
> > > Also, why are the vhost-user sockets not abstract? Wouldn't that simplify
> > the
> > > socket handling?
> > 
> > What is an abstract socket?
> 
> Unfortunately Linux specific I just realized, which might be the reason it's
> not used here? Anyway, you bind to a name without any file being 
> created in the filesystem. Hence we don't need to remove it when the socket
> is closed, the "abstract name" is automatically removed. A "man 7 unix" on
> a Linux system probably explains better than I do :-) 

Oh, a socket in the abstract namespace.  They are not portable; also, I
don't think there's any way to control permissions.
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to