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. |