##// END OF EJS Templates
test: glob out variation from 'HGPORT' length...
Pierre-Yves David -
r32090:f942dc80 stable
parent child Browse files
Show More
@@ -1,904 +1,905 b''
1 1 #require killdaemons serve zstd
2 2
3 3 Client version is embedded in HTTP request and is effectively dynamic. Pin the
4 4 version so behavior is deterministic.
5 5
6 6 $ cat > fakeversion.py << EOF
7 7 > from mercurial import util
8 8 > util.version = lambda: '4.2'
9 9 > EOF
10 10
11 11 $ cat >> $HGRCPATH << EOF
12 12 > [extensions]
13 13 > fakeversion = `pwd`/fakeversion.py
14 14 > EOF
15 15
16 16 $ hg init server0
17 17 $ cd server0
18 18 $ touch foo
19 19 $ hg -q commit -A -m initial
20 20
21 21 Also disable compression because zstd is optional and causes output to vary
22 22 and because debugging partial responses is hard when compression is involved
23 23
24 24 $ cat > .hg/hgrc << EOF
25 25 > [extensions]
26 26 > badserver = $TESTDIR/badserverext.py
27 27 > [server]
28 28 > compressionengines = none
29 29 > EOF
30 30
31 31 Failure to accept() socket should result in connection related error message
32 32
33 33 $ hg --config badserver.closebeforeaccept=true serve -p $HGPORT -d --pid-file=hg.pid
34 34 $ cat hg.pid > $DAEMON_PIDS
35 35
36 36 $ hg clone http://localhost:$HGPORT/ clone
37 37 abort: error: Connection reset by peer (no-windows !)
38 38 abort: error: An existing connection was forcibly closed by the remote host (windows !)
39 39 [255]
40 40
41 41 (The server exits on its own, but there is a race between that and starting a new server.
42 42 So ensure the process is dead.)
43 43
44 44 $ killdaemons.py $DAEMON_PIDS
45 45
46 46 Failure immediately after accept() should yield connection related error message
47 47
48 48 $ hg --config badserver.closeafteraccept=true serve -p $HGPORT -d --pid-file=hg.pid
49 49 $ cat hg.pid > $DAEMON_PIDS
50 50
51 51 TODO: this usually outputs good results, but sometimes emits abort:
52 52 error: '' on FreeBSD and OS X.
53 53 What we ideally want are:
54 54
55 55 abort: error: Connection reset by peer (no-windows !)
56 56 abort: error: An existing connection was forcibly closed by the remote host (windows !)
57 57
58 58 The flakiness in this output was observable easily with
59 59 --runs-per-test=20 on macOS 10.12 during the freeze for 4.2.
60 60 $ hg clone http://localhost:$HGPORT/ clone
61 61 abort: error: * (glob)
62 62 [255]
63 63
64 64 $ killdaemons.py $DAEMON_PIDS
65 65
66 66 Failure to read all bytes in initial HTTP request should yield connection related error message
67 67
68 68 $ hg --config badserver.closeafterrecvbytes=1 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
69 69 $ cat hg.pid > $DAEMON_PIDS
70 70
71 71 TODO this error message is not very good
72 72
73 73 $ hg clone http://localhost:$HGPORT/ clone
74 74 abort: error: (''|) (re)
75 75 [255]
76 76
77 77 $ killdaemons.py $DAEMON_PIDS
78 78
79 79 $ cat error.log
80 80 readline\(1 from (-1|65537)\) -> \(1\) G (re)
81 81 read limit reached; closing socket
82 82
83 83 $ rm -f error.log
84 84
85 85 Same failure, but server reads full HTTP request line
86 86
87 87 $ hg --config badserver.closeafterrecvbytes=40 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
88 88 $ cat hg.pid > $DAEMON_PIDS
89 89 $ hg clone http://localhost:$HGPORT/ clone
90 90 abort: error: (''|) (re)
91 91 [255]
92 92
93 93 $ killdaemons.py $DAEMON_PIDS
94 94
95 95 $ cat error.log
96 96 readline\(40 from (-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
97 97 readline(7 from -1) -> (7) Accept-
98 98 read limit reached; closing socket
99 99
100 100 $ rm -f error.log
101 101
102 102 Failure on subsequent HTTP request on the same socket (cmd?batch)
103 103
104 104 $ hg --config badserver.closeafterrecvbytes=210 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
105 105 $ cat hg.pid > $DAEMON_PIDS
106 106 $ hg clone http://localhost:$HGPORT/ clone
107 107 abort: error: (''|) (re)
108 108 [255]
109 109
110 110 $ killdaemons.py $DAEMON_PIDS
111 111
112 112 $ cat error.log
113 113 readline\(210 from (-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
114 114 readline(177 from -1) -> (27) Accept-Encoding: identity\r\n
115 115 readline(150 from -1) -> (35) accept: application/mercurial-0.1\r\n
116 readline(115 from -1) -> (23) host: localhost:$HGPORT\r\n
117 readline(92 from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
118 readline(43 from -1) -> (2) \r\n
116 readline(115 from -1) -> (2?) host: localhost:$HGPORT\r\n (glob)
117 readline(9? from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
118 readline(4? from -1) -> (2) \r\n (glob)
119 119 write(36) -> HTTP/1.1 200 Script output follows\r\n
120 120 write(23) -> Server: badhttpserver\r\n
121 121 write(37) -> Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
122 122 write(41) -> Content-Type: application/mercurial-0.1\r\n
123 123 write(21) -> Content-Length: 405\r\n
124 124 write(2) -> \r\n
125 125 write(405) -> lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
126 readline\(41 from (-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
127 readline(15 from -1) -> (15) Accept-Encoding
126 readline\(4[12] from (-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
127 readline(1? from -1) -> (1?) Accept-Encoding* (glob)
128 128 read limit reached; closing socket
129 129 readline\(210 from (-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
130 130 readline(184 from -1) -> (27) Accept-Encoding: identity\r\n
131 131 readline(157 from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
132 132 readline(128 from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
133 133 readline(87 from -1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
134 134 readline(39 from -1) -> (35) accept: application/mercurial-0.1\r\n
135 135 readline(4 from -1) -> (4) host
136 136 read limit reached; closing socket
137 137
138 138 $ rm -f error.log
139 139
140 140 Failure to read getbundle HTTP request
141 141
142 142 $ hg --config badserver.closeafterrecvbytes=292 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
143 143 $ cat hg.pid > $DAEMON_PIDS
144 144 $ hg clone http://localhost:$HGPORT/ clone
145 145 requesting all changes
146 146 abort: error: (''|) (re)
147 147 [255]
148 148
149 149 $ killdaemons.py $DAEMON_PIDS
150 150
151 151 $ cat error.log
152 152 readline\(292 from (-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
153 153 readline(259 from -1) -> (27) Accept-Encoding: identity\r\n
154 154 readline(232 from -1) -> (35) accept: application/mercurial-0.1\r\n
155 readline(197 from -1) -> (23) host: localhost:$HGPORT\r\n
156 readline(174 from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
157 readline(125 from -1) -> (2) \r\n
155 readline(197 from -1) -> (2?) host: localhost:$HGPORT\r\n (glob)
156 readline(17? from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
157 readline(12? from -1) -> (2) \r\n (glob)
158 158 write(36) -> HTTP/1.1 200 Script output follows\r\n
159 159 write(23) -> Server: badhttpserver\r\n
160 160 write(37) -> Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
161 161 write(41) -> Content-Type: application/mercurial-0.1\r\n
162 162 write(21) -> Content-Length: 405\r\n
163 163 write(2) -> \r\n
164 164 write(405) -> lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
165 readline\(123 from (-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
166 readline(97 from -1) -> (27) Accept-Encoding: identity\r\n
167 readline(70 from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
168 readline(41 from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
165 readline\(12[34] from (-1|65537)\) -> \(2[67]\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
166 readline(9? from -1) -> (27) Accept-Encoding: identity\r\n (glob)
167 readline(7? from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
168 readline(4? from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
169 readline(1 from -1) -> (1) x (?)
169 170 read limit reached; closing socket
170 171 readline\(292 from (-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
171 172 readline(266 from -1) -> (27) Accept-Encoding: identity\r\n
172 173 readline(239 from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
173 174 readline(210 from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
174 175 readline(169 from -1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
175 176 readline(121 from -1) -> (35) accept: application/mercurial-0.1\r\n
176 readline(86 from -1) -> (23) host: localhost:$HGPORT\r\n
177 readline(63 from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
178 readline(14 from -1) -> (2) \r\n
177 readline(86 from -1) -> (2?) host: localhost:$HGPORT\r\n (glob)
178 readline(6? from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
179 readline(1? from -1) -> (2) \r\n (glob)
179 180 write(36) -> HTTP/1.1 200 Script output follows\r\n
180 181 write(23) -> Server: badhttpserver\r\n
181 182 write(37) -> Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
182 183 write(41) -> Content-Type: application/mercurial-0.1\r\n
183 184 write(20) -> Content-Length: 42\r\n
184 185 write(2) -> \r\n
185 186 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
186 readline\(12 from (-1|65537)\) -> \(12\) GET /\?cmd=ge (re)
187 readline\(1[23] from (-1|65537)\) -> \(1[23]\) GET /\?cmd=ge.? (re)
187 188 read limit reached; closing socket
188 189 readline\(292 from (-1|65537)\) -> \(30\) GET /\?cmd=getbundle HTTP/1.1\\r\\n (re)
189 190 readline(262 from -1) -> (27) Accept-Encoding: identity\r\n
190 191 readline(235 from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
191 192 readline(206 from -1) -> (206) x-hgarg-1: bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Ali
192 193 read limit reached; closing socket
193 194
194 195 $ rm -f error.log
195 196
196 197 Now do a variation using POST to send arguments
197 198
198 199 $ hg --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=315 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
199 200 $ cat hg.pid > $DAEMON_PIDS
200 201
201 202 $ hg clone http://localhost:$HGPORT/ clone
202 203 abort: error: (''|) (re)
203 204 [255]
204 205
205 206 $ killdaemons.py $DAEMON_PIDS
206 207
207 208 $ cat error.log
208 209 readline\(315 from (-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
209 210 readline(282 from -1) -> (27) Accept-Encoding: identity\r\n
210 211 readline(255 from -1) -> (35) accept: application/mercurial-0.1\r\n
211 readline(220 from -1) -> (23) host: localhost:$HGPORT\r\n
212 readline(197 from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
213 readline(148 from -1) -> (2) \r\n
212 readline(220 from -1) -> (2?) host: localhost:$HGPORT\r\n (glob)
213 readline(19? from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
214 readline(14? from -1) -> (2) \r\n (glob)
214 215 write(36) -> HTTP/1.1 200 Script output follows\r\n
215 216 write(23) -> Server: badhttpserver\r\n
216 217 write(37) -> Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
217 218 write(41) -> Content-Type: application/mercurial-0.1\r\n
218 219 write(21) -> Content-Length: 418\r\n
219 220 write(2) -> \r\n
220 221 write(418) -> lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httppostargs httpmediatype=0.1rx,0.1tx,0.2tx compression=none
221 readline\(146 from (-1|65537)\) -> \(27\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
222 readline(119 from -1) -> (27) Accept-Encoding: identity\r\n
223 readline(92 from -1) -> (41) content-type: application/mercurial-0.1\r\n
224 readline(51 from -1) -> (19) vary: X-HgProto-1\r\n
225 readline(32 from -1) -> (19) x-hgargs-post: 28\r\n
226 readline(13 from -1) -> (13) x-hgproto-1:
222 readline\(14[67] from (-1|65537)\) -> \(2[67]\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
223 readline\(1(19|20) from -1\) -> \(27\) Accept-Encoding: identity\\r\\n (re)
224 readline(9? from -1) -> (41) content-type: application/mercurial-0.1\r\n (glob)
225 readline(5? from -1) -> (19) vary: X-HgProto-1\r\n (glob)
226 readline(3? from -1) -> (19) x-hgargs-post: 28\r\n (glob)
227 readline(1? from -1) -> (1?) x-hgproto-1: * (glob)
227 228 read limit reached; closing socket
228 229 readline\(315 from (-1|65537)\) -> \(27\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
229 230 readline(288 from -1) -> (27) Accept-Encoding: identity\r\n
230 231 readline(261 from -1) -> (41) content-type: application/mercurial-0.1\r\n
231 232 readline(220 from -1) -> (19) vary: X-HgProto-1\r\n
232 233 readline(201 from -1) -> (19) x-hgargs-post: 28\r\n
233 234 readline(182 from -1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
234 235 readline(134 from -1) -> (35) accept: application/mercurial-0.1\r\n
235 236 readline(99 from -1) -> (20) content-length: 28\r\n
236 readline(79 from -1) -> (23) host: localhost:$HGPORT\r\n
237 readline(56 from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
238 readline(7 from -1) -> (2) \r\n
239 read(5 from 28) -> (5) cmds=
237 readline(79 from -1) -> (2?) host: localhost:$HGPORT\r\n (glob)
238 readline(5? from -1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
239 readline(? from -1) -> (2) \r\n (glob)
240 read(? from 28) -> (?) cmds=* (glob)
240 241 read limit reached, closing socket
241 242 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
242 243
243 244 $ rm -f error.log
244 245
245 246 Now move on to partial server responses
246 247
247 248 Server sends a single character from the HTTP response line
248 249
249 250 $ hg --config badserver.closeaftersendbytes=1 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
250 251 $ cat hg.pid > $DAEMON_PIDS
251 252
252 253 $ hg clone http://localhost:$HGPORT/ clone
253 254 abort: error: H
254 255 [255]
255 256
256 257 $ killdaemons.py $DAEMON_PIDS
257 258
258 259 $ cat error.log
259 260 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
260 261 readline(-1) -> (27) Accept-Encoding: identity\r\n
261 262 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
262 readline(-1) -> (23) host: localhost:$HGPORT\r\n
263 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
263 264 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
264 265 readline(-1) -> (2) \r\n
265 266 write(1 from 36) -> (0) H
266 267 write limit reached; closing socket
267 268 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
268 269
269 270 $ rm -f error.log
270 271
271 272 Server sends an incomplete capabilities response body
272 273
273 274 $ hg --config badserver.closeaftersendbytes=180 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
274 275 $ cat hg.pid > $DAEMON_PIDS
275 276
276 277 $ hg clone http://localhost:$HGPORT/ clone
277 278 abort: HTTP request error (incomplete response; expected 385 bytes got 20)
278 279 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
279 280 [255]
280 281
281 282 $ killdaemons.py $DAEMON_PIDS
282 283
283 284 $ cat error.log
284 285 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
285 286 readline(-1) -> (27) Accept-Encoding: identity\r\n
286 287 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
287 readline(-1) -> (23) host: localhost:$HGPORT\r\n
288 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
288 289 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
289 290 readline(-1) -> (2) \r\n
290 291 write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n
291 292 write(23 from 23) -> (121) Server: badhttpserver\r\n
292 293 write(37 from 37) -> (84) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
293 294 write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n
294 295 write(21 from 21) -> (22) Content-Length: 405\r\n
295 296 write(2 from 2) -> (20) \r\n
296 297 write(20 from 405) -> (0) lookup changegroupsu
297 298 write limit reached; closing socket
298 299
299 300 $ rm -f error.log
300 301
301 302 Server sends incomplete headers for batch request
302 303
303 304 $ hg --config badserver.closeaftersendbytes=695 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
304 305 $ cat hg.pid > $DAEMON_PIDS
305 306
306 307 TODO this output is horrible
307 308
308 309 $ hg clone http://localhost:$HGPORT/ clone
309 310 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
310 311 ---%<--- (application/mercuria)
311 312
312 313 ---%<---
313 314 !
314 315 [255]
315 316
316 317 $ killdaemons.py $DAEMON_PIDS
317 318
318 319 $ cat error.log
319 320 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
320 321 readline(-1) -> (27) Accept-Encoding: identity\r\n
321 322 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
322 readline(-1) -> (23) host: localhost:$HGPORT\r\n
323 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
323 324 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
324 325 readline(-1) -> (2) \r\n
325 326 write(36 from 36) -> (659) HTTP/1.1 200 Script output follows\r\n
326 327 write(23 from 23) -> (636) Server: badhttpserver\r\n
327 328 write(37 from 37) -> (599) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
328 329 write(41 from 41) -> (558) Content-Type: application/mercurial-0.1\r\n
329 330 write(21 from 21) -> (537) Content-Length: 405\r\n
330 331 write(2 from 2) -> (535) \r\n
331 332 write(405 from 405) -> (130) lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
332 333 readline\((-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
333 334 readline(-1) -> (27) Accept-Encoding: identity\r\n
334 335 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
335 336 readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
336 337 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
337 338 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
338 readline(-1) -> (23) host: localhost:$HGPORT\r\n
339 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
339 340 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
340 341 readline(-1) -> (2) \r\n
341 342 write(36 from 36) -> (94) HTTP/1.1 200 Script output follows\r\n
342 343 write(23 from 23) -> (71) Server: badhttpserver\r\n
343 344 write(37 from 37) -> (34) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
344 345 write(34 from 41) -> (0) Content-Type: application/mercuria
345 346 write limit reached; closing socket
346 347 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
347 348
348 349 $ rm -f error.log
349 350
350 351 Server sends an incomplete HTTP response body to batch request
351 352
352 353 $ hg --config badserver.closeaftersendbytes=760 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
353 354 $ cat hg.pid > $DAEMON_PIDS
354 355
355 356 TODO client spews a stack due to uncaught ValueError in batch.results()
356 357 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
357 358 [1]
358 359
359 360 $ killdaemons.py $DAEMON_PIDS
360 361
361 362 $ cat error.log
362 363 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
363 364 readline(-1) -> (27) Accept-Encoding: identity\r\n
364 365 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
365 readline(-1) -> (23) host: localhost:$HGPORT\r\n
366 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
366 367 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
367 368 readline(-1) -> (2) \r\n
368 369 write(36 from 36) -> (724) HTTP/1.1 200 Script output follows\r\n
369 370 write(23 from 23) -> (701) Server: badhttpserver\r\n
370 371 write(37 from 37) -> (664) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
371 372 write(41 from 41) -> (623) Content-Type: application/mercurial-0.1\r\n
372 373 write(21 from 21) -> (602) Content-Length: 405\r\n
373 374 write(2 from 2) -> (600) \r\n
374 375 write(405 from 405) -> (195) lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
375 376 readline\((-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
376 377 readline(-1) -> (27) Accept-Encoding: identity\r\n
377 378 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
378 379 readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
379 380 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
380 381 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
381 readline(-1) -> (23) host: localhost:$HGPORT\r\n
382 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
382 383 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
383 384 readline(-1) -> (2) \r\n
384 385 write(36 from 36) -> (159) HTTP/1.1 200 Script output follows\r\n
385 386 write(23 from 23) -> (136) Server: badhttpserver\r\n
386 387 write(37 from 37) -> (99) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
387 388 write(41 from 41) -> (58) Content-Type: application/mercurial-0.1\r\n
388 389 write(20 from 20) -> (38) Content-Length: 42\r\n
389 390 write(2 from 2) -> (36) \r\n
390 391 write(36 from 42) -> (0) 96ee1d7354c4ad7372047672c36a1f561e3a
391 392 write limit reached; closing socket
392 393
393 394 $ rm -f error.log
394 395
395 396 Server sends incomplete headers for getbundle response
396 397
397 398 $ hg --config badserver.closeaftersendbytes=895 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
398 399 $ cat hg.pid > $DAEMON_PIDS
399 400
400 401 TODO this output is terrible
401 402
402 403 $ hg clone http://localhost:$HGPORT/ clone
403 404 requesting all changes
404 405 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
405 406 ---%<--- (application/mercuri)
406 407
407 408 ---%<---
408 409 !
409 410 [255]
410 411
411 412 $ killdaemons.py $DAEMON_PIDS
412 413
413 414 $ cat error.log
414 415 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
415 416 readline(-1) -> (27) Accept-Encoding: identity\r\n
416 417 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
417 readline(-1) -> (23) host: localhost:$HGPORT\r\n
418 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
418 419 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
419 420 readline(-1) -> (2) \r\n
420 421 write(36 from 36) -> (859) HTTP/1.1 200 Script output follows\r\n
421 422 write(23 from 23) -> (836) Server: badhttpserver\r\n
422 423 write(37 from 37) -> (799) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
423 424 write(41 from 41) -> (758) Content-Type: application/mercurial-0.1\r\n
424 425 write(21 from 21) -> (737) Content-Length: 405\r\n
425 426 write(2 from 2) -> (735) \r\n
426 427 write(405 from 405) -> (330) lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
427 428 readline\((-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
428 429 readline(-1) -> (27) Accept-Encoding: identity\r\n
429 430 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
430 431 readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
431 432 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
432 433 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
433 readline(-1) -> (23) host: localhost:$HGPORT\r\n
434 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
434 435 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
435 436 readline(-1) -> (2) \r\n
436 437 write(36 from 36) -> (294) HTTP/1.1 200 Script output follows\r\n
437 438 write(23 from 23) -> (271) Server: badhttpserver\r\n
438 439 write(37 from 37) -> (234) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
439 440 write(41 from 41) -> (193) Content-Type: application/mercurial-0.1\r\n
440 441 write(20 from 20) -> (173) Content-Length: 42\r\n
441 442 write(2 from 2) -> (171) \r\n
442 443 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
443 444 readline\((-1|65537)\) -> \(30\) GET /\?cmd=getbundle HTTP/1.1\\r\\n (re)
444 445 readline(-1) -> (27) Accept-Encoding: identity\r\n
445 446 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
446 447 readline(-1) -> (396) x-hgarg-1: bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
447 448 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
448 449 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
449 readline(-1) -> (23) host: localhost:$HGPORT\r\n
450 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
450 451 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
451 452 readline(-1) -> (2) \r\n
452 453 write(36 from 36) -> (93) HTTP/1.1 200 Script output follows\r\n
453 454 write(23 from 23) -> (70) Server: badhttpserver\r\n
454 455 write(37 from 37) -> (33) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
455 456 write(33 from 41) -> (0) Content-Type: application/mercuri
456 457 write limit reached; closing socket
457 458 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
458 459
459 460 $ rm -f error.log
460 461
461 462 Server sends empty HTTP body for getbundle
462 463
463 464 $ hg --config badserver.closeaftersendbytes=933 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
464 465 $ cat hg.pid > $DAEMON_PIDS
465 466
466 467 $ hg clone http://localhost:$HGPORT/ clone
467 468 requesting all changes
468 469 abort: HTTP request error (incomplete response)
469 470 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
470 471 [255]
471 472
472 473 $ killdaemons.py $DAEMON_PIDS
473 474
474 475 $ cat error.log
475 476 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
476 477 readline(-1) -> (27) Accept-Encoding: identity\r\n
477 478 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
478 readline(-1) -> (23) host: localhost:$HGPORT\r\n
479 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
479 480 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
480 481 readline(-1) -> (2) \r\n
481 482 write(36 from 36) -> (897) HTTP/1.1 200 Script output follows\r\n
482 483 write(23 from 23) -> (874) Server: badhttpserver\r\n
483 484 write(37 from 37) -> (837) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
484 485 write(41 from 41) -> (796) Content-Type: application/mercurial-0.1\r\n
485 486 write(21 from 21) -> (775) Content-Length: 405\r\n
486 487 write(2 from 2) -> (773) \r\n
487 488 write(405 from 405) -> (368) lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
488 489 readline\((-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
489 490 readline(-1) -> (27) Accept-Encoding: identity\r\n
490 491 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
491 492 readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
492 493 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
493 494 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
494 readline(-1) -> (23) host: localhost:$HGPORT\r\n
495 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
495 496 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
496 497 readline(-1) -> (2) \r\n
497 498 write(36 from 36) -> (332) HTTP/1.1 200 Script output follows\r\n
498 499 write(23 from 23) -> (309) Server: badhttpserver\r\n
499 500 write(37 from 37) -> (272) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
500 501 write(41 from 41) -> (231) Content-Type: application/mercurial-0.1\r\n
501 502 write(20 from 20) -> (211) Content-Length: 42\r\n
502 503 write(2 from 2) -> (209) \r\n
503 504 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
504 505 readline\((-1|65537)\) -> \(30\) GET /\?cmd=getbundle HTTP/1.1\\r\\n (re)
505 506 readline(-1) -> (27) Accept-Encoding: identity\r\n
506 507 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
507 508 readline(-1) -> (396) x-hgarg-1: bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
508 509 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
509 510 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
510 readline(-1) -> (23) host: localhost:$HGPORT\r\n
511 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
511 512 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
512 513 readline(-1) -> (2) \r\n
513 514 write(36 from 36) -> (131) HTTP/1.1 200 Script output follows\r\n
514 515 write(23 from 23) -> (108) Server: badhttpserver\r\n
515 516 write(37 from 37) -> (71) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
516 517 write(41 from 41) -> (30) Content-Type: application/mercurial-0.2\r\n
517 518 write(28 from 28) -> (2) Transfer-Encoding: chunked\r\n
518 519 write(2 from 2) -> (0) \r\n
519 520 write limit reached; closing socket
520 521 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
521 522
522 523 $ rm -f error.log
523 524
524 525 Server sends partial compression string
525 526
526 527 $ hg --config badserver.closeaftersendbytes=945 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
527 528 $ cat hg.pid > $DAEMON_PIDS
528 529
529 530 $ hg clone http://localhost:$HGPORT/ clone
530 531 requesting all changes
531 532 abort: HTTP request error (incomplete response; expected 1 bytes got 3)
532 533 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
533 534 [255]
534 535
535 536 $ killdaemons.py $DAEMON_PIDS
536 537
537 538 $ cat error.log
538 539 readline\((-1|65537)\) -> \(33\) GET /\?cmd=capabilities HTTP/1.1\\r\\n (re)
539 540 readline(-1) -> (27) Accept-Encoding: identity\r\n
540 541 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
541 readline(-1) -> (23) host: localhost:$HGPORT\r\n
542 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
542 543 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
543 544 readline(-1) -> (2) \r\n
544 545 write(36 from 36) -> (909) HTTP/1.1 200 Script output follows\r\n
545 546 write(23 from 23) -> (886) Server: badhttpserver\r\n
546 547 write(37 from 37) -> (849) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
547 548 write(41 from 41) -> (808) Content-Type: application/mercurial-0.1\r\n
548 549 write(21 from 21) -> (787) Content-Length: 405\r\n
549 550 write(2 from 2) -> (785) \r\n
550 551 write(405 from 405) -> (380) lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
551 552 readline\((-1|65537)\) -> \(26\) GET /\?cmd=batch HTTP/1.1\\r\\n (re)
552 553 readline(-1) -> (27) Accept-Encoding: identity\r\n
553 554 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
554 555 readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
555 556 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
556 557 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
557 readline(-1) -> (23) host: localhost:$HGPORT\r\n
558 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
558 559 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
559 560 readline(-1) -> (2) \r\n
560 561 write(36 from 36) -> (344) HTTP/1.1 200 Script output follows\r\n
561 562 write(23 from 23) -> (321) Server: badhttpserver\r\n
562 563 write(37 from 37) -> (284) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
563 564 write(41 from 41) -> (243) Content-Type: application/mercurial-0.1\r\n
564 565 write(20 from 20) -> (223) Content-Length: 42\r\n
565 566 write(2 from 2) -> (221) \r\n
566 567 write(42 from 42) -> (179) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
567 568 readline\((-1|65537)\) -> \(30\) GET /\?cmd=getbundle HTTP/1.1\\r\\n (re)
568 569 readline(-1) -> (27) Accept-Encoding: identity\r\n
569 570 readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
570 571 readline(-1) -> (396) x-hgarg-1: bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
571 572 readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=zstd,zlib,none,bzip2\r\n
572 573 readline(-1) -> (35) accept: application/mercurial-0.1\r\n
573 readline(-1) -> (23) host: localhost:$HGPORT\r\n
574 readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
574 575 readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
575 576 readline(-1) -> (2) \r\n
576 577 write(36 from 36) -> (143) HTTP/1.1 200 Script output follows\r\n
577 578 write(23 from 23) -> (120) Server: badhttpserver\r\n
578 579 write(37 from 37) -> (83) Date: Fri, 14 Apr 2017 00:00:00 GMT\r\n
579 580 write(41 from 41) -> (42) Content-Type: application/mercurial-0.2\r\n
580 581 write(28 from 28) -> (14) Transfer-Encoding: chunked\r\n
581 582 write(2 from 2) -> (12) \r\n
582 583 write(6 from 6) -> (6) 1\\r\\n\x04\\r\\n (esc)
583 584 write(6 from 9) -> (0) 4\r\nnon
584 585 write limit reached; closing socket
585 586 write(27) -> 15\r\nInternal Server Error\r\n
586 587
587 588 $ rm -f error.log
588 589
589 590 Server sends partial bundle2 header magic
590 591
591 592 $ hg --config badserver.closeaftersendbytes=954 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
592 593 $ cat hg.pid > $DAEMON_PIDS
593 594
594 595 $ hg clone http://localhost:$HGPORT/ clone
595 596 requesting all changes
596 597 abort: HTTP request error (incomplete response; expected 1 bytes got 3)
597 598 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
598 599 [255]
599 600
600 601 $ killdaemons.py $DAEMON_PIDS
601 602
602 603 $ tail -7 error.log
603 604 write(28 from 28) -> (23) Transfer-Encoding: chunked\r\n
604 605 write(2 from 2) -> (21) \r\n
605 606 write(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
606 607 write(9 from 9) -> (6) 4\r\nnone\r\n
607 608 write(6 from 9) -> (0) 4\r\nHG2
608 609 write limit reached; closing socket
609 610 write(27) -> 15\r\nInternal Server Error\r\n
610 611
611 612 $ rm -f error.log
612 613
613 614 Server sends incomplete bundle2 stream params length
614 615
615 616 $ hg --config badserver.closeaftersendbytes=963 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
616 617 $ cat hg.pid > $DAEMON_PIDS
617 618
618 619 $ hg clone http://localhost:$HGPORT/ clone
619 620 requesting all changes
620 621 abort: HTTP request error (incomplete response; expected 1 bytes got 3)
621 622 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
622 623 [255]
623 624
624 625 $ killdaemons.py $DAEMON_PIDS
625 626
626 627 $ tail -8 error.log
627 628 write(28 from 28) -> (32) Transfer-Encoding: chunked\r\n
628 629 write(2 from 2) -> (30) \r\n
629 630 write(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
630 631 write(9 from 9) -> (15) 4\r\nnone\r\n
631 632 write(9 from 9) -> (6) 4\r\nHG20\r\n
632 633 write(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
633 634 write limit reached; closing socket
634 635 write(27) -> 15\r\nInternal Server Error\r\n
635 636
636 637 $ rm -f error.log
637 638
638 639 Servers stops after bundle2 stream params header
639 640
640 641 $ hg --config badserver.closeaftersendbytes=966 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
641 642 $ cat hg.pid > $DAEMON_PIDS
642 643
643 644 $ hg clone http://localhost:$HGPORT/ clone
644 645 requesting all changes
645 646 abort: HTTP request error (incomplete response)
646 647 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
647 648 [255]
648 649
649 650 $ killdaemons.py $DAEMON_PIDS
650 651
651 652 $ tail -8 error.log
652 653 write(28 from 28) -> (35) Transfer-Encoding: chunked\r\n
653 654 write(2 from 2) -> (33) \r\n
654 655 write(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
655 656 write(9 from 9) -> (18) 4\r\nnone\r\n
656 657 write(9 from 9) -> (9) 4\r\nHG20\r\n
657 658 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
658 659 write limit reached; closing socket
659 660 write(27) -> 15\r\nInternal Server Error\r\n
660 661
661 662 $ rm -f error.log
662 663
663 664 Server stops sending after bundle2 part header length
664 665
665 666 $ hg --config badserver.closeaftersendbytes=975 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
666 667 $ cat hg.pid > $DAEMON_PIDS
667 668
668 669 $ hg clone http://localhost:$HGPORT/ clone
669 670 requesting all changes
670 671 abort: HTTP request error (incomplete response)
671 672 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
672 673 [255]
673 674
674 675 $ killdaemons.py $DAEMON_PIDS
675 676
676 677 $ tail -9 error.log
677 678 write(28 from 28) -> (44) Transfer-Encoding: chunked\r\n
678 679 write(2 from 2) -> (42) \r\n
679 680 write(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
680 681 write(9 from 9) -> (27) 4\r\nnone\r\n
681 682 write(9 from 9) -> (18) 4\r\nHG20\r\n
682 683 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
683 684 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
684 685 write limit reached; closing socket
685 686 write(27) -> 15\r\nInternal Server Error\r\n
686 687
687 688 $ rm -f error.log
688 689
689 690 Server stops sending after bundle2 part header
690 691
691 692 $ hg --config badserver.closeaftersendbytes=1022 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
692 693 $ cat hg.pid > $DAEMON_PIDS
693 694
694 695 $ hg clone http://localhost:$HGPORT/ clone
695 696 requesting all changes
696 697 adding changesets
697 698 transaction abort!
698 699 rollback completed
699 700 abort: HTTP request error (incomplete response)
700 701 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
701 702 [255]
702 703
703 704 $ killdaemons.py $DAEMON_PIDS
704 705
705 706 $ tail -10 error.log
706 707 write(28 from 28) -> (91) Transfer-Encoding: chunked\r\n
707 708 write(2 from 2) -> (89) \r\n
708 709 write(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
709 710 write(9 from 9) -> (74) 4\r\nnone\r\n
710 711 write(9 from 9) -> (65) 4\r\nHG20\r\n
711 712 write(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
712 713 write(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
713 714 write(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
714 715 write limit reached; closing socket
715 716 write(27) -> 15\r\nInternal Server Error\r\n
716 717
717 718 $ rm -f error.log
718 719
719 720 Server stops after bundle2 part payload chunk size
720 721
721 722 $ hg --config badserver.closeaftersendbytes=1031 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
722 723 $ cat hg.pid > $DAEMON_PIDS
723 724
724 725 $ hg clone http://localhost:$HGPORT/ clone
725 726 requesting all changes
726 727 adding changesets
727 728 transaction abort!
728 729 rollback completed
729 730 abort: HTTP request error (incomplete response)
730 731 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
731 732 [255]
732 733
733 734 $ killdaemons.py $DAEMON_PIDS
734 735
735 736 $ tail -11 error.log
736 737 write(28 from 28) -> (100) Transfer-Encoding: chunked\r\n
737 738 write(2 from 2) -> (98) \r\n
738 739 write(6 from 6) -> (92) 1\\r\\n\x04\\r\\n (esc)
739 740 write(9 from 9) -> (83) 4\r\nnone\r\n
740 741 write(9 from 9) -> (74) 4\r\nHG20\r\n
741 742 write(9 from 9) -> (65) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
742 743 write(9 from 9) -> (56) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
743 744 write(47 from 47) -> (9) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
744 745 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
745 746 write limit reached; closing socket
746 747 write(27) -> 15\r\nInternal Server Error\r\n
747 748
748 749 $ rm -f error.log
749 750
750 751 Server stops sending in middle of bundle2 payload chunk
751 752
752 753 $ hg --config badserver.closeaftersendbytes=1504 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
753 754 $ cat hg.pid > $DAEMON_PIDS
754 755
755 756 $ hg clone http://localhost:$HGPORT/ clone
756 757 requesting all changes
757 758 adding changesets
758 759 transaction abort!
759 760 rollback completed
760 761 abort: HTTP request error (incomplete response)
761 762 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
762 763 [255]
763 764
764 765 $ killdaemons.py $DAEMON_PIDS
765 766
766 767 $ tail -12 error.log
767 768 write(28 from 28) -> (573) Transfer-Encoding: chunked\r\n
768 769 write(2 from 2) -> (571) \r\n
769 770 write(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
770 771 write(9 from 9) -> (556) 4\r\nnone\r\n
771 772 write(9 from 9) -> (547) 4\r\nHG20\r\n
772 773 write(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
773 774 write(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
774 775 write(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
775 776 write(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
776 777 write(473 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
777 778 write limit reached; closing socket
778 779 write(27) -> 15\r\nInternal Server Error\r\n
779 780
780 781 $ rm -f error.log
781 782
782 783 Server stops sending after 0 length payload chunk size
783 784
784 785 $ hg --config badserver.closeaftersendbytes=1513 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
785 786 $ cat hg.pid > $DAEMON_PIDS
786 787
787 788 $ hg clone http://localhost:$HGPORT/ clone
788 789 requesting all changes
789 790 adding changesets
790 791 adding manifests
791 792 adding file changes
792 793 added 1 changesets with 1 changes to 1 files
793 794 transaction abort!
794 795 rollback completed
795 796 abort: HTTP request error (incomplete response)
796 797 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
797 798 [255]
798 799
799 800 $ killdaemons.py $DAEMON_PIDS
800 801
801 802 $ tail -13 error.log
802 803 write(28 from 28) -> (582) Transfer-Encoding: chunked\r\n
803 804 write(2 from 2) -> (580) \r\n
804 805 write(6 from 6) -> (574) 1\\r\\n\x04\\r\\n (esc)
805 806 write(9 from 9) -> (565) 4\r\nnone\r\n
806 807 write(9 from 9) -> (556) 4\r\nHG20\r\n
807 808 write(9 from 9) -> (547) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
808 809 write(9 from 9) -> (538) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
809 810 write(47 from 47) -> (491) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
810 811 write(9 from 9) -> (482) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
811 812 write(473 from 473) -> (9) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
812 813 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
813 814 write limit reached; closing socket
814 815 write(27) -> 15\r\nInternal Server Error\r\n
815 816
816 817 $ rm -f error.log
817 818
818 819 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
819 820 This is before the 0 size chunked transfer part that signals end of HTTP response.
820 821
821 822 $ hg --config badserver.closeaftersendbytes=1710 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
822 823 $ cat hg.pid > $DAEMON_PIDS
823 824
824 825 $ hg clone http://localhost:$HGPORT/ clone
825 826 requesting all changes
826 827 adding changesets
827 828 adding manifests
828 829 adding file changes
829 830 added 1 changesets with 1 changes to 1 files
830 831 updating to branch default
831 832 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
832 833
833 834 $ killdaemons.py $DAEMON_PIDS
834 835
835 836 $ tail -22 error.log
836 837 write(28 from 28) -> (779) Transfer-Encoding: chunked\r\n
837 838 write(2 from 2) -> (777) \r\n
838 839 write(6 from 6) -> (771) 1\\r\\n\x04\\r\\n (esc)
839 840 write(9 from 9) -> (762) 4\r\nnone\r\n
840 841 write(9 from 9) -> (753) 4\r\nHG20\r\n
841 842 write(9 from 9) -> (744) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
842 843 write(9 from 9) -> (735) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
843 844 write(47 from 47) -> (688) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
844 845 write(9 from 9) -> (679) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
845 846 write(473 from 473) -> (206) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
846 847 write(9 from 9) -> (197) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
847 848 write(9 from 9) -> (188) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
848 849 write(38 from 38) -> (150) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
849 850 write(9 from 9) -> (141) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
850 851 write(64 from 64) -> (77) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
851 852 write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
852 853 write(9 from 9) -> (59) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
853 854 write(41 from 41) -> (18) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
854 855 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
855 856 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
856 857 write limit reached; closing socket
857 858 write(27) -> 15\r\nInternal Server Error\r\n
858 859
859 860 $ rm -f error.log
860 861 $ rm -rf clone
861 862
862 863 Server sends a size 0 chunked-transfer size without terminating \r\n
863 864
864 865 $ hg --config badserver.closeaftersendbytes=1713 serve -p $HGPORT -d --pid-file=hg.pid -E error.log
865 866 $ cat hg.pid > $DAEMON_PIDS
866 867
867 868 $ hg clone http://localhost:$HGPORT/ clone
868 869 requesting all changes
869 870 adding changesets
870 871 adding manifests
871 872 adding file changes
872 873 added 1 changesets with 1 changes to 1 files
873 874 updating to branch default
874 875 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
875 876
876 877 $ killdaemons.py $DAEMON_PIDS
877 878
878 879 $ tail -23 error.log
879 880 write(28 from 28) -> (782) Transfer-Encoding: chunked\r\n
880 881 write(2 from 2) -> (780) \r\n
881 882 write(6 from 6) -> (774) 1\\r\\n\x04\\r\\n (esc)
882 883 write(9 from 9) -> (765) 4\r\nnone\r\n
883 884 write(9 from 9) -> (756) 4\r\nHG20\r\n
884 885 write(9 from 9) -> (747) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
885 886 write(9 from 9) -> (738) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
886 887 write(47 from 47) -> (691) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
887 888 write(9 from 9) -> (682) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
888 889 write(473 from 473) -> (209) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
889 890 write(9 from 9) -> (200) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
890 891 write(9 from 9) -> (191) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
891 892 write(38 from 38) -> (153) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
892 893 write(9 from 9) -> (144) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
893 894 write(64 from 64) -> (80) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
894 895 write(9 from 9) -> (71) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
895 896 write(9 from 9) -> (62) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
896 897 write(41 from 41) -> (21) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
897 898 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
898 899 write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
899 900 write(3 from 5) -> (0) 0\r\n
900 901 write limit reached; closing socket
901 902 write(27) -> 15\r\nInternal Server Error\r\n
902 903
903 904 $ rm -f error.log
904 905 $ rm -rf clone
General Comments 0
You need to be logged in to leave comments. Login now