Changes

45 bytes added ,  10:57, 26 September 2016
no edit summary
Line 1: Line 1: −
This explains the meaning of '''external socket is used''' error message, and the purpose of '''<code>--ext-unix-sk</code>''' option.
+
This explains the meaning of '''external socket is used''' error message, and the purpose of '''<code>--external unix[...]</code>''' option.
    
== Error meaning ==
 
== Error meaning ==
Line 13: Line 13:  
However, sometimes it is possible to dump and successfully restore only one end of a unix socket pair. One particular example is the datagram sockets with on-way connection (client to server) used e.g. by <code>logd</code>. Server opens a datagram socket and waits on it for messages to be written into a log file. Processes using logd also create datagram sockets and connect those to the server. These connections are thus uni-directional. In this case it is possible to dump a program with the client-side socket and on restore the socket needs to be reconnected back to the original server.
 
However, sometimes it is possible to dump and successfully restore only one end of a unix socket pair. One particular example is the datagram sockets with on-way connection (client to server) used e.g. by <code>logd</code>. Server opens a datagram socket and waits on it for messages to be written into a log file. Processes using logd also create datagram sockets and connect those to the server. These connections are thus uni-directional. In this case it is possible to dump a program with the client-side socket and on restore the socket needs to be reconnected back to the original server.
   −
This is when <code>--ext-unix-sk</code> option should be used. By providing this option (for both dump and restore commands), user states "I know there may be uni-directional dgram unix connections, and I will make sure the server end will exist on restore".
+
This is when <code>--external[...]</code> option should be used. By providing this option for both dump (now) and restore (in plans) commands, user states "I know there may be uni-directional dgram unix connections, and I will make sure the server end will exist on restore".
    
For '''criu dump''', this option enables dumping ''datagram'' unix sockets with additional information about that other ("external") socket it is connected to.
 
For '''criu dump''', this option enables dumping ''datagram'' unix sockets with additional information about that other ("external") socket it is connected to.
Line 30: Line 30:  
The plan for this is to extend the <code>--ext-unix-sk</code> semantics to work like this:
 
The plan for this is to extend the <code>--ext-unix-sk</code> semantics to work like this:
   −
* On dump, the <code>--ext-unix-sk ''id''</code> says that socket with <code>''id''</code> is OK to be disconnected
+
* On dump, the <code>--external unix[id]</code> says that socket with <code>''id''</code> is OK to be disconnected
* On restore, the <code>--ext-unix-sk ''id''[=''path'']</code> says that the socket <code>''id''</code> should be reconnected back to the path it say on dump (or to the specified <code>''path''</code>).
+
* On restore, the <code>--ext-unix-sk ''id''[=''path'']</code> says that the socket <code>''id''</code> should be reconnected back to the path it say on dump (or to the specified <code>''path''</code>) (THIS IS IN PLANS!)
    
=== socketpair ===
 
=== socketpair ===
Line 39: Line 39:  
On dump, put inode of this socket in <code>--ext-unix-sk</code> option, for example:
 
On dump, put inode of this socket in <code>--ext-unix-sk</code> option, for example:
   −
  criu dump -D images -o dump.log -v4 --ext-unix-sk=11890815 -t 16528
+
  criu dump -D images -o dump.log -v4 --external unix[11890815] -t 16528
    
On restore, the server should create a new pair and call <code>criu restore</code> asking it to [[Inheriting FDs on restore|inherit]] one.
 
On restore, the server should create a new pair and call <code>criu restore</code> asking it to [[Inheriting FDs on restore|inherit]] one.