xref: /qemu/tests/qemu-iotests/307.out (revision 3cc72cdb)
1wrote 4096/4096 bytes at offset 0
24 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
3
4=== Launch VM ===
5{"execute": "nbd-server-start", "arguments": {"addr": {"data": {"path": "SOCK_DIR/PID-socket"}, "type": "unix"}}}
6{"return": {}}
7{"execute": "query-block-exports", "arguments": {}}
8{"return": []}
9
10=== Create a read-only NBD export ===
11{"execute": "block-export-add", "arguments": {"id": "export0", "node-name": "fmt", "type": "nbd"}}
12{"return": {}}
13{"execute": "query-block-exports", "arguments": {}}
14{"return": [{"id": "export0", "node-name": "fmt", "shutting-down": false, "type": "nbd"}]}
15exports available: 1
16 export: 'fmt'
17  size:  67108864
18  flags: 0x158f ( readonly flush fua df multi cache block-status-payload )
19  min block: XXX
20  opt block: XXX
21  max block: XXX
22  transaction size: 64-bit
23  available meta contexts: 1
24   base:allocation
25
26
27=== Try a few invalid things ===
28{"execute": "block-export-add", "arguments": {"id": "#invalid", "node-name": "fmt", "type": "nbd"}}
29{"error": {"class": "GenericError", "desc": "Invalid block export id"}}
30{"execute": "block-export-add", "arguments": {"id": "export0", "node-name": "fmt", "type": "nbd"}}
31{"error": {"class": "GenericError", "desc": "Block export id 'export0' is already in use"}}
32{"execute": "block-export-add", "arguments": {"id": "export1", "node-name": "ro", "type": "nbd", "writable": true}}
33{"error": {"class": "GenericError", "desc": "Cannot export read-only node as writable"}}
34{"execute": "block-export-del", "arguments": {"id": "export1"}}
35{"error": {"class": "GenericError", "desc": "Export 'export1' is not found"}}
36{"execute": "query-block-exports", "arguments": {}}
37{"return": [{"id": "export0", "node-name": "fmt", "shutting-down": false, "type": "nbd"}]}
38
39=== Move export to an iothread ===
40{"execute": "device_add", "arguments": {"drive": "fmt", "driver": "scsi-hd", "id": "sda"}}
41{"return": {}}
42{"execute": "query-block-exports", "arguments": {}}
43{"return": [{"id": "export0", "node-name": "fmt", "shutting-down": false, "type": "nbd"}]}
44exports available: 1
45 export: 'fmt'
46  size:  67108864
47  flags: 0x158f ( readonly flush fua df multi cache block-status-payload )
48  min block: XXX
49  opt block: XXX
50  max block: XXX
51  transaction size: 64-bit
52  available meta contexts: 1
53   base:allocation
54
55
56=== Add export with conflicting iothread ===
57{"execute": "device_add", "arguments": {"drive": "null", "driver": "scsi-hd", "id": "sdb"}}
58{"return": {}}
59{"execute": "block-export-add", "arguments": {"fixed-iothread": true, "id": "export1", "iothread": "iothread1", "node-name": "null", "type": "nbd", "writable": true}}
60{"error": {"class": "GenericError", "desc": "Cannot change iothread of active block backend"}}
61{"execute": "block-export-add", "arguments": {"fixed-iothread": false, "id": "export1", "iothread": "iothread1", "node-name": "null", "type": "nbd", "writable": true}}
62{"error": {"class": "GenericError", "desc": "Permission conflict on node 'null': permissions 'write' are both required by an unnamed block device (uses node 'null' as 'root' child) and unshared by block device 'sdb' (uses node 'null' as 'root' child)."}}
63
64=== Add a writable export ===
65{"execute": "block-export-add", "arguments": {"description": "This is the writable second export", "id": "export1", "name": "export1", "node-name": "fmt", "type": "nbd", "writable": true, "writethrough": true}}
66{"error": {"class": "GenericError", "desc": "Permission conflict on node 'fmt': permissions 'write' are both required by an unnamed block device (uses node 'fmt' as 'root' child) and unshared by block device 'sda' (uses node 'fmt' as 'root' child)."}}
67{"execute": "device_del", "arguments": {"id": "sda"}}
68{"return": {}}
69{"data": {"device": "sda", "path": "/machine/peripheral/sda"}, "event": "DEVICE_DELETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}}
70{"execute": "device_add", "arguments": {"drive": "fmt", "driver": "scsi-hd", "id": "sda", "share-rw": true}}
71{"return": {}}
72{"execute": "block-export-add", "arguments": {"description": "This is the writable second export", "id": "export1", "name": "export1", "node-name": "fmt", "type": "nbd", "writable": true, "writethrough": true}}
73{"return": {}}
74{"execute": "query-block-exports", "arguments": {}}
75{"return": [{"id": "export1", "node-name": "fmt", "shutting-down": false, "type": "nbd"}, {"id": "export0", "node-name": "fmt", "shutting-down": false, "type": "nbd"}]}
76exports available: 2
77 export: 'fmt'
78  size:  67108864
79  flags: 0x158f ( readonly flush fua df multi cache block-status-payload )
80  min block: XXX
81  opt block: XXX
82  max block: XXX
83  transaction size: 64-bit
84  available meta contexts: 1
85   base:allocation
86 export: 'export1'
87  description: This is the writable second export
88  size:  67108864
89  flags: 0x1ded ( flush fua trim zeroes df multi cache fast-zero block-status-payload )
90  min block: XXX
91  opt block: XXX
92  max block: XXX
93  transaction size: 64-bit
94  available meta contexts: 1
95   base:allocation
96
97
98=== Connect qemu-io to export1, try removing exports ===
99read 4096/4096 bytes at offset 0
1004 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
101
102wrote 4096/4096 bytes at offset 4096
1034 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
104
105{"execute": "block-export-del", "arguments": {"id": "export1"}}
106{"error": {"class": "GenericError", "desc": "export 'export1' still in use"}}
107{"execute": "block-export-del", "arguments": {"id": "export0"}}
108{"return": {}}
109[{"data": {"id": "export0"}, "event": "BLOCK_EXPORT_DELETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}}]
110{"execute": "query-block-exports", "arguments": {}}
111{"return": [{"id": "export1", "node-name": "fmt", "shutting-down": false, "type": "nbd"}]}
112exports available: 1
113 export: 'export1'
114  description: This is the writable second export
115  size:  67108864
116  flags: 0x1ded ( flush fua trim zeroes df multi cache fast-zero block-status-payload )
117  min block: XXX
118  opt block: XXX
119  max block: XXX
120  transaction size: 64-bit
121  available meta contexts: 1
122   base:allocation
123
124
125=== Connect qemu-io again, try force removing ===
126{"execute": "block-export-del", "arguments": {"id": "export1"}}
127{"error": {"class": "GenericError", "desc": "export 'export1' still in use"}}
128{"execute": "block-export-del", "arguments": {"id": "export1", "mode": "hard"}}
129{"return": {}}
130read failed: Input/output error
131
132{"execute": "query-block-exports", "arguments": {}}
133{"return": []}
134exports available: 0
135
136
137=== Shut down QEMU ===
138