##// END OF EJS Templates
tests: conditionalize test-http-bad-server.t for Python 3.5...
Gregory Szorc -
r41608:1016b81f default
parent child Browse files
Show More
@@ -1,743 +1,744 b''
1 test-abort-checkin.t
1 test-abort-checkin.t
2 test-absorb-edit-lines.t
2 test-absorb-edit-lines.t
3 test-absorb-filefixupstate.py
3 test-absorb-filefixupstate.py
4 test-absorb-phase.t
4 test-absorb-phase.t
5 test-absorb-rename.t
5 test-absorb-rename.t
6 test-absorb-strip.t
6 test-absorb-strip.t
7 test-absorb.t
7 test-absorb.t
8 test-add.t
8 test-add.t
9 test-addremove-similar.t
9 test-addremove-similar.t
10 test-addremove.t
10 test-addremove.t
11 test-alias.t
11 test-alias.t
12 test-amend-subrepo.t
12 test-amend-subrepo.t
13 test-amend.t
13 test-amend.t
14 test-ancestor.py
14 test-ancestor.py
15 test-annotate.py
15 test-annotate.py
16 test-annotate.t
16 test-annotate.t
17 test-arbitraryfilectx.t
17 test-arbitraryfilectx.t
18 test-archive-symlinks.t
18 test-archive-symlinks.t
19 test-archive.t
19 test-archive.t
20 test-atomictempfile.py
20 test-atomictempfile.py
21 test-audit-path.t
21 test-audit-path.t
22 test-audit-subrepo.t
22 test-audit-subrepo.t
23 test-automv.t
23 test-automv.t
24 test-backout.t
24 test-backout.t
25 test-backwards-remove.t
25 test-backwards-remove.t
26 test-bad-extension.t
26 test-bad-extension.t
27 test-bad-pull.t
27 test-bad-pull.t
28 test-basic.t
28 test-basic.t
29 test-batching.py
29 test-batching.py
30 test-bdiff.py
30 test-bdiff.py
31 test-bheads.t
31 test-bheads.t
32 test-bisect.t
32 test-bisect.t
33 test-bisect2.t
33 test-bisect2.t
34 test-bisect3.t
34 test-bisect3.t
35 test-blackbox.t
35 test-blackbox.t
36 test-bookflow.t
36 test-bookflow.t
37 test-bookmarks-current.t
37 test-bookmarks-current.t
38 test-bookmarks-merge.t
38 test-bookmarks-merge.t
39 test-bookmarks-pushpull.t
39 test-bookmarks-pushpull.t
40 test-bookmarks-rebase.t
40 test-bookmarks-rebase.t
41 test-bookmarks-strip.t
41 test-bookmarks-strip.t
42 test-bookmarks.t
42 test-bookmarks.t
43 test-branch-change.t
43 test-branch-change.t
44 test-branch-option.t
44 test-branch-option.t
45 test-branch-tag-confict.t
45 test-branch-tag-confict.t
46 test-branches.t
46 test-branches.t
47 test-bugzilla.t
47 test-bugzilla.t
48 test-bundle-phases.t
48 test-bundle-phases.t
49 test-bundle-r.t
49 test-bundle-r.t
50 test-bundle-type.t
50 test-bundle-type.t
51 test-bundle-vs-outgoing.t
51 test-bundle-vs-outgoing.t
52 test-bundle.t
52 test-bundle.t
53 test-bundle2-exchange.t
53 test-bundle2-exchange.t
54 test-bundle2-format.t
54 test-bundle2-format.t
55 test-bundle2-multiple-changegroups.t
55 test-bundle2-multiple-changegroups.t
56 test-bundle2-pushback.t
56 test-bundle2-pushback.t
57 test-bundle2-remote-changegroup.t
57 test-bundle2-remote-changegroup.t
58 test-cache-abuse.t
58 test-cache-abuse.t
59 test-cappedreader.py
59 test-cappedreader.py
60 test-casecollision-merge.t
60 test-casecollision-merge.t
61 test-casecollision.t
61 test-casecollision.t
62 test-casefolding.t
62 test-casefolding.t
63 test-cat.t
63 test-cat.t
64 test-cbor.py
64 test-cbor.py
65 test-censor.t
65 test-censor.t
66 test-changelog-exec.t
66 test-changelog-exec.t
67 test-check-code.t
67 test-check-code.t
68 test-check-commit.t
68 test-check-commit.t
69 test-check-config.py
69 test-check-config.py
70 test-check-config.t
70 test-check-config.t
71 test-check-execute.t
71 test-check-execute.t
72 test-check-help.t
72 test-check-help.t
73 test-check-interfaces.py
73 test-check-interfaces.py
74 test-check-module-imports.t
74 test-check-module-imports.t
75 test-check-py3-compat.t
75 test-check-py3-compat.t
76 test-check-pyflakes.t
76 test-check-pyflakes.t
77 test-check-pylint.t
77 test-check-pylint.t
78 test-check-shbang.t
78 test-check-shbang.t
79 test-children.t
79 test-children.t
80 test-churn.t
80 test-churn.t
81 test-clone-cgi.t
81 test-clone-cgi.t
82 test-clone-pull-corruption.t
82 test-clone-pull-corruption.t
83 test-clone-r.t
83 test-clone-r.t
84 test-clone-uncompressed.t
84 test-clone-uncompressed.t
85 test-clone-update-order.t
85 test-clone-update-order.t
86 test-clone.t
86 test-clone.t
87 test-clonebundles.t
87 test-clonebundles.t
88 test-close-head.t
88 test-close-head.t
89 test-commandserver.t
89 test-commandserver.t
90 test-commit-amend.t
90 test-commit-amend.t
91 test-commit-interactive.t
91 test-commit-interactive.t
92 test-commit-multiple.t
92 test-commit-multiple.t
93 test-commit-unresolved.t
93 test-commit-unresolved.t
94 test-commit.t
94 test-commit.t
95 test-committer.t
95 test-committer.t
96 test-completion.t
96 test-completion.t
97 test-config-env.py
97 test-config-env.py
98 test-config.t
98 test-config.t
99 test-conflict.t
99 test-conflict.t
100 test-confused-revert.t
100 test-confused-revert.t
101 test-context-metadata.t
101 test-context-metadata.t
102 test-context.py
102 test-context.py
103 test-contrib-check-code.t
103 test-contrib-check-code.t
104 test-contrib-check-commit.t
104 test-contrib-check-commit.t
105 test-contrib-dumprevlog.t
105 test-contrib-dumprevlog.t
106 test-contrib-perf.t
106 test-contrib-perf.t
107 test-contrib-relnotes.t
107 test-contrib-relnotes.t
108 test-contrib-testparseutil.t
108 test-contrib-testparseutil.t
109 test-contrib.t
109 test-contrib.t
110 test-convert-authormap.t
110 test-convert-authormap.t
111 test-convert-clonebranches.t
111 test-convert-clonebranches.t
112 test-convert-cvs-branch.t
112 test-convert-cvs-branch.t
113 test-convert-cvs-detectmerge.t
113 test-convert-cvs-detectmerge.t
114 test-convert-cvs-synthetic.t
114 test-convert-cvs-synthetic.t
115 test-convert-cvs.t
115 test-convert-cvs.t
116 test-convert-cvsnt-mergepoints.t
116 test-convert-cvsnt-mergepoints.t
117 test-convert-datesort.t
117 test-convert-datesort.t
118 test-convert-filemap.t
118 test-convert-filemap.t
119 test-convert-hg-sink.t
119 test-convert-hg-sink.t
120 test-convert-hg-source.t
120 test-convert-hg-source.t
121 test-convert-hg-startrev.t
121 test-convert-hg-startrev.t
122 test-convert-splicemap.t
122 test-convert-splicemap.t
123 test-convert-svn-sink.t
123 test-convert-svn-sink.t
124 test-convert-tagsbranch-topology.t
124 test-convert-tagsbranch-topology.t
125 test-convert.t
125 test-convert.t
126 test-copy-move-merge.t
126 test-copy-move-merge.t
127 test-copy.t
127 test-copy.t
128 test-copytrace-heuristics.t
128 test-copytrace-heuristics.t
129 test-custom-filters.t
129 test-custom-filters.t
130 test-debugbuilddag.t
130 test-debugbuilddag.t
131 test-debugbundle.t
131 test-debugbundle.t
132 test-debugcommands.t
132 test-debugcommands.t
133 test-debugextensions.t
133 test-debugextensions.t
134 test-debugindexdot.t
134 test-debugindexdot.t
135 test-debugrename.t
135 test-debugrename.t
136 test-default-push.t
136 test-default-push.t
137 test-diff-antipatience.t
137 test-diff-antipatience.t
138 test-diff-binary-file.t
138 test-diff-binary-file.t
139 test-diff-change.t
139 test-diff-change.t
140 test-diff-color.t
140 test-diff-color.t
141 test-diff-copy-depth.t
141 test-diff-copy-depth.t
142 test-diff-hashes.t
142 test-diff-hashes.t
143 test-diff-ignore-whitespace.t
143 test-diff-ignore-whitespace.t
144 test-diff-indent-heuristic.t
144 test-diff-indent-heuristic.t
145 test-diff-issue2761.t
145 test-diff-issue2761.t
146 test-diff-newlines.t
146 test-diff-newlines.t
147 test-diff-reverse.t
147 test-diff-reverse.t
148 test-diff-subdir.t
148 test-diff-subdir.t
149 test-diff-unified.t
149 test-diff-unified.t
150 test-diff-upgrade.t
150 test-diff-upgrade.t
151 test-diffdir.t
151 test-diffdir.t
152 test-diffstat.t
152 test-diffstat.t
153 test-directaccess.t
153 test-directaccess.t
154 test-dirstate-backup.t
154 test-dirstate-backup.t
155 test-dirstate-nonnormalset.t
155 test-dirstate-nonnormalset.t
156 test-dirstate-race.t
156 test-dirstate-race.t
157 test-dirstate.t
157 test-dirstate.t
158 test-dispatch.py
158 test-dispatch.py
159 test-dispatch.t
159 test-dispatch.t
160 test-doctest.py
160 test-doctest.py
161 test-double-merge.t
161 test-double-merge.t
162 test-drawdag.t
162 test-drawdag.t
163 test-duplicateoptions.py
163 test-duplicateoptions.py
164 test-editor-filename.t
164 test-editor-filename.t
165 test-empty-dir.t
165 test-empty-dir.t
166 test-empty-file.t
166 test-empty-file.t
167 test-empty-group.t
167 test-empty-group.t
168 test-empty.t
168 test-empty.t
169 test-encode.t
169 test-encode.t
170 test-encoding-align.t
170 test-encoding-align.t
171 test-encoding-func.py
171 test-encoding-func.py
172 test-encoding-textwrap.t
172 test-encoding-textwrap.t
173 test-encoding.t
173 test-encoding.t
174 test-eol-add.t
174 test-eol-add.t
175 test-eol-clone.t
175 test-eol-clone.t
176 test-eol-hook.t
176 test-eol-hook.t
177 test-eol-patch.t
177 test-eol-patch.t
178 test-eol-tag.t
178 test-eol-tag.t
179 test-eol-update.t
179 test-eol-update.t
180 test-eol.t
180 test-eol.t
181 test-eolfilename.t
181 test-eolfilename.t
182 test-excessive-merge.t
182 test-excessive-merge.t
183 test-exchange-obsmarkers-case-A1.t
183 test-exchange-obsmarkers-case-A1.t
184 test-exchange-obsmarkers-case-A2.t
184 test-exchange-obsmarkers-case-A2.t
185 test-exchange-obsmarkers-case-A3.t
185 test-exchange-obsmarkers-case-A3.t
186 test-exchange-obsmarkers-case-A4.t
186 test-exchange-obsmarkers-case-A4.t
187 test-exchange-obsmarkers-case-A5.t
187 test-exchange-obsmarkers-case-A5.t
188 test-exchange-obsmarkers-case-A6.t
188 test-exchange-obsmarkers-case-A6.t
189 test-exchange-obsmarkers-case-A7.t
189 test-exchange-obsmarkers-case-A7.t
190 test-exchange-obsmarkers-case-B1.t
190 test-exchange-obsmarkers-case-B1.t
191 test-exchange-obsmarkers-case-B2.t
191 test-exchange-obsmarkers-case-B2.t
192 test-exchange-obsmarkers-case-B3.t
192 test-exchange-obsmarkers-case-B3.t
193 test-exchange-obsmarkers-case-B4.t
193 test-exchange-obsmarkers-case-B4.t
194 test-exchange-obsmarkers-case-B5.t
194 test-exchange-obsmarkers-case-B5.t
195 test-exchange-obsmarkers-case-B6.t
195 test-exchange-obsmarkers-case-B6.t
196 test-exchange-obsmarkers-case-B7.t
196 test-exchange-obsmarkers-case-B7.t
197 test-exchange-obsmarkers-case-C1.t
197 test-exchange-obsmarkers-case-C1.t
198 test-exchange-obsmarkers-case-C2.t
198 test-exchange-obsmarkers-case-C2.t
199 test-exchange-obsmarkers-case-C3.t
199 test-exchange-obsmarkers-case-C3.t
200 test-exchange-obsmarkers-case-C4.t
200 test-exchange-obsmarkers-case-C4.t
201 test-exchange-obsmarkers-case-D1.t
201 test-exchange-obsmarkers-case-D1.t
202 test-exchange-obsmarkers-case-D2.t
202 test-exchange-obsmarkers-case-D2.t
203 test-exchange-obsmarkers-case-D3.t
203 test-exchange-obsmarkers-case-D3.t
204 test-exchange-obsmarkers-case-D4.t
204 test-exchange-obsmarkers-case-D4.t
205 test-execute-bit.t
205 test-execute-bit.t
206 test-export.t
206 test-export.t
207 test-extdata.t
207 test-extdata.t
208 test-extdiff.t
208 test-extdiff.t
209 test-extension-timing.t
209 test-extension-timing.t
210 test-extensions-afterloaded.t
210 test-extensions-afterloaded.t
211 test-extensions-wrapfunction.py
211 test-extensions-wrapfunction.py
212 test-extra-filelog-entry.t
212 test-extra-filelog-entry.t
213 test-fastannotate-corrupt.t
213 test-fastannotate-corrupt.t
214 test-fastannotate-diffopts.t
214 test-fastannotate-diffopts.t
215 test-fastannotate-hg.t
215 test-fastannotate-hg.t
216 test-fastannotate-perfhack.t
216 test-fastannotate-perfhack.t
217 test-fastannotate-protocol.t
217 test-fastannotate-protocol.t
218 test-fastannotate-renames.t
218 test-fastannotate-renames.t
219 test-fastannotate-revmap.py
219 test-fastannotate-revmap.py
220 test-fastannotate.t
220 test-fastannotate.t
221 test-fetch.t
221 test-fetch.t
222 test-filebranch.t
222 test-filebranch.t
223 test-filecache.py
223 test-filecache.py
224 test-filelog.py
224 test-filelog.py
225 test-fileset-generated.t
225 test-fileset-generated.t
226 test-fileset.t
226 test-fileset.t
227 test-fix-topology.t
227 test-fix-topology.t
228 test-fix.t
228 test-fix.t
229 test-flags.t
229 test-flags.t
230 test-fncache.t
230 test-fncache.t
231 test-gendoc-da.t
231 test-gendoc-da.t
232 test-gendoc-de.t
232 test-gendoc-de.t
233 test-gendoc-el.t
233 test-gendoc-el.t
234 test-gendoc-fr.t
234 test-gendoc-fr.t
235 test-gendoc-it.t
235 test-gendoc-it.t
236 test-gendoc-ja.t
236 test-gendoc-ja.t
237 test-gendoc-pt_BR.t
237 test-gendoc-pt_BR.t
238 test-gendoc-ro.t
238 test-gendoc-ro.t
239 test-gendoc-ru.t
239 test-gendoc-ru.t
240 test-gendoc-sv.t
240 test-gendoc-sv.t
241 test-gendoc-zh_CN.t
241 test-gendoc-zh_CN.t
242 test-gendoc-zh_TW.t
242 test-gendoc-zh_TW.t
243 test-gendoc.t
243 test-gendoc.t
244 test-generaldelta.t
244 test-generaldelta.t
245 test-getbundle.t
245 test-getbundle.t
246 test-git-export.t
246 test-git-export.t
247 test-githelp.t
247 test-githelp.t
248 test-globalopts.t
248 test-globalopts.t
249 test-glog-beautifygraph.t
249 test-glog-beautifygraph.t
250 test-glog-topological.t
250 test-glog-topological.t
251 test-glog.t
251 test-glog.t
252 test-gpg.t
252 test-gpg.t
253 test-graft.t
253 test-graft.t
254 test-grep.t
254 test-grep.t
255 test-hardlinks.t
255 test-hardlinks.t
256 test-help-hide.t
256 test-help-hide.t
257 test-help.t
257 test-help.t
258 test-hg-parseurl.py
258 test-hg-parseurl.py
259 test-hghave.t
259 test-hghave.t
260 test-hgignore.t
260 test-hgignore.t
261 test-hgk.t
261 test-hgk.t
262 test-hgrc.t
262 test-hgrc.t
263 test-hgweb-annotate-whitespace.t
263 test-hgweb-annotate-whitespace.t
264 test-hgweb-auth.py
264 test-hgweb-auth.py
265 test-hgweb-bundle.t
265 test-hgweb-bundle.t
266 test-hgweb-commands.t
266 test-hgweb-commands.t
267 test-hgweb-csp.t
267 test-hgweb-csp.t
268 test-hgweb-descend-empties.t
268 test-hgweb-descend-empties.t
269 test-hgweb-diffs.t
269 test-hgweb-diffs.t
270 test-hgweb-empty.t
270 test-hgweb-empty.t
271 test-hgweb-filelog.t
271 test-hgweb-filelog.t
272 test-hgweb-no-path-info.t
272 test-hgweb-no-path-info.t
273 test-hgweb-no-request-uri.t
273 test-hgweb-no-request-uri.t
274 test-hgweb-non-interactive.t
274 test-hgweb-non-interactive.t
275 test-hgweb-raw.t
275 test-hgweb-raw.t
276 test-hgweb-removed.t
276 test-hgweb-removed.t
277 test-hgweb-symrev.t
277 test-hgweb-symrev.t
278 test-hgweb.t
278 test-hgweb.t
279 test-hgwebdir-paths.py
279 test-hgwebdir-paths.py
280 test-hgwebdir.t
280 test-hgwebdir.t
281 test-hgwebdirsym.t
281 test-hgwebdirsym.t
282 test-histedit-arguments.t
282 test-histedit-arguments.t
283 test-histedit-base.t
283 test-histedit-base.t
284 test-histedit-bookmark-motion.t
284 test-histedit-bookmark-motion.t
285 test-histedit-commute.t
285 test-histedit-commute.t
286 test-histedit-drop.t
286 test-histedit-drop.t
287 test-histedit-edit.t
287 test-histedit-edit.t
288 test-histedit-fold-non-commute.t
288 test-histedit-fold-non-commute.t
289 test-histedit-fold.t
289 test-histedit-fold.t
290 test-histedit-no-backup.t
290 test-histedit-no-backup.t
291 test-histedit-no-change.t
291 test-histedit-no-change.t
292 test-histedit-non-commute-abort.t
292 test-histedit-non-commute-abort.t
293 test-histedit-non-commute.t
293 test-histedit-non-commute.t
294 test-histedit-obsolete.t
294 test-histedit-obsolete.t
295 test-histedit-outgoing.t
295 test-histedit-outgoing.t
296 test-histedit-templates.t
296 test-histedit-templates.t
297 test-http-api-httpv2.t
297 test-http-api-httpv2.t
298 test-http-api.t
298 test-http-api.t
299 test-http-bad-server.t
299 test-http-branchmap.t
300 test-http-branchmap.t
300 test-http-bundle1.t
301 test-http-bundle1.t
301 test-http-clone-r.t
302 test-http-clone-r.t
302 test-http-permissions.t
303 test-http-permissions.t
303 test-http-protocol.t
304 test-http-protocol.t
304 test-http.t
305 test-http.t
305 test-hybridencode.py
306 test-hybridencode.py
306 test-i18n.t
307 test-i18n.t
307 test-identify.t
308 test-identify.t
308 test-impexp-branch.t
309 test-impexp-branch.t
309 test-import-bypass.t
310 test-import-bypass.t
310 test-import-context.t
311 test-import-context.t
311 test-import-eol.t
312 test-import-eol.t
312 test-import-merge.t
313 test-import-merge.t
313 test-import-unknown.t
314 test-import-unknown.t
314 test-import.t
315 test-import.t
315 test-imports-checker.t
316 test-imports-checker.t
316 test-incoming-outgoing.t
317 test-incoming-outgoing.t
317 test-infinitepush-bundlestore.t
318 test-infinitepush-bundlestore.t
318 test-infinitepush-ci.t
319 test-infinitepush-ci.t
319 test-infinitepush.t
320 test-infinitepush.t
320 test-inherit-mode.t
321 test-inherit-mode.t
321 test-init.t
322 test-init.t
322 test-install.t
323 test-install.t
323 test-issue1089.t
324 test-issue1089.t
324 test-issue1102.t
325 test-issue1102.t
325 test-issue1175.t
326 test-issue1175.t
326 test-issue1306.t
327 test-issue1306.t
327 test-issue1438.t
328 test-issue1438.t
328 test-issue1502.t
329 test-issue1502.t
329 test-issue1802.t
330 test-issue1802.t
330 test-issue1877.t
331 test-issue1877.t
331 test-issue1993.t
332 test-issue1993.t
332 test-issue2137.t
333 test-issue2137.t
333 test-issue3084.t
334 test-issue3084.t
334 test-issue4074.t
335 test-issue4074.t
335 test-issue522.t
336 test-issue522.t
336 test-issue586.t
337 test-issue586.t
337 test-issue5979.t
338 test-issue5979.t
338 test-issue612.t
339 test-issue612.t
339 test-issue619.t
340 test-issue619.t
340 test-issue660.t
341 test-issue660.t
341 test-issue672.t
342 test-issue672.t
342 test-issue842.t
343 test-issue842.t
343 test-journal-exists.t
344 test-journal-exists.t
344 test-journal-share.t
345 test-journal-share.t
345 test-journal.t
346 test-journal.t
346 test-keyword.t
347 test-keyword.t
347 test-known.t
348 test-known.t
348 test-largefiles-cache.t
349 test-largefiles-cache.t
349 test-largefiles-misc.t
350 test-largefiles-misc.t
350 test-largefiles-small-disk.t
351 test-largefiles-small-disk.t
351 test-largefiles-update.t
352 test-largefiles-update.t
352 test-largefiles-wireproto.t
353 test-largefiles-wireproto.t
353 test-largefiles.t
354 test-largefiles.t
354 test-lfconvert.t
355 test-lfconvert.t
355 test-lfs-bundle.t
356 test-lfs-bundle.t
356 test-lfs-largefiles.t
357 test-lfs-largefiles.t
357 test-lfs-pointer.py
358 test-lfs-pointer.py
358 test-lfs-test-server.t
359 test-lfs-test-server.t
359 test-lfs.t
360 test-lfs.t
360 test-linelog.py
361 test-linelog.py
361 test-linerange.py
362 test-linerange.py
362 test-locate.t
363 test-locate.t
363 test-lock-badness.t
364 test-lock-badness.t
364 test-log-exthook.t
365 test-log-exthook.t
365 test-log-linerange.t
366 test-log-linerange.t
366 test-log.t
367 test-log.t
367 test-logexchange.t
368 test-logexchange.t
368 test-logtoprocess.t
369 test-logtoprocess.t
369 test-lrucachedict.py
370 test-lrucachedict.py
370 test-mactext.t
371 test-mactext.t
371 test-mailmap.t
372 test-mailmap.t
372 test-manifest-merging.t
373 test-manifest-merging.t
373 test-manifest.py
374 test-manifest.py
374 test-manifest.t
375 test-manifest.t
375 test-match.py
376 test-match.py
376 test-mdiff.py
377 test-mdiff.py
377 test-merge-changedelete.t
378 test-merge-changedelete.t
378 test-merge-closedheads.t
379 test-merge-closedheads.t
379 test-merge-commit.t
380 test-merge-commit.t
380 test-merge-criss-cross.t
381 test-merge-criss-cross.t
381 test-merge-default.t
382 test-merge-default.t
382 test-merge-force.t
383 test-merge-force.t
383 test-merge-halt.t
384 test-merge-halt.t
384 test-merge-internal-tools-pattern.t
385 test-merge-internal-tools-pattern.t
385 test-merge-local.t
386 test-merge-local.t
386 test-merge-no-file-change.t
387 test-merge-no-file-change.t
387 test-merge-remove.t
388 test-merge-remove.t
388 test-merge-revert.t
389 test-merge-revert.t
389 test-merge-revert2.t
390 test-merge-revert2.t
390 test-merge-subrepos.t
391 test-merge-subrepos.t
391 test-merge-symlinks.t
392 test-merge-symlinks.t
392 test-merge-tools.t
393 test-merge-tools.t
393 test-merge-types.t
394 test-merge-types.t
394 test-merge1.t
395 test-merge1.t
395 test-merge10.t
396 test-merge10.t
396 test-merge2.t
397 test-merge2.t
397 test-merge4.t
398 test-merge4.t
398 test-merge5.t
399 test-merge5.t
399 test-merge6.t
400 test-merge6.t
400 test-merge7.t
401 test-merge7.t
401 test-merge8.t
402 test-merge8.t
402 test-merge9.t
403 test-merge9.t
403 test-minifileset.py
404 test-minifileset.py
404 test-minirst.py
405 test-minirst.py
405 test-missing-capability.t
406 test-missing-capability.t
406 test-mq-eol.t
407 test-mq-eol.t
407 test-mq-git.t
408 test-mq-git.t
408 test-mq-guards.t
409 test-mq-guards.t
409 test-mq-header-date.t
410 test-mq-header-date.t
410 test-mq-header-from.t
411 test-mq-header-from.t
411 test-mq-merge.t
412 test-mq-merge.t
412 test-mq-missingfiles.t
413 test-mq-missingfiles.t
413 test-mq-pull-from-bundle.t
414 test-mq-pull-from-bundle.t
414 test-mq-qclone-http.t
415 test-mq-qclone-http.t
415 test-mq-qdelete.t
416 test-mq-qdelete.t
416 test-mq-qdiff.t
417 test-mq-qdiff.t
417 test-mq-qfold.t
418 test-mq-qfold.t
418 test-mq-qgoto.t
419 test-mq-qgoto.t
419 test-mq-qimport-fail-cleanup.t
420 test-mq-qimport-fail-cleanup.t
420 test-mq-qimport.t
421 test-mq-qimport.t
421 test-mq-qnew.t
422 test-mq-qnew.t
422 test-mq-qpush-exact.t
423 test-mq-qpush-exact.t
423 test-mq-qpush-fail.t
424 test-mq-qpush-fail.t
424 test-mq-qqueue.t
425 test-mq-qqueue.t
425 test-mq-qrefresh-interactive.t
426 test-mq-qrefresh-interactive.t
426 test-mq-qrefresh-replace-log-message.t
427 test-mq-qrefresh-replace-log-message.t
427 test-mq-qrefresh.t
428 test-mq-qrefresh.t
428 test-mq-qrename.t
429 test-mq-qrename.t
429 test-mq-qsave.t
430 test-mq-qsave.t
430 test-mq-safety.t
431 test-mq-safety.t
431 test-mq-subrepo.t
432 test-mq-subrepo.t
432 test-mq-symlinks.t
433 test-mq-symlinks.t
433 test-mq.t
434 test-mq.t
434 test-mv-cp-st-diff.t
435 test-mv-cp-st-diff.t
435 test-narrow-acl.t
436 test-narrow-acl.t
436 test-narrow-archive.t
437 test-narrow-archive.t
437 test-narrow-clone-no-ellipsis.t
438 test-narrow-clone-no-ellipsis.t
438 test-narrow-clone-non-narrow-server.t
439 test-narrow-clone-non-narrow-server.t
439 test-narrow-clone-nonlinear.t
440 test-narrow-clone-nonlinear.t
440 test-narrow-clone-stream.t
441 test-narrow-clone-stream.t
441 test-narrow-clone.t
442 test-narrow-clone.t
442 test-narrow-commit.t
443 test-narrow-commit.t
443 test-narrow-copies.t
444 test-narrow-copies.t
444 test-narrow-debugcommands.t
445 test-narrow-debugcommands.t
445 test-narrow-debugrebuilddirstate.t
446 test-narrow-debugrebuilddirstate.t
446 test-narrow-exchange-merges.t
447 test-narrow-exchange-merges.t
447 test-narrow-exchange.t
448 test-narrow-exchange.t
448 test-narrow-expanddirstate.t
449 test-narrow-expanddirstate.t
449 test-narrow-merge.t
450 test-narrow-merge.t
450 test-narrow-patch.t
451 test-narrow-patch.t
451 test-narrow-patterns.t
452 test-narrow-patterns.t
452 test-narrow-pull.t
453 test-narrow-pull.t
453 test-narrow-rebase.t
454 test-narrow-rebase.t
454 test-narrow-shallow-merges.t
455 test-narrow-shallow-merges.t
455 test-narrow-shallow.t
456 test-narrow-shallow.t
456 test-narrow-share.t
457 test-narrow-share.t
457 test-narrow-sparse.t
458 test-narrow-sparse.t
458 test-narrow-strip.t
459 test-narrow-strip.t
459 test-narrow-trackedcmd.t
460 test-narrow-trackedcmd.t
460 test-narrow-update.t
461 test-narrow-update.t
461 test-narrow-widen-no-ellipsis.t
462 test-narrow-widen-no-ellipsis.t
462 test-narrow-widen.t
463 test-narrow-widen.t
463 test-narrow.t
464 test-narrow.t
464 test-nested-repo.t
465 test-nested-repo.t
465 test-newbranch.t
466 test-newbranch.t
466 test-newcgi.t
467 test-newcgi.t
467 test-newercgi.t
468 test-newercgi.t
468 test-nointerrupt.t
469 test-nointerrupt.t
469 test-notify-changegroup.t
470 test-notify-changegroup.t
470 test-obshistory.t
471 test-obshistory.t
471 test-obsmarker-template.t
472 test-obsmarker-template.t
472 test-obsmarkers-effectflag.t
473 test-obsmarkers-effectflag.t
473 test-obsolete-bounds-checking.t
474 test-obsolete-bounds-checking.t
474 test-obsolete-bundle-strip.t
475 test-obsolete-bundle-strip.t
475 test-obsolete-changeset-exchange.t
476 test-obsolete-changeset-exchange.t
476 test-obsolete-checkheads.t
477 test-obsolete-checkheads.t
477 test-obsolete-distributed.t
478 test-obsolete-distributed.t
478 test-obsolete-divergent.t
479 test-obsolete-divergent.t
479 test-obsolete-tag-cache.t
480 test-obsolete-tag-cache.t
480 test-obsolete.t
481 test-obsolete.t
481 test-oldcgi.t
482 test-oldcgi.t
482 test-origbackup-conflict.t
483 test-origbackup-conflict.t
483 test-pager-legacy.t
484 test-pager-legacy.t
484 test-pager.t
485 test-pager.t
485 test-parents.t
486 test-parents.t
486 test-parse-date.t
487 test-parse-date.t
487 test-parseindex.t
488 test-parseindex.t
488 test-parseindex2.py
489 test-parseindex2.py
489 test-patch-offset.t
490 test-patch-offset.t
490 test-patch.t
491 test-patch.t
491 test-patchbomb-bookmark.t
492 test-patchbomb-bookmark.t
492 test-patchbomb-tls.t
493 test-patchbomb-tls.t
493 test-patchbomb.t
494 test-patchbomb.t
494 test-pathconflicts-basic.t
495 test-pathconflicts-basic.t
495 test-pathconflicts-merge.t
496 test-pathconflicts-merge.t
496 test-pathconflicts-update.t
497 test-pathconflicts-update.t
497 test-pathencode.py
498 test-pathencode.py
498 test-pending.t
499 test-pending.t
499 test-permissions.t
500 test-permissions.t
500 test-phases-exchange.t
501 test-phases-exchange.t
501 test-phases.t
502 test-phases.t
502 test-profile.t
503 test-profile.t
503 test-progress.t
504 test-progress.t
504 test-propertycache.py
505 test-propertycache.py
505 test-pull-branch.t
506 test-pull-branch.t
506 test-pull-http.t
507 test-pull-http.t
507 test-pull-permission.t
508 test-pull-permission.t
508 test-pull-pull-corruption.t
509 test-pull-pull-corruption.t
509 test-pull-r.t
510 test-pull-r.t
510 test-pull-update.t
511 test-pull-update.t
511 test-pull.t
512 test-pull.t
512 test-purge.t
513 test-purge.t
513 test-push-cgi.t
514 test-push-cgi.t
514 test-push-checkheads-partial-C1.t
515 test-push-checkheads-partial-C1.t
515 test-push-checkheads-partial-C2.t
516 test-push-checkheads-partial-C2.t
516 test-push-checkheads-partial-C3.t
517 test-push-checkheads-partial-C3.t
517 test-push-checkheads-partial-C4.t
518 test-push-checkheads-partial-C4.t
518 test-push-checkheads-pruned-B1.t
519 test-push-checkheads-pruned-B1.t
519 test-push-checkheads-pruned-B2.t
520 test-push-checkheads-pruned-B2.t
520 test-push-checkheads-pruned-B3.t
521 test-push-checkheads-pruned-B3.t
521 test-push-checkheads-pruned-B4.t
522 test-push-checkheads-pruned-B4.t
522 test-push-checkheads-pruned-B5.t
523 test-push-checkheads-pruned-B5.t
523 test-push-checkheads-pruned-B6.t
524 test-push-checkheads-pruned-B6.t
524 test-push-checkheads-pruned-B7.t
525 test-push-checkheads-pruned-B7.t
525 test-push-checkheads-pruned-B8.t
526 test-push-checkheads-pruned-B8.t
526 test-push-checkheads-superceed-A1.t
527 test-push-checkheads-superceed-A1.t
527 test-push-checkheads-superceed-A2.t
528 test-push-checkheads-superceed-A2.t
528 test-push-checkheads-superceed-A3.t
529 test-push-checkheads-superceed-A3.t
529 test-push-checkheads-superceed-A4.t
530 test-push-checkheads-superceed-A4.t
530 test-push-checkheads-superceed-A5.t
531 test-push-checkheads-superceed-A5.t
531 test-push-checkheads-superceed-A6.t
532 test-push-checkheads-superceed-A6.t
532 test-push-checkheads-superceed-A7.t
533 test-push-checkheads-superceed-A7.t
533 test-push-checkheads-superceed-A8.t
534 test-push-checkheads-superceed-A8.t
534 test-push-checkheads-unpushed-D1.t
535 test-push-checkheads-unpushed-D1.t
535 test-push-checkheads-unpushed-D2.t
536 test-push-checkheads-unpushed-D2.t
536 test-push-checkheads-unpushed-D3.t
537 test-push-checkheads-unpushed-D3.t
537 test-push-checkheads-unpushed-D4.t
538 test-push-checkheads-unpushed-D4.t
538 test-push-checkheads-unpushed-D5.t
539 test-push-checkheads-unpushed-D5.t
539 test-push-checkheads-unpushed-D6.t
540 test-push-checkheads-unpushed-D6.t
540 test-push-checkheads-unpushed-D7.t
541 test-push-checkheads-unpushed-D7.t
541 test-push-http.t
542 test-push-http.t
542 test-push-race.t
543 test-push-race.t
543 test-push-warn.t
544 test-push-warn.t
544 test-push.t
545 test-push.t
545 test-pushvars.t
546 test-pushvars.t
546 test-qrecord.t
547 test-qrecord.t
547 test-rebase-abort.t
548 test-rebase-abort.t
548 test-rebase-backup.t
549 test-rebase-backup.t
549 test-rebase-base-flag.t
550 test-rebase-base-flag.t
550 test-rebase-bookmarks.t
551 test-rebase-bookmarks.t
551 test-rebase-brute-force.t
552 test-rebase-brute-force.t
552 test-rebase-cache.t
553 test-rebase-cache.t
553 test-rebase-check-restore.t
554 test-rebase-check-restore.t
554 test-rebase-collapse.t
555 test-rebase-collapse.t
555 test-rebase-conflicts.t
556 test-rebase-conflicts.t
556 test-rebase-dest.t
557 test-rebase-dest.t
557 test-rebase-detach.t
558 test-rebase-detach.t
558 test-rebase-emptycommit.t
559 test-rebase-emptycommit.t
559 test-rebase-inmemory.t
560 test-rebase-inmemory.t
560 test-rebase-interruptions.t
561 test-rebase-interruptions.t
561 test-rebase-issue-noparam-single-rev.t
562 test-rebase-issue-noparam-single-rev.t
562 test-rebase-legacy.t
563 test-rebase-legacy.t
563 test-rebase-mq-skip.t
564 test-rebase-mq-skip.t
564 test-rebase-mq.t
565 test-rebase-mq.t
565 test-rebase-named-branches.t
566 test-rebase-named-branches.t
566 test-rebase-newancestor.t
567 test-rebase-newancestor.t
567 test-rebase-obsolete.t
568 test-rebase-obsolete.t
568 test-rebase-parameters.t
569 test-rebase-parameters.t
569 test-rebase-partial.t
570 test-rebase-partial.t
570 test-rebase-pull.t
571 test-rebase-pull.t
571 test-rebase-rename.t
572 test-rebase-rename.t
572 test-rebase-scenario-global.t
573 test-rebase-scenario-global.t
573 test-rebase-templates.t
574 test-rebase-templates.t
574 test-rebase-transaction.t
575 test-rebase-transaction.t
575 test-rebuildstate.t
576 test-rebuildstate.t
576 test-record.t
577 test-record.t
577 test-releasenotes-formatting.t
578 test-releasenotes-formatting.t
578 test-releasenotes-merging.t
579 test-releasenotes-merging.t
579 test-releasenotes-parsing.t
580 test-releasenotes-parsing.t
580 test-relink.t
581 test-relink.t
581 test-remotefilelog-bad-configs.t
582 test-remotefilelog-bad-configs.t
582 test-remotefilelog-bgprefetch.t
583 test-remotefilelog-bgprefetch.t
583 test-remotefilelog-blame.t
584 test-remotefilelog-blame.t
584 test-remotefilelog-bundle2.t
585 test-remotefilelog-bundle2.t
585 test-remotefilelog-bundles.t
586 test-remotefilelog-bundles.t
586 test-remotefilelog-cacheprocess.t
587 test-remotefilelog-cacheprocess.t
587 test-remotefilelog-clone-tree.t
588 test-remotefilelog-clone-tree.t
588 test-remotefilelog-clone.t
589 test-remotefilelog-clone.t
589 test-remotefilelog-gcrepack.t
590 test-remotefilelog-gcrepack.t
590 test-remotefilelog-histpack.py
591 test-remotefilelog-histpack.py
591 test-remotefilelog-http.t
592 test-remotefilelog-http.t
592 test-remotefilelog-keepset.t
593 test-remotefilelog-keepset.t
593 test-remotefilelog-local.t
594 test-remotefilelog-local.t
594 test-remotefilelog-log.t
595 test-remotefilelog-log.t
595 test-remotefilelog-partial-shallow.t
596 test-remotefilelog-partial-shallow.t
596 test-remotefilelog-permissions.t
597 test-remotefilelog-permissions.t
597 test-remotefilelog-permisssions.t
598 test-remotefilelog-permisssions.t
598 test-remotefilelog-prefetch.t
599 test-remotefilelog-prefetch.t
599 test-remotefilelog-pull-noshallow.t
600 test-remotefilelog-pull-noshallow.t
600 test-remotefilelog-share.t
601 test-remotefilelog-share.t
601 test-remotefilelog-sparse.t
602 test-remotefilelog-sparse.t
602 test-remotefilelog-tags.t
603 test-remotefilelog-tags.t
603 test-remotefilelog-wireproto.t
604 test-remotefilelog-wireproto.t
604 test-remove.t
605 test-remove.t
605 test-removeemptydirs.t
606 test-removeemptydirs.t
606 test-rename-after-merge.t
607 test-rename-after-merge.t
607 test-rename-dir-merge.t
608 test-rename-dir-merge.t
608 test-rename-merge1.t
609 test-rename-merge1.t
609 test-rename-merge2.t
610 test-rename-merge2.t
610 test-rename.t
611 test-rename.t
611 test-repair-strip.t
612 test-repair-strip.t
612 test-repo-compengines.t
613 test-repo-compengines.t
613 test-requires.t
614 test-requires.t
614 test-resolve.t
615 test-resolve.t
615 test-revert-flags.t
616 test-revert-flags.t
616 test-revert-interactive.t
617 test-revert-interactive.t
617 test-revert-unknown.t
618 test-revert-unknown.t
618 test-revert.t
619 test-revert.t
619 test-revisions.t
620 test-revisions.t
620 test-revlog-ancestry.py
621 test-revlog-ancestry.py
621 test-revlog-group-emptyiter.t
622 test-revlog-group-emptyiter.t
622 test-revlog-mmapindex.t
623 test-revlog-mmapindex.t
623 test-revlog-packentry.t
624 test-revlog-packentry.t
624 test-revlog-raw.py
625 test-revlog-raw.py
625 test-revlog-v2.t
626 test-revlog-v2.t
626 test-revlog.t
627 test-revlog.t
627 test-revset-dirstate-parents.t
628 test-revset-dirstate-parents.t
628 test-revset-legacy-lookup.t
629 test-revset-legacy-lookup.t
629 test-revset-outgoing.t
630 test-revset-outgoing.t
630 test-rollback.t
631 test-rollback.t
631 test-run-tests.py
632 test-run-tests.py
632 test-run-tests.t
633 test-run-tests.t
633 test-rust-ancestor.py
634 test-rust-ancestor.py
634 test-schemes.t
635 test-schemes.t
635 test-serve.t
636 test-serve.t
636 test-setdiscovery.t
637 test-setdiscovery.t
637 test-share.t
638 test-share.t
638 test-shelve.t
639 test-shelve.t
639 test-shelve2.t
640 test-shelve2.t
640 test-show-stack.t
641 test-show-stack.t
641 test-show-work.t
642 test-show-work.t
642 test-show.t
643 test-show.t
643 test-simple-update.t
644 test-simple-update.t
644 test-simplekeyvaluefile.py
645 test-simplekeyvaluefile.py
645 test-simplemerge.py
646 test-simplemerge.py
646 test-single-head.t
647 test-single-head.t
647 test-sparse-clear.t
648 test-sparse-clear.t
648 test-sparse-clone.t
649 test-sparse-clone.t
649 test-sparse-import.t
650 test-sparse-import.t
650 test-sparse-merges.t
651 test-sparse-merges.t
651 test-sparse-profiles.t
652 test-sparse-profiles.t
652 test-sparse-requirement.t
653 test-sparse-requirement.t
653 test-sparse-verbose-json.t
654 test-sparse-verbose-json.t
654 test-sparse.t
655 test-sparse.t
655 test-split.t
656 test-split.t
656 test-ssh-bundle1.t
657 test-ssh-bundle1.t
657 test-ssh-clone-r.t
658 test-ssh-clone-r.t
658 test-ssh-proto-unbundle.t
659 test-ssh-proto-unbundle.t
659 test-ssh-proto.t
660 test-ssh-proto.t
660 test-ssh-repoerror.t
661 test-ssh-repoerror.t
661 test-ssh.t
662 test-ssh.t
662 test-sshserver.py
663 test-sshserver.py
663 test-stack.t
664 test-stack.t
664 test-static-http.t
665 test-static-http.t
665 test-status-color.t
666 test-status-color.t
666 test-status-inprocess.py
667 test-status-inprocess.py
667 test-status-rev.t
668 test-status-rev.t
668 test-status-terse.t
669 test-status-terse.t
669 test-status.t
670 test-status.t
670 test-storage.py
671 test-storage.py
671 test-stream-bundle-v2.t
672 test-stream-bundle-v2.t
672 test-strict.t
673 test-strict.t
673 test-strip-cross.t
674 test-strip-cross.t
674 test-strip.t
675 test-strip.t
675 test-subrepo-deep-nested-change.t
676 test-subrepo-deep-nested-change.t
676 test-subrepo-missing.t
677 test-subrepo-missing.t
677 test-subrepo-paths.t
678 test-subrepo-paths.t
678 test-subrepo-recursion.t
679 test-subrepo-recursion.t
679 test-subrepo-relative-path.t
680 test-subrepo-relative-path.t
680 test-subrepo.t
681 test-subrepo.t
681 test-symlink-os-yes-fs-no.py
682 test-symlink-os-yes-fs-no.py
682 test-symlink-placeholder.t
683 test-symlink-placeholder.t
683 test-symlinks.t
684 test-symlinks.t
684 test-tag.t
685 test-tag.t
685 test-tags.t
686 test-tags.t
686 test-template-basic.t
687 test-template-basic.t
687 test-template-functions.t
688 test-template-functions.t
688 test-template-keywords.t
689 test-template-keywords.t
689 test-template-map.t
690 test-template-map.t
690 test-tools.t
691 test-tools.t
691 test-transplant.t
692 test-transplant.t
692 test-treediscovery-legacy.t
693 test-treediscovery-legacy.t
693 test-treediscovery.t
694 test-treediscovery.t
694 test-treemanifest.t
695 test-treemanifest.t
695 test-ui-color.py
696 test-ui-color.py
696 test-ui-config.py
697 test-ui-config.py
697 test-ui-verbosity.py
698 test-ui-verbosity.py
698 test-unamend.t
699 test-unamend.t
699 test-unbundlehash.t
700 test-unbundlehash.t
700 test-uncommit.t
701 test-uncommit.t
701 test-unified-test.t
702 test-unified-test.t
702 test-unionrepo.t
703 test-unionrepo.t
703 test-unrelated-pull.t
704 test-unrelated-pull.t
704 test-up-local-change.t
705 test-up-local-change.t
705 test-update-atomic.t
706 test-update-atomic.t
706 test-update-branches.t
707 test-update-branches.t
707 test-update-dest.t
708 test-update-dest.t
708 test-update-issue1456.t
709 test-update-issue1456.t
709 test-update-names.t
710 test-update-names.t
710 test-update-reverse.t
711 test-update-reverse.t
711 test-upgrade-repo.t
712 test-upgrade-repo.t
712 test-url-download.t
713 test-url-download.t
713 test-url-rev.t
714 test-url-rev.t
714 test-url.py
715 test-url.py
715 test-username-newline.t
716 test-username-newline.t
716 test-util.py
717 test-util.py
717 test-verify.t
718 test-verify.t
718 test-walk.t
719 test-walk.t
719 test-walkrepo.py
720 test-walkrepo.py
720 test-websub.t
721 test-websub.t
721 test-win32text.t
722 test-win32text.t
722 test-wireproto-caching.t
723 test-wireproto-caching.t
723 test-wireproto-clientreactor.py
724 test-wireproto-clientreactor.py
724 test-wireproto-command-branchmap.t
725 test-wireproto-command-branchmap.t
725 test-wireproto-command-capabilities.t
726 test-wireproto-command-capabilities.t
726 test-wireproto-command-changesetdata.t
727 test-wireproto-command-changesetdata.t
727 test-wireproto-command-filedata.t
728 test-wireproto-command-filedata.t
728 test-wireproto-command-filesdata.t
729 test-wireproto-command-filesdata.t
729 test-wireproto-command-heads.t
730 test-wireproto-command-heads.t
730 test-wireproto-command-known.t
731 test-wireproto-command-known.t
731 test-wireproto-command-listkeys.t
732 test-wireproto-command-listkeys.t
732 test-wireproto-command-lookup.t
733 test-wireproto-command-lookup.t
733 test-wireproto-command-manifestdata.t
734 test-wireproto-command-manifestdata.t
734 test-wireproto-command-pushkey.t
735 test-wireproto-command-pushkey.t
735 test-wireproto-command-rawstorefiledata.t
736 test-wireproto-command-rawstorefiledata.t
736 test-wireproto-content-redirects.t
737 test-wireproto-content-redirects.t
737 test-wireproto-exchangev2.t
738 test-wireproto-exchangev2.t
738 test-wireproto-framing.py
739 test-wireproto-framing.py
739 test-wireproto-serverreactor.py
740 test-wireproto-serverreactor.py
740 test-wireproto.py
741 test-wireproto.py
741 test-wireproto.t
742 test-wireproto.t
742 test-wsgirequest.py
743 test-wsgirequest.py
743 test-xdg.t
744 test-xdg.t
@@ -1,1254 +1,1305 b''
1 #require serve zstd
1 #require serve zstd
2
2
3 Client version is embedded in HTTP request and is effectively dynamic. Pin the
3 Client version is embedded in HTTP request and is effectively dynamic. Pin the
4 version so behavior is deterministic.
4 version so behavior is deterministic.
5
5
6 $ cat > fakeversion.py << EOF
6 $ cat > fakeversion.py << EOF
7 > from mercurial import util
7 > from mercurial import util
8 > util.version = lambda: b'4.2'
8 > util.version = lambda: b'4.2'
9 > EOF
9 > EOF
10
10
11 $ cat >> $HGRCPATH << EOF
11 $ cat >> $HGRCPATH << EOF
12 > [extensions]
12 > [extensions]
13 > fakeversion = `pwd`/fakeversion.py
13 > fakeversion = `pwd`/fakeversion.py
14 > [format]
14 > [format]
15 > sparse-revlog = no
15 > sparse-revlog = no
16 > [devel]
16 > [devel]
17 > legacy.exchange = phases
17 > legacy.exchange = phases
18 > EOF
18 > EOF
19
19
20 $ hg init server0
20 $ hg init server0
21 $ cd server0
21 $ cd server0
22 $ touch foo
22 $ touch foo
23 $ hg -q commit -A -m initial
23 $ hg -q commit -A -m initial
24
24
25 Also disable compression because zstd is optional and causes output to vary
25 Also disable compression because zstd is optional and causes output to vary
26 and because debugging partial responses is hard when compression is involved
26 and because debugging partial responses is hard when compression is involved
27
27
28 $ cat > .hg/hgrc << EOF
28 $ cat > .hg/hgrc << EOF
29 > [extensions]
29 > [extensions]
30 > badserver = $TESTDIR/badserverext.py
30 > badserver = $TESTDIR/badserverext.py
31 > [server]
31 > [server]
32 > compressionengines = none
32 > compressionengines = none
33 > EOF
33 > EOF
34
34
35 Failure to accept() socket should result in connection related error message
35 Failure to accept() socket should result in connection related error message
36
36
37 $ hg serve --config badserver.closebeforeaccept=true -p $HGPORT -d --pid-file=hg.pid
37 $ hg serve --config badserver.closebeforeaccept=true -p $HGPORT -d --pid-file=hg.pid
38 $ cat hg.pid > $DAEMON_PIDS
38 $ cat hg.pid > $DAEMON_PIDS
39
39
40 $ hg clone http://localhost:$HGPORT/ clone
40 $ hg clone http://localhost:$HGPORT/ clone
41 abort: error: (\$ECONNRESET\$|\$EADDRNOTAVAIL\$) (re)
41 abort: error: (\$ECONNRESET\$|\$EADDRNOTAVAIL\$) (re)
42 [255]
42 [255]
43
43
44 (The server exits on its own, but there is a race between that and starting a new server.
44 (The server exits on its own, but there is a race between that and starting a new server.
45 So ensure the process is dead.)
45 So ensure the process is dead.)
46
46
47 $ killdaemons.py $DAEMON_PIDS
47 $ killdaemons.py $DAEMON_PIDS
48
48
49 Failure immediately after accept() should yield connection related error message
49 Failure immediately after accept() should yield connection related error message
50
50
51 $ hg serve --config badserver.closeafteraccept=true -p $HGPORT -d --pid-file=hg.pid
51 $ hg serve --config badserver.closeafteraccept=true -p $HGPORT -d --pid-file=hg.pid
52 $ cat hg.pid > $DAEMON_PIDS
52 $ cat hg.pid > $DAEMON_PIDS
53
53
54 TODO: this usually outputs good results, but sometimes emits abort:
54 TODO: this usually outputs good results, but sometimes emits abort:
55 error: '' on FreeBSD and OS X.
55 error: '' on FreeBSD and OS X.
56 What we ideally want are:
56 What we ideally want are:
57
57
58 abort: error: $ECONNRESET$
58 abort: error: $ECONNRESET$
59
59
60 The flakiness in this output was observable easily with
60 The flakiness in this output was observable easily with
61 --runs-per-test=20 on macOS 10.12 during the freeze for 4.2.
61 --runs-per-test=20 on macOS 10.12 during the freeze for 4.2.
62 $ hg clone http://localhost:$HGPORT/ clone
62 $ hg clone http://localhost:$HGPORT/ clone
63 abort: error: * (glob)
63 abort: error: * (glob)
64 [255]
64 [255]
65
65
66 $ killdaemons.py $DAEMON_PIDS
66 $ killdaemons.py $DAEMON_PIDS
67
67
68 Failure to read all bytes in initial HTTP request should yield connection related error message
68 Failure to read all bytes in initial HTTP request should yield connection related error message
69
69
70 $ hg serve --config badserver.closeafterrecvbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
70 $ hg serve --config badserver.closeafterrecvbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
71 $ cat hg.pid > $DAEMON_PIDS
71 $ cat hg.pid > $DAEMON_PIDS
72
72
73 $ hg clone http://localhost:$HGPORT/ clone
73 $ hg clone http://localhost:$HGPORT/ clone
74 abort: error: bad HTTP status line: * (glob)
74 abort: error: bad HTTP status line: * (glob)
75 [255]
75 [255]
76
76
77 $ killdaemons.py $DAEMON_PIDS
77 $ killdaemons.py $DAEMON_PIDS
78
78
79 $ cat error.log
79 $ cat error.log
80 readline(1 from 65537) -> (1) G
80 readline(1 from 65537) -> (1) G
81 read limit reached; closing socket
81 read limit reached; closing socket
82
82
83 $ rm -f error.log
83 $ rm -f error.log
84
84
85 Same failure, but server reads full HTTP request line
85 Same failure, but server reads full HTTP request line
86
86
87 $ hg serve --config badserver.closeafterrecvbytes=40 -p $HGPORT -d --pid-file=hg.pid -E error.log
87 $ hg serve --config badserver.closeafterrecvbytes=40 -p $HGPORT -d --pid-file=hg.pid -E error.log
88 $ cat hg.pid > $DAEMON_PIDS
88 $ cat hg.pid > $DAEMON_PIDS
89 $ hg clone http://localhost:$HGPORT/ clone
89 $ hg clone http://localhost:$HGPORT/ clone
90 abort: error: bad HTTP status line: * (glob)
90 abort: error: bad HTTP status line: * (glob)
91 [255]
91 [255]
92
92
93 $ killdaemons.py $DAEMON_PIDS
93 $ killdaemons.py $DAEMON_PIDS
94
94
95 $ cat error.log
95 $ cat error.log
96 readline(40 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
96 readline(40 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
97 readline(7 from *) -> (7) Accept- (glob)
97 readline(7 from *) -> (7) Accept- (glob)
98 read limit reached; closing socket
98 read limit reached; closing socket
99
99
100 $ rm -f error.log
100 $ rm -f error.log
101
101
102 Failure on subsequent HTTP request on the same socket (cmd?batch)
102 Failure on subsequent HTTP request on the same socket (cmd?batch)
103
103
104 $ hg serve --config badserver.closeafterrecvbytes=210,223 -p $HGPORT -d --pid-file=hg.pid -E error.log
104 $ hg serve --config badserver.closeafterrecvbytes=210,223 -p $HGPORT -d --pid-file=hg.pid -E error.log
105 $ cat hg.pid > $DAEMON_PIDS
105 $ cat hg.pid > $DAEMON_PIDS
106 $ hg clone http://localhost:$HGPORT/ clone
106 $ hg clone http://localhost:$HGPORT/ clone
107 abort: error: bad HTTP status line: * (glob)
107 abort: error: bad HTTP status line: * (glob)
108 [255]
108 [255]
109
109
110 $ killdaemons.py $DAEMON_PIDS
110 $ killdaemons.py $DAEMON_PIDS
111
111
112 $ cat error.log
112 $ cat error.log
113 readline(210 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
113 readline(210 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
114 readline(177 from *) -> (27) Accept-Encoding: identity\r\n (glob)
114 readline(177 from *) -> (27) Accept-Encoding: identity\r\n (glob)
115 readline(150 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
115 readline(150 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
116 readline(115 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
116 readline(115 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
117 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
117 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
118 readline(* from *) -> (2) \r\n (glob)
118 readline(* from *) -> (2) \r\n (glob)
119 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
119 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
120 sendall(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
120 sendall(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
121 write(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
122 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
121 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
123 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
122 write(23) -> Server: badhttpserver\r\n (no-py3 !)
124 write(23) -> Server: badhttpserver\r\n (no-py3 !)
123 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
125 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
124 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
126 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
125 write(21) -> Content-Length: 450\r\n (no-py3 !)
127 write(21) -> Content-Length: 450\r\n (no-py3 !)
126 write(2) -> \r\n (no-py3 !)
128 write(2) -> \r\n (no-py3 !)
127 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
129 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
128 readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
130 readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
129 readline(1? from *) -> (1?) Accept-Encoding* (glob)
131 readline(1? from *) -> (1?) Accept-Encoding* (glob)
130 read limit reached; closing socket
132 read limit reached; closing socket
131 readline(223 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
133 readline(223 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
132 readline(197 from *) -> (27) Accept-Encoding: identity\r\n (glob)
134 readline(197 from *) -> (27) Accept-Encoding: identity\r\n (glob)
133 readline(170 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
135 readline(170 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
134 readline(141 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
136 readline(141 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
135 readline(100 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
137 readline(100 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
136 readline(39 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
138 readline(39 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
137 readline(4 from *) -> (4) host (glob)
139 readline(4 from *) -> (4) host (glob)
138 read limit reached; closing socket
140 read limit reached; closing socket
139
141
140 $ rm -f error.log
142 $ rm -f error.log
141
143
142 Failure to read getbundle HTTP request
144 Failure to read getbundle HTTP request
143
145
144 $ hg serve --config badserver.closeafterrecvbytes=308,317,304 -p $HGPORT -d --pid-file=hg.pid -E error.log
146 $ hg serve --config badserver.closeafterrecvbytes=308,317,304 -p $HGPORT -d --pid-file=hg.pid -E error.log
145 $ cat hg.pid > $DAEMON_PIDS
147 $ cat hg.pid > $DAEMON_PIDS
146 $ hg clone http://localhost:$HGPORT/ clone
148 $ hg clone http://localhost:$HGPORT/ clone
147 requesting all changes
149 requesting all changes
148 abort: error: bad HTTP status line: * (glob)
150 abort: error: bad HTTP status line: * (glob)
149 [255]
151 [255]
150
152
151 $ killdaemons.py $DAEMON_PIDS
153 $ killdaemons.py $DAEMON_PIDS
152
154
153 $ cat error.log
155 $ cat error.log
154 readline(1 from -1) -> (1) x (?)
156 readline(1 from -1) -> (1) x (?)
155 readline(1 from -1) -> (1) x (?)
157 readline(1 from -1) -> (1) x (?)
156 readline(308 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
158 readline(308 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
157 readline(275 from *) -> (27) Accept-Encoding: identity\r\n (glob)
159 readline(275 from *) -> (27) Accept-Encoding: identity\r\n (glob)
158 readline(248 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
160 readline(248 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
159 readline(213 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
161 readline(213 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
160 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
162 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
161 readline(* from *) -> (2) \r\n (glob)
163 readline(* from *) -> (2) \r\n (glob)
162 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
164 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
163 sendall(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
165 sendall(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
166 write(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
167 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
164 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
168 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
165 write(23) -> Server: badhttpserver\r\n (no-py3 !)
169 write(23) -> Server: badhttpserver\r\n (no-py3 !)
166 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
170 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
167 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
171 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
168 write(21) -> Content-Length: 450\r\n (no-py3 !)
172 write(21) -> Content-Length: 450\r\n (no-py3 !)
169 write(2) -> \r\n (no-py3 !)
173 write(2) -> \r\n (no-py3 !)
170 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
174 write(450) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
171 readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
175 readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
172 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
176 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
173 readline(8? from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
177 readline(8? from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
174 readline(5? from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
178 readline(5? from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
175 readline(1? from *) -> (1?) x-hgproto-1:* (glob)
179 readline(1? from *) -> (1?) x-hgproto-1:* (glob)
176 read limit reached; closing socket
180 read limit reached; closing socket
177 readline(317 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
181 readline(317 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
178 readline(291 from *) -> (27) Accept-Encoding: identity\r\n (glob)
182 readline(291 from *) -> (27) Accept-Encoding: identity\r\n (glob)
179 readline(264 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
183 readline(264 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
180 readline(235 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
184 readline(235 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
181 readline(194 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
185 readline(194 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
182 readline(133 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
186 readline(133 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
183 readline(98 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
187 readline(98 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
184 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
188 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
185 readline(* from *) -> (2) \r\n (glob)
189 readline(* from *) -> (2) \r\n (glob)
186 sendall(159) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 !)
190 sendall(159) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py36 !)
187 sendall(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 !)
191 sendall(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
192 write(159) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 no-py36 !)
193 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
188 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
194 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
189 write(23) -> Server: badhttpserver\r\n (no-py3 !)
195 write(23) -> Server: badhttpserver\r\n (no-py3 !)
190 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
196 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
191 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
197 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
192 write(20) -> Content-Length: 42\r\n (no-py3 !)
198 write(20) -> Content-Length: 42\r\n (no-py3 !)
193 write(2) -> \r\n (no-py3 !)
199 write(2) -> \r\n (no-py3 !)
194 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
200 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
195 readline(* from 65537) -> (*) GET /?cmd=getbundle HTTP* (glob)
201 readline(* from 65537) -> (*) GET /?cmd=getbundle HTTP* (glob)
196 read limit reached; closing socket
202 read limit reached; closing socket
197 readline(304 from 65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
203 readline(304 from 65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
198 readline(274 from *) -> (27) Accept-Encoding: identity\r\n (glob)
204 readline(274 from *) -> (27) Accept-Encoding: identity\r\n (glob)
199 readline(247 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
205 readline(247 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
200 readline(218 from *) -> (218) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtag (glob)
206 readline(218 from *) -> (218) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtag (glob)
201 read limit reached; closing socket
207 read limit reached; closing socket
202
208
203 $ rm -f error.log
209 $ rm -f error.log
204
210
205 Now do a variation using POST to send arguments
211 Now do a variation using POST to send arguments
206
212
207 $ hg serve --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=329,344 -p $HGPORT -d --pid-file=hg.pid -E error.log
213 $ hg serve --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=329,344 -p $HGPORT -d --pid-file=hg.pid -E error.log
208 $ cat hg.pid > $DAEMON_PIDS
214 $ cat hg.pid > $DAEMON_PIDS
209
215
210 $ hg clone http://localhost:$HGPORT/ clone
216 $ hg clone http://localhost:$HGPORT/ clone
211 abort: error: bad HTTP status line: * (glob)
217 abort: error: bad HTTP status line: * (glob)
212 [255]
218 [255]
213
219
214 $ killdaemons.py $DAEMON_PIDS
220 $ killdaemons.py $DAEMON_PIDS
215
221
216 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
222 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
217 readline(329 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
223 readline(329 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
218 readline(296 from *) -> (27) Accept-Encoding: identity\r\n (glob)
224 readline(296 from *) -> (27) Accept-Encoding: identity\r\n (glob)
219 readline(269 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
225 readline(269 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
220 readline(234 from *) -> (2?) host: localhost:$HGPORT\r\n (glob)
226 readline(234 from *) -> (2?) host: localhost:$HGPORT\r\n (glob)
221 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
227 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
222 readline(* from *) -> (2) \r\n (glob)
228 readline(* from *) -> (2) \r\n (glob)
223 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 463\r\n\r\n (py3 !)
229 sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 463\r\n\r\n (py36 !)
224 sendall(463) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx httppostargs known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
230 sendall(463) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx httppostargs known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
231 write(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 463\r\n\r\n (py3 no-py36 !)
232 write(463) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx httppostargs known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
225 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
233 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
226 write(23) -> Server: badhttpserver\r\n (no-py3 !)
234 write(23) -> Server: badhttpserver\r\n (no-py3 !)
227 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
235 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
228 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
236 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
229 write(21) -> Content-Length: 463\r\n (no-py3 !)
237 write(21) -> Content-Length: 463\r\n (no-py3 !)
230 write(2) -> \r\n (no-py3 !)
238 write(2) -> \r\n (no-py3 !)
231 write(463) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx httppostargs known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
239 write(463) -> batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx httppostargs known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
232 readline(1?? from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n (glob)
240 readline(1?? from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n (glob)
233 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
241 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
234 readline(1?? from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
242 readline(1?? from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
235 readline(6? from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
243 readline(6? from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
236 readline(3? from *) -> (19) x-hgargs-post: 28\r\n (glob)
244 readline(3? from *) -> (19) x-hgargs-post: 28\r\n (glob)
237 readline(1? from *) -> (1?) x-hgproto-1: * (glob)
245 readline(1? from *) -> (1?) x-hgproto-1: * (glob)
238 read limit reached; closing socket
246 read limit reached; closing socket
239 readline(344 from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n
247 readline(344 from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n
240 readline(317 from *) -> (27) Accept-Encoding: identity\r\n (glob)
248 readline(317 from *) -> (27) Accept-Encoding: identity\r\n (glob)
241 readline(290 from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
249 readline(290 from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
242 readline(249 from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
250 readline(249 from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
243 readline(216 from *) -> (19) x-hgargs-post: 28\r\n (glob)
251 readline(216 from *) -> (19) x-hgargs-post: 28\r\n (glob)
244 readline(197 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
252 readline(197 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
245 readline(136 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
253 readline(136 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
246 readline(101 from *) -> (20) content-length: 28\r\n (glob)
254 readline(101 from *) -> (20) content-length: 28\r\n (glob)
247 readline(81 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
255 readline(81 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
248 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
256 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
249 readline(* from *) -> (2) \r\n (glob)
257 readline(* from *) -> (2) \r\n (glob)
250 read(* from 28) -> (*) cmds=* (glob)
258 read(* from 28) -> (*) cmds=* (glob)
251 read limit reached, closing socket
259 read limit reached, closing socket
252 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
260 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
253 Traceback (most recent call last):
261 Traceback (most recent call last):
254 Exception: connection closed after receiving N bytes
262 Exception: connection closed after receiving N bytes
255
263
264 write(126) -> HTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
256 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
265 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
257
266
258 $ rm -f error.log
267 $ rm -f error.log
259
268
260 Now move on to partial server responses
269 Now move on to partial server responses
261
270
262 Server sends a single character from the HTTP response line
271 Server sends a single character from the HTTP response line
263
272
264 $ hg serve --config badserver.closeaftersendbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
273 $ hg serve --config badserver.closeaftersendbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
265 $ cat hg.pid > $DAEMON_PIDS
274 $ cat hg.pid > $DAEMON_PIDS
266
275
267 $ hg clone http://localhost:$HGPORT/ clone
276 $ hg clone http://localhost:$HGPORT/ clone
268 abort: error: bad HTTP status line: H
277 abort: error: bad HTTP status line: H
269 [255]
278 [255]
270
279
271 $ killdaemons.py $DAEMON_PIDS
280 $ killdaemons.py $DAEMON_PIDS
272
281
273 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
282 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
274 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
283 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
275 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
284 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
276 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
285 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
277 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
286 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
278 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
287 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
279 readline(*) -> (2) \r\n (glob)
288 readline(*) -> (2) \r\n (glob)
280 sendall(1 from 160) -> (0) H (py3 !)
289 sendall(1 from 160) -> (0) H (py36 !)
290 write(1 from 160) -> (0) H (py3 no-py36 !)
281 write(1 from 36) -> (0) H (no-py3 !)
291 write(1 from 36) -> (0) H (no-py3 !)
282 write limit reached; closing socket
292 write limit reached; closing socket
283 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
293 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
284 Traceback (most recent call last):
294 Traceback (most recent call last):
285 Exception: connection closed after sending N bytes
295 Exception: connection closed after sending N bytes
286
296
297 write(286) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
287 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
298 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
288
299
289 $ rm -f error.log
300 $ rm -f error.log
290
301
291 Server sends an incomplete capabilities response body
302 Server sends an incomplete capabilities response body
292
303
293 $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log
304 $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log
294 $ cat hg.pid > $DAEMON_PIDS
305 $ cat hg.pid > $DAEMON_PIDS
295
306
296 $ hg clone http://localhost:$HGPORT/ clone
307 $ hg clone http://localhost:$HGPORT/ clone
297 abort: HTTP request error (incomplete response; expected 450 bytes got 20)
308 abort: HTTP request error (incomplete response; expected 450 bytes got 20)
298 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
309 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
299 [255]
310 [255]
300
311
301 $ killdaemons.py $DAEMON_PIDS
312 $ killdaemons.py $DAEMON_PIDS
302
313
303 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
314 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
304 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
315 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
305 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
316 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
306 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
317 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
307 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
318 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
308 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
319 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
309 readline(*) -> (2) \r\n (glob)
320 readline(*) -> (2) \r\n (glob)
310 sendall(160 from 160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
321 sendall(160 from 160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
311 sendall(20 from 450) -> (0) batch branchmap bund (py3 !)
322 sendall(20 from 450) -> (0) batch branchmap bund (py36 !)
323 write(160 from 160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
324 write(20 from 450) -> (0) batch branchmap bund (py3 no-py36 !)
312 write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
325 write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
313 write(23 from 23) -> (121) Server: badhttpserver\r\n (no-py3 !)
326 write(23 from 23) -> (121) Server: badhttpserver\r\n (no-py3 !)
314 write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n (no-py3 !)
327 write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n (no-py3 !)
315 write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
328 write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
316 write(21 from 21) -> (22) Content-Length: 450\r\n (no-py3 !)
329 write(21 from 21) -> (22) Content-Length: 450\r\n (no-py3 !)
317 write(2 from 2) -> (20) \r\n (no-py3 !)
330 write(2 from 2) -> (20) \r\n (no-py3 !)
318 write(20 from 450) -> (0) batch branchmap bund (no-py3 !)
331 write(20 from 450) -> (0) batch branchmap bund (no-py3 !)
319 write limit reached; closing socket
332 write limit reached; closing socket
320 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
333 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
321 Traceback (most recent call last):
334 Traceback (most recent call last):
322 Exception: connection closed after sending N bytes
335 Exception: connection closed after sending N bytes
323
336
324
337
325 $ rm -f error.log
338 $ rm -f error.log
326
339
327 Server sends incomplete headers for batch request
340 Server sends incomplete headers for batch request
328
341
329 $ hg serve --config badserver.closeaftersendbytes=728 -p $HGPORT -d --pid-file=hg.pid -E error.log
342 $ hg serve --config badserver.closeaftersendbytes=728 -p $HGPORT -d --pid-file=hg.pid -E error.log
330 $ cat hg.pid > $DAEMON_PIDS
343 $ cat hg.pid > $DAEMON_PIDS
331
344
332 TODO this output is horrible
345 TODO this output is horrible
333
346
334 $ hg clone http://localhost:$HGPORT/ clone
347 $ hg clone http://localhost:$HGPORT/ clone
335 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
348 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
336 ---%<--- (applicat)
349 ---%<--- (applicat)
337
350
338 ---%<---
351 ---%<---
339 !
352 !
340 [255]
353 [255]
341
354
342 $ killdaemons.py $DAEMON_PIDS
355 $ killdaemons.py $DAEMON_PIDS
343
356
344 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
357 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
345 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
358 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
346 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
359 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
347 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
360 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
348 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
361 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
349 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
362 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
350 readline(*) -> (2) \r\n (glob)
363 readline(*) -> (2) \r\n (glob)
351 sendall(160 from 160) -> (568) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
364 sendall(160 from 160) -> (568) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
352 sendall(450 from 450) -> (118) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
365 sendall(450 from 450) -> (118) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
366 write(160 from 160) -> (568) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
367 write(450 from 450) -> (118) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
353 write(36 from 36) -> (692) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
368 write(36 from 36) -> (692) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
354 write(23 from 23) -> (669) Server: badhttpserver\r\n (no-py3 !)
369 write(23 from 23) -> (669) Server: badhttpserver\r\n (no-py3 !)
355 write(37 from 37) -> (632) Date: $HTTP_DATE$\r\n (no-py3 !)
370 write(37 from 37) -> (632) Date: $HTTP_DATE$\r\n (no-py3 !)
356 write(41 from 41) -> (591) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
371 write(41 from 41) -> (591) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
357 write(21 from 21) -> (570) Content-Length: 450\r\n (no-py3 !)
372 write(21 from 21) -> (570) Content-Length: 450\r\n (no-py3 !)
358 write(2 from 2) -> (568) \r\n (no-py3 !)
373 write(2 from 2) -> (568) \r\n (no-py3 !)
359 write(450 from 450) -> (118) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
374 write(450 from 450) -> (118) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
360 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
375 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
361 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
376 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
362 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
377 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
363 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
378 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
364 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
379 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
365 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
380 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
366 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
381 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
367 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
382 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
368 readline(*) -> (2) \r\n (glob)
383 readline(*) -> (2) \r\n (glob)
369 sendall(118 from 159) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: applicat (py3 !)
384 sendall(118 from 159) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: applicat (py36 !)
385 write(118 from 159) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: applicat (py3 no-py36 !)
370 write(36 from 36) -> (82) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
386 write(36 from 36) -> (82) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
371 write(23 from 23) -> (59) Server: badhttpserver\r\n (no-py3 !)
387 write(23 from 23) -> (59) Server: badhttpserver\r\n (no-py3 !)
372 write(37 from 37) -> (22) Date: $HTTP_DATE$\r\n (no-py3 !)
388 write(37 from 37) -> (22) Date: $HTTP_DATE$\r\n (no-py3 !)
373 write(22 from 41) -> (0) Content-Type: applicat (no-py3 !)
389 write(22 from 41) -> (0) Content-Type: applicat (no-py3 !)
374 write limit reached; closing socket
390 write limit reached; closing socket
375 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
391 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
376 Traceback (most recent call last):
392 Traceback (most recent call last):
377 Exception: connection closed after sending N bytes
393 Exception: connection closed after sending N bytes
378
394
395 write(285) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
379 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
396 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
380
397
381 $ rm -f error.log
398 $ rm -f error.log
382
399
383 Server sends an incomplete HTTP response body to batch request
400 Server sends an incomplete HTTP response body to batch request
384
401
385 $ hg serve --config badserver.closeaftersendbytes=793 -p $HGPORT -d --pid-file=hg.pid -E error.log
402 $ hg serve --config badserver.closeaftersendbytes=793 -p $HGPORT -d --pid-file=hg.pid -E error.log
386 $ cat hg.pid > $DAEMON_PIDS
403 $ cat hg.pid > $DAEMON_PIDS
387
404
388 TODO client spews a stack due to uncaught ValueError in batch.results()
405 TODO client spews a stack due to uncaught ValueError in batch.results()
389 #if no-chg
406 #if no-chg
390 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
407 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
391 [1]
408 [1]
392 #else
409 #else
393 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
410 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
394 [255]
411 [255]
395 #endif
412 #endif
396
413
397 $ killdaemons.py $DAEMON_PIDS
414 $ killdaemons.py $DAEMON_PIDS
398
415
399 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
416 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
400 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
417 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
401 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
418 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
402 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
419 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
403 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
420 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
404 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
421 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
405 readline(*) -> (2) \r\n (glob)
422 readline(*) -> (2) \r\n (glob)
406 sendall(160 from 160) -> (633) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
423 sendall(160 from 160) -> (633) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
407 sendall(450 from 450) -> (183) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
424 sendall(450 from 450) -> (183) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
425 write(160 from 160) -> (633) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
426 write(450 from 450) -> (183) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
408 write(36 from 36) -> (757) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
427 write(36 from 36) -> (757) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
409 write(23 from 23) -> (734) Server: badhttpserver\r\n (no-py3 !)
428 write(23 from 23) -> (734) Server: badhttpserver\r\n (no-py3 !)
410 write(37 from 37) -> (697) Date: $HTTP_DATE$\r\n (no-py3 !)
429 write(37 from 37) -> (697) Date: $HTTP_DATE$\r\n (no-py3 !)
411 write(41 from 41) -> (656) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
430 write(41 from 41) -> (656) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
412 write(21 from 21) -> (635) Content-Length: 450\r\n (no-py3 !)
431 write(21 from 21) -> (635) Content-Length: 450\r\n (no-py3 !)
413 write(2 from 2) -> (633) \r\n (no-py3 !)
432 write(2 from 2) -> (633) \r\n (no-py3 !)
414 write(450 from 450) -> (183) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
433 write(450 from 450) -> (183) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
415 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
434 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
416 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
435 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
417 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
436 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
418 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
437 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
419 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
438 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
420 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
439 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
421 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
440 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
422 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
441 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
423 readline(*) -> (2) \r\n (glob)
442 readline(*) -> (2) \r\n (glob)
424 sendall(159 from 159) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 !)
443 sendall(159 from 159) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py36 !)
425 sendall(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (py3 !)
444 sendall(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (py36 !)
445 write(159 from 159) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 no-py36 !)
446 write(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (py3 no-py36 !)
426 write(36 from 36) -> (147) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
447 write(36 from 36) -> (147) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
427 write(23 from 23) -> (124) Server: badhttpserver\r\n (no-py3 !)
448 write(23 from 23) -> (124) Server: badhttpserver\r\n (no-py3 !)
428 write(37 from 37) -> (87) Date: $HTTP_DATE$\r\n (no-py3 !)
449 write(37 from 37) -> (87) Date: $HTTP_DATE$\r\n (no-py3 !)
429 write(41 from 41) -> (46) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
450 write(41 from 41) -> (46) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
430 write(20 from 20) -> (26) Content-Length: 42\r\n (no-py3 !)
451 write(20 from 20) -> (26) Content-Length: 42\r\n (no-py3 !)
431 write(2 from 2) -> (24) \r\n (no-py3 !)
452 write(2 from 2) -> (24) \r\n (no-py3 !)
432 write(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (no-py3 !)
453 write(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (no-py3 !)
433 write limit reached; closing socket
454 write limit reached; closing socket
434 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
455 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
435 Traceback (most recent call last):
456 Traceback (most recent call last):
436 Exception: connection closed after sending N bytes
457 Exception: connection closed after sending N bytes
437
458
438
459
439 $ rm -f error.log
460 $ rm -f error.log
440
461
441 Server sends incomplete headers for getbundle response
462 Server sends incomplete headers for getbundle response
442
463
443 $ hg serve --config badserver.closeaftersendbytes=940 -p $HGPORT -d --pid-file=hg.pid -E error.log
464 $ hg serve --config badserver.closeaftersendbytes=940 -p $HGPORT -d --pid-file=hg.pid -E error.log
444 $ cat hg.pid > $DAEMON_PIDS
465 $ cat hg.pid > $DAEMON_PIDS
445
466
446 TODO this output is terrible
467 TODO this output is terrible
447
468
448 $ hg clone http://localhost:$HGPORT/ clone
469 $ hg clone http://localhost:$HGPORT/ clone
449 requesting all changes
470 requesting all changes
450 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
471 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
451 ---%<--- (application/mercuri)
472 ---%<--- (application/mercuri)
452
473
453 ---%<---
474 ---%<---
454 !
475 !
455 [255]
476 [255]
456
477
457 $ killdaemons.py $DAEMON_PIDS
478 $ killdaemons.py $DAEMON_PIDS
458
479
459 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
480 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
460 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
481 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
461 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
482 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
462 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
483 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
463 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
484 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
464 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
485 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
465 readline(*) -> (2) \r\n (glob)
486 readline(*) -> (2) \r\n (glob)
466 sendall(160 from 160) -> (780) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
487 sendall(160 from 160) -> (780) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
467 sendall(450 from 450) -> (330) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
488 sendall(450 from 450) -> (330) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
489 write(160 from 160) -> (780) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
490 write(450 from 450) -> (330) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
468 write(36 from 36) -> (904) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
491 write(36 from 36) -> (904) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
469 write(23 from 23) -> (881) Server: badhttpserver\r\n (no-py3 !)
492 write(23 from 23) -> (881) Server: badhttpserver\r\n (no-py3 !)
470 write(37 from 37) -> (844) Date: $HTTP_DATE$\r\n (no-py3 !)
493 write(37 from 37) -> (844) Date: $HTTP_DATE$\r\n (no-py3 !)
471 write(41 from 41) -> (803) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
494 write(41 from 41) -> (803) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
472 write(21 from 21) -> (782) Content-Length: 450\r\n (no-py3 !)
495 write(21 from 21) -> (782) Content-Length: 450\r\n (no-py3 !)
473 write(2 from 2) -> (780) \r\n (no-py3 !)
496 write(2 from 2) -> (780) \r\n (no-py3 !)
474 write(450 from 450) -> (330) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
497 write(450 from 450) -> (330) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
475 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
498 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
476 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
499 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
477 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
500 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
478 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
501 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
479 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
502 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
480 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
503 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
481 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
504 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
482 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
505 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
483 readline(*) -> (2) \r\n (glob)
506 readline(*) -> (2) \r\n (glob)
484 sendall(159 from 159) -> (171) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 !)
507 sendall(159 from 159) -> (171) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py36 !)
485 sendall(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 !)
508 sendall(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
509 write(159 from 159) -> (171) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 no-py36 !)
510 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
486 write(36 from 36) -> (294) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
511 write(36 from 36) -> (294) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
487 write(23 from 23) -> (271) Server: badhttpserver\r\n (no-py3 !)
512 write(23 from 23) -> (271) Server: badhttpserver\r\n (no-py3 !)
488 write(37 from 37) -> (234) Date: $HTTP_DATE$\r\n (no-py3 !)
513 write(37 from 37) -> (234) Date: $HTTP_DATE$\r\n (no-py3 !)
489 write(41 from 41) -> (193) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
514 write(41 from 41) -> (193) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
490 write(20 from 20) -> (173) Content-Length: 42\r\n (no-py3 !)
515 write(20 from 20) -> (173) Content-Length: 42\r\n (no-py3 !)
491 write(2 from 2) -> (171) \r\n (no-py3 !)
516 write(2 from 2) -> (171) \r\n (no-py3 !)
492 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
517 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
493 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
518 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
494 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
519 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
495 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
520 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
496 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
521 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
497 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
522 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
498 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
523 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
499 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
524 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
500 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
525 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
501 readline(*) -> (2) \r\n (glob)
526 readline(*) -> (2) \r\n (glob)
502 sendall(129 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercuri (py3 !)
527 sendall(129 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercuri (py36 !)
528 write(129 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercuri (py3 no-py36 !)
503 write(36 from 36) -> (93) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
529 write(36 from 36) -> (93) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
504 write(23 from 23) -> (70) Server: badhttpserver\r\n (no-py3 !)
530 write(23 from 23) -> (70) Server: badhttpserver\r\n (no-py3 !)
505 write(37 from 37) -> (33) Date: $HTTP_DATE$\r\n (no-py3 !)
531 write(37 from 37) -> (33) Date: $HTTP_DATE$\r\n (no-py3 !)
506 write(33 from 41) -> (0) Content-Type: application/mercuri (no-py3 !)
532 write(33 from 41) -> (0) Content-Type: application/mercuri (no-py3 !)
507 write limit reached; closing socket
533 write limit reached; closing socket
508 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
534 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
509 Traceback (most recent call last):
535 Traceback (most recent call last):
510 Exception: connection closed after sending N bytes
536 Exception: connection closed after sending N bytes
511
537
538 write(293) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
512 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
539 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
513
540
514 $ rm -f error.log
541 $ rm -f error.log
515
542
516 Server stops before it sends transfer encoding
543 Server stops before it sends transfer encoding
517
544
518 $ hg serve --config badserver.closeaftersendbytes=973 -p $HGPORT -d --pid-file=hg.pid -E error.log
545 $ hg serve --config badserver.closeaftersendbytes=973 -p $HGPORT -d --pid-file=hg.pid -E error.log
519 $ cat hg.pid > $DAEMON_PIDS
546 $ cat hg.pid > $DAEMON_PIDS
520
547
521 $ hg clone http://localhost:$HGPORT/ clone
548 $ hg clone http://localhost:$HGPORT/ clone
522 requesting all changes
549 requesting all changes
523 abort: stream ended unexpectedly (got 0 bytes, expected 1)
550 abort: stream ended unexpectedly (got 0 bytes, expected 1)
524 [255]
551 [255]
525
552
526 $ killdaemons.py $DAEMON_PIDS
553 $ killdaemons.py $DAEMON_PIDS
527
554
528 #if py3
555 #if py36
529 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -3
556 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -3
530 Traceback (most recent call last):
557 Traceback (most recent call last):
531 Exception: connection closed after sending N bytes
558 Exception: connection closed after sending N bytes
532
559
533
560
534 #else
561 #else
535 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -4
562 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -4
536 Traceback (most recent call last):
563 Traceback (most recent call last):
537 Exception: connection closed after sending N bytes
564 Exception: connection closed after sending N bytes
538
565
539 write(36) -> HTTP/1.1 500 Internal Server Error\r\n
566 write(293) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
567 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
540 #endif
568 #endif
541
569
542 $ rm -f error.log
570 $ rm -f error.log
543
571
544 Server sends empty HTTP body for getbundle
572 Server sends empty HTTP body for getbundle
545
573
546 $ hg serve --config badserver.closeaftersendbytes=978 -p $HGPORT -d --pid-file=hg.pid -E error.log
574 $ hg serve --config badserver.closeaftersendbytes=978 -p $HGPORT -d --pid-file=hg.pid -E error.log
547 $ cat hg.pid > $DAEMON_PIDS
575 $ cat hg.pid > $DAEMON_PIDS
548
576
549 $ hg clone http://localhost:$HGPORT/ clone
577 $ hg clone http://localhost:$HGPORT/ clone
550 requesting all changes
578 requesting all changes
551 abort: HTTP request error (incomplete response)
579 abort: HTTP request error (incomplete response)
552 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
580 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
553 [255]
581 [255]
554
582
555 $ killdaemons.py $DAEMON_PIDS
583 $ killdaemons.py $DAEMON_PIDS
556
584
557 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
585 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
558 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
586 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
559 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
587 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
560 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
588 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
561 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
589 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
562 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
590 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
563 readline(*) -> (2) \r\n (glob)
591 readline(*) -> (2) \r\n (glob)
564 sendall(160 from 160) -> (818) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
592 sendall(160 from 160) -> (818) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
565 sendall(450 from 450) -> (368) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
593 sendall(450 from 450) -> (368) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
594 write(160 from 160) -> (818) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
595 write(450 from 450) -> (368) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
566 write(36 from 36) -> (942) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
596 write(36 from 36) -> (942) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
567 write(23 from 23) -> (919) Server: badhttpserver\r\n (no-py3 !)
597 write(23 from 23) -> (919) Server: badhttpserver\r\n (no-py3 !)
568 write(37 from 37) -> (882) Date: $HTTP_DATE$\r\n (no-py3 !)
598 write(37 from 37) -> (882) Date: $HTTP_DATE$\r\n (no-py3 !)
569 write(41 from 41) -> (841) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
599 write(41 from 41) -> (841) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
570 write(21 from 21) -> (820) Content-Length: 450\r\n (no-py3 !)
600 write(21 from 21) -> (820) Content-Length: 450\r\n (no-py3 !)
571 write(2 from 2) -> (818) \r\n (no-py3 !)
601 write(2 from 2) -> (818) \r\n (no-py3 !)
572 write(450 from 450) -> (368) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
602 write(450 from 450) -> (368) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
573 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
603 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
574 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
604 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
575 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
605 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
576 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
606 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
577 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
607 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
578 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
608 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
579 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
609 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
580 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
610 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
581 readline(*) -> (2) \r\n (glob)
611 readline(*) -> (2) \r\n (glob)
582 sendall(159 from 159) -> (209) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 !)
612 sendall(159 from 159) -> (209) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py36 !)
583 sendall(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 !)
613 sendall(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
614 write(159 from 159) -> (209) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 no-py36 !)
615 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
584 write(36 from 36) -> (332) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
616 write(36 from 36) -> (332) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
585 write(23 from 23) -> (309) Server: badhttpserver\r\n (no-py3 !)
617 write(23 from 23) -> (309) Server: badhttpserver\r\n (no-py3 !)
586 write(37 from 37) -> (272) Date: $HTTP_DATE$\r\n (no-py3 !)
618 write(37 from 37) -> (272) Date: $HTTP_DATE$\r\n (no-py3 !)
587 write(41 from 41) -> (231) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
619 write(41 from 41) -> (231) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
588 write(20 from 20) -> (211) Content-Length: 42\r\n (no-py3 !)
620 write(20 from 20) -> (211) Content-Length: 42\r\n (no-py3 !)
589 write(2 from 2) -> (209) \r\n (no-py3 !)
621 write(2 from 2) -> (209) \r\n (no-py3 !)
590 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
622 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
591 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
623 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
592 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
624 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
593 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
625 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
594 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
626 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
595 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
627 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
596 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
628 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
597 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
629 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
598 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
630 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
599 readline(*) -> (2) \r\n (glob)
631 readline(*) -> (2) \r\n (glob)
600 sendall(167 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
632 sendall(167 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py36 !)
633 write(167 from 167) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
601 write(36 from 36) -> (131) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
634 write(36 from 36) -> (131) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
602 write(23 from 23) -> (108) Server: badhttpserver\r\n (no-py3 !)
635 write(23 from 23) -> (108) Server: badhttpserver\r\n (no-py3 !)
603 write(37 from 37) -> (71) Date: $HTTP_DATE$\r\n (no-py3 !)
636 write(37 from 37) -> (71) Date: $HTTP_DATE$\r\n (no-py3 !)
604 write(41 from 41) -> (30) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
637 write(41 from 41) -> (30) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
605 write(28 from 28) -> (2) Transfer-Encoding: chunked\r\n (no-py3 !)
638 write(28 from 28) -> (2) Transfer-Encoding: chunked\r\n (no-py3 !)
606 write(2 from 2) -> (0) \r\n (no-py3 !)
639 write(2 from 2) -> (0) \r\n (no-py3 !)
607 write limit reached; closing socket
640 write limit reached; closing socket
608 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
641 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
609 Traceback (most recent call last):
642 Traceback (most recent call last):
610 Exception: connection closed after sending N bytes
643 Exception: connection closed after sending N bytes
611
644
645 write(293) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
612 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
646 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
613
647
614 $ rm -f error.log
648 $ rm -f error.log
615
649
616 Server sends partial compression string
650 Server sends partial compression string
617
651
618 $ hg serve --config badserver.closeaftersendbytes=1002 -p $HGPORT -d --pid-file=hg.pid -E error.log
652 $ hg serve --config badserver.closeaftersendbytes=1002 -p $HGPORT -d --pid-file=hg.pid -E error.log
619 $ cat hg.pid > $DAEMON_PIDS
653 $ cat hg.pid > $DAEMON_PIDS
620
654
621 $ hg clone http://localhost:$HGPORT/ clone
655 $ hg clone http://localhost:$HGPORT/ clone
622 requesting all changes
656 requesting all changes
623 abort: HTTP request error (incomplete response)
657 abort: HTTP request error (incomplete response)
624 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
658 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
625 [255]
659 [255]
626
660
627 $ killdaemons.py $DAEMON_PIDS
661 $ killdaemons.py $DAEMON_PIDS
628
662
629 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
663 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
630 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
664 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
631 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
665 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
632 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
666 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
633 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
667 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
634 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
668 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
635 readline(*) -> (2) \r\n (glob)
669 readline(*) -> (2) \r\n (glob)
636 sendall(160 from 160) -> (842) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 !)
670 sendall(160 from 160) -> (842) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py36 !)
637 sendall(450 from 450) -> (392) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 !)
671 sendall(450 from 450) -> (392) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py36 !)
672 write(160 from 160) -> (842) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 450\r\n\r\n (py3 no-py36 !)
673 write(450 from 450) -> (392) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (py3 no-py36 !)
638 write(36 from 36) -> (966) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
674 write(36 from 36) -> (966) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
639 write(23 from 23) -> (943) Server: badhttpserver\r\n (no-py3 !)
675 write(23 from 23) -> (943) Server: badhttpserver\r\n (no-py3 !)
640 write(37 from 37) -> (906) Date: $HTTP_DATE$\r\n (no-py3 !)
676 write(37 from 37) -> (906) Date: $HTTP_DATE$\r\n (no-py3 !)
641 write(41 from 41) -> (865) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
677 write(41 from 41) -> (865) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
642 write(21 from 21) -> (844) Content-Length: 450\r\n (no-py3 !)
678 write(21 from 21) -> (844) Content-Length: 450\r\n (no-py3 !)
643 write(2 from 2) -> (842) \r\n (no-py3 !)
679 write(2 from 2) -> (842) \r\n (no-py3 !)
644 write(450 from 450) -> (392) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
680 write(450 from 450) -> (392) batch branchmap $USUAL_BUNDLE2_CAPS_NO_PHASES$ changegroupsubset compression=none getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-py3 !)
645 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
681 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
646 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
682 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
647 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
683 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
648 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
684 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
649 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
685 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
650 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
686 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
651 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
687 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
652 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
688 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
653 readline(*) -> (2) \r\n (glob)
689 readline(*) -> (2) \r\n (glob)
654 sendall(159 from 159) -> (233) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 !)
690 sendall(159 from 159) -> (233) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py36 !)
655 sendall(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 !)
691 sendall(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
692 write(159 from 159) -> (233) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 42\r\n\r\n (py3 no-py36 !)
656 write(36 from 36) -> (356) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
693 write(36 from 36) -> (356) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
657 write(23 from 23) -> (333) Server: badhttpserver\r\n (no-py3 !)
694 write(23 from 23) -> (333) Server: badhttpserver\r\n (no-py3 !)
658 write(37 from 37) -> (296) Date: $HTTP_DATE$\r\n (no-py3 !)
695 write(37 from 37) -> (296) Date: $HTTP_DATE$\r\n (no-py3 !)
659 write(41 from 41) -> (255) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
696 write(41 from 41) -> (255) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
660 write(20 from 20) -> (235) Content-Length: 42\r\n (no-py3 !)
697 write(20 from 20) -> (235) Content-Length: 42\r\n (no-py3 !)
661 write(2 from 2) -> (233) \r\n (no-py3 !)
698 write(2 from 2) -> (233) \r\n (no-py3 !)
662 write(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
699 write(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
663 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
700 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
664 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
701 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
665 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
702 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
666 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
703 readline(*) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
667 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
704 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
668 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
705 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
669 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
706 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
670 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
707 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
671 readline(*) -> (2) \r\n (glob)
708 readline(*) -> (2) \r\n (glob)
672 sendall(167 from 167) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
709 sendall(167 from 167) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py36 !)
673 sendall(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (py3 !)
710 sendall(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (py36 !)
674 sendall(9 from 9) -> (9) 4\r\nnone\r\n (py3 !)
711 sendall(9 from 9) -> (9) 4\r\nnone\r\n (py36 !)
675 sendall(9 from 9) -> (0) 4\r\nHG20\r\n (py3 !)
712 sendall(9 from 9) -> (0) 4\r\nHG20\r\n (py36 !)
713 write(167 from 167) -> (24) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !)
676 write(36 from 36) -> (155) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
714 write(36 from 36) -> (155) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
677 write(23 from 23) -> (132) Server: badhttpserver\r\n (no-py3 !)
715 write(23 from 23) -> (132) Server: badhttpserver\r\n (no-py3 !)
678 write(37 from 37) -> (95) Date: $HTTP_DATE$\r\n (no-py3 !)
716 write(37 from 37) -> (95) Date: $HTTP_DATE$\r\n (no-py3 !)
679 write(41 from 41) -> (54) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
717 write(41 from 41) -> (54) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
680 write(28 from 28) -> (26) Transfer-Encoding: chunked\r\n (no-py3 !)
718 write(28 from 28) -> (26) Transfer-Encoding: chunked\r\n (no-py3 !)
681 write(2 from 2) -> (24) \r\n (no-py3 !)
719 write(2 from 2) -> (24) \r\n (no-py3 !)
682 write(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (no-py3 !)
720 write(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (no-py3 !)
683 write(9 from 9) -> (9) 4\r\nnone\r\n (no-py3 !)
721 write(9 from 9) -> (9) 4\r\nnone\r\n (no-py3 !)
684 write(9 from 9) -> (0) 4\r\nHG20\r\n (no-py3 !)
722 write(9 from 9) -> (0) 4\r\nHG20\r\n (no-py3 !)
685 write limit reached; closing socket
723 write limit reached; closing socket
686 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
724 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
687 Traceback (most recent call last):
725 Traceback (most recent call last):
688 Exception: connection closed after sending N bytes
726 Exception: connection closed after sending N bytes
689
727
690 write(27) -> 15\r\nInternal Server Error\r\n (no-py3 !)
728 write(27) -> 15\r\nInternal Server Error\r\n (no-py3 !)
691
729
692 $ rm -f error.log
730 $ rm -f error.log
693
731
694 Server sends partial bundle2 header magic
732 Server sends partial bundle2 header magic
695
733
696 $ hg serve --config badserver.closeaftersendbytes=999 -p $HGPORT -d --pid-file=hg.pid -E error.log
734 $ hg serve --config badserver.closeaftersendbytes=999 -p $HGPORT -d --pid-file=hg.pid -E error.log
697 $ cat hg.pid > $DAEMON_PIDS
735 $ cat hg.pid > $DAEMON_PIDS
698
736
699 $ hg clone http://localhost:$HGPORT/ clone
737 $ hg clone http://localhost:$HGPORT/ clone
700 requesting all changes
738 requesting all changes
701 abort: HTTP request error (incomplete response) (py3 !)
739 abort: HTTP request error (incomplete response) (py3 !)
702 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
740 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
703 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
741 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
704 [255]
742 [255]
705
743
706 $ killdaemons.py $DAEMON_PIDS
744 $ killdaemons.py $DAEMON_PIDS
707
745
708 #if py3
746 #if py36
709 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -9
747 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -9
710 sendall(167 from 167) -> (21) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
748 sendall(167 from 167) -> (21) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
711 sendall(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
749 sendall(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
712 sendall(9 from 9) -> (6) 4\r\nnone\r\n
750 sendall(9 from 9) -> (6) 4\r\nnone\r\n
713 sendall(6 from 9) -> (0) 4\r\nHG2
751 sendall(6 from 9) -> (0) 4\r\nHG2
714 write limit reached; closing socket
752 write limit reached; closing socket
715 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
753 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
716 Traceback (most recent call last):
754 Traceback (most recent call last):
717 Exception: connection closed after sending N bytes
755 Exception: connection closed after sending N bytes
718
756
719
757
720 #else
758 #else
721 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
759 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
722 write(28 from 28) -> (23) Transfer-Encoding: chunked\r\n
760 readline(65537) -> (2) \r\n (py3 !)
723 write(2 from 2) -> (21) \r\n
761 write(167 from 167) -> (21) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
762 write(28 from 28) -> (23) Transfer-Encoding: chunked\r\n (no-py3 !)
763 write(2 from 2) -> (21) \r\n (no-py3 !)
724 write(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
764 write(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
725 write(9 from 9) -> (6) 4\r\nnone\r\n
765 write(9 from 9) -> (6) 4\r\nnone\r\n
726 write(6 from 9) -> (0) 4\r\nHG2
766 write(6 from 9) -> (0) 4\r\nHG2
727 write limit reached; closing socket
767 write limit reached; closing socket
728 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
768 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
729 Traceback (most recent call last):
769 Traceback (most recent call last):
730 Exception: connection closed after sending N bytes
770 Exception: connection closed after sending N bytes
731
771
732 write(27) -> 15\r\nInternal Server Error\r\n
772 write(27) -> 15\r\nInternal Server Error\r\n
733 #endif
773 #endif
734
774
735 $ rm -f error.log
775 $ rm -f error.log
736
776
737 Server sends incomplete bundle2 stream params length
777 Server sends incomplete bundle2 stream params length
738
778
739 $ hg serve --config badserver.closeaftersendbytes=1008 -p $HGPORT -d --pid-file=hg.pid -E error.log
779 $ hg serve --config badserver.closeaftersendbytes=1008 -p $HGPORT -d --pid-file=hg.pid -E error.log
740 $ cat hg.pid > $DAEMON_PIDS
780 $ cat hg.pid > $DAEMON_PIDS
741
781
742 $ hg clone http://localhost:$HGPORT/ clone
782 $ hg clone http://localhost:$HGPORT/ clone
743 requesting all changes
783 requesting all changes
744 abort: HTTP request error (incomplete response) (py3 !)
784 abort: HTTP request error (incomplete response) (py3 !)
745 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
785 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
746 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
786 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
747 [255]
787 [255]
748
788
749 $ killdaemons.py $DAEMON_PIDS
789 $ killdaemons.py $DAEMON_PIDS
750
790
751 #if py3
791 #if py36
752 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
792 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
753 sendall(167 from 167) -> (30) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
793 sendall(167 from 167) -> (30) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
754 sendall(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
794 sendall(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
755 sendall(9 from 9) -> (15) 4\r\nnone\r\n
795 sendall(9 from 9) -> (15) 4\r\nnone\r\n
756 sendall(9 from 9) -> (6) 4\r\nHG20\r\n
796 sendall(9 from 9) -> (6) 4\r\nHG20\r\n
757 sendall(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
797 sendall(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
758 write limit reached; closing socket
798 write limit reached; closing socket
759 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
799 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
760 Traceback (most recent call last):
800 Traceback (most recent call last):
761 Exception: connection closed after sending N bytes
801 Exception: connection closed after sending N bytes
762
802
763
803
764 #else
804 #else
765 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
805 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
766 write(28 from 28) -> (32) Transfer-Encoding: chunked\r\n
806 readline(65537) -> (2) \r\n (py3 !)
767 write(2 from 2) -> (30) \r\n
807 write(167 from 167) -> (30) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
808 write(28 from 28) -> (32) Transfer-Encoding: chunked\r\n (no-py3 !)
809 write(2 from 2) -> (30) \r\n (no-py3 !)
768 write(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
810 write(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
769 write(9 from 9) -> (15) 4\r\nnone\r\n
811 write(9 from 9) -> (15) 4\r\nnone\r\n
770 write(9 from 9) -> (6) 4\r\nHG20\r\n
812 write(9 from 9) -> (6) 4\r\nHG20\r\n
771 write(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
813 write(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
772 write limit reached; closing socket
814 write limit reached; closing socket
773 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
815 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
774 Traceback (most recent call last):
816 Traceback (most recent call last):
775 Exception: connection closed after sending N bytes
817 Exception: connection closed after sending N bytes
776
818
777 write(27) -> 15\r\nInternal Server Error\r\n
819 write(27) -> 15\r\nInternal Server Error\r\n
778 #endif
820 #endif
779
821
780 $ rm -f error.log
822 $ rm -f error.log
781
823
782 Servers stops after bundle2 stream params header
824 Servers stops after bundle2 stream params header
783
825
784 $ hg serve --config badserver.closeaftersendbytes=1011 -p $HGPORT -d --pid-file=hg.pid -E error.log
826 $ hg serve --config badserver.closeaftersendbytes=1011 -p $HGPORT -d --pid-file=hg.pid -E error.log
785 $ cat hg.pid > $DAEMON_PIDS
827 $ cat hg.pid > $DAEMON_PIDS
786
828
787 $ hg clone http://localhost:$HGPORT/ clone
829 $ hg clone http://localhost:$HGPORT/ clone
788 requesting all changes
830 requesting all changes
789 abort: HTTP request error (incomplete response)
831 abort: HTTP request error (incomplete response)
790 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
832 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
791 [255]
833 [255]
792
834
793 $ killdaemons.py $DAEMON_PIDS
835 $ killdaemons.py $DAEMON_PIDS
794
836
795 #if py3
837 #if py36
796 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
838 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
797 sendall(167 from 167) -> (33) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
839 sendall(167 from 167) -> (33) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
798 sendall(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
840 sendall(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
799 sendall(9 from 9) -> (18) 4\r\nnone\r\n
841 sendall(9 from 9) -> (18) 4\r\nnone\r\n
800 sendall(9 from 9) -> (9) 4\r\nHG20\r\n
842 sendall(9 from 9) -> (9) 4\r\nHG20\r\n
801 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
843 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
802 write limit reached; closing socket
844 write limit reached; closing socket
803 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
845 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
804 Traceback (most recent call last):
846 Traceback (most recent call last):
805 Exception: connection closed after sending N bytes
847 Exception: connection closed after sending N bytes
806
848
807
849
808 #else
850 #else
809 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
851 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
810 write(28 from 28) -> (35) Transfer-Encoding: chunked\r\n
852 readline(65537) -> (2) \r\n (py3 !)
811 write(2 from 2) -> (33) \r\n
853 write(167 from 167) -> (33) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
854 write(28 from 28) -> (35) Transfer-Encoding: chunked\r\n (no-py3 !)
855 write(2 from 2) -> (33) \r\n (no-py3 !)
812 write(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
856 write(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
813 write(9 from 9) -> (18) 4\r\nnone\r\n
857 write(9 from 9) -> (18) 4\r\nnone\r\n
814 write(9 from 9) -> (9) 4\r\nHG20\r\n
858 write(9 from 9) -> (9) 4\r\nHG20\r\n
815 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
859 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
816 write limit reached; closing socket
860 write limit reached; closing socket
817 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
861 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
818 Traceback (most recent call last):
862 Traceback (most recent call last):
819 Exception: connection closed after sending N bytes
863 Exception: connection closed after sending N bytes
820
864
821 write(27) -> 15\r\nInternal Server Error\r\n
865 write(27) -> 15\r\nInternal Server Error\r\n
822 #endif
866 #endif
823
867
824 $ rm -f error.log
868 $ rm -f error.log
825
869
826 Server stops sending after bundle2 part header length
870 Server stops sending after bundle2 part header length
827
871
828 $ hg serve --config badserver.closeaftersendbytes=1020 -p $HGPORT -d --pid-file=hg.pid -E error.log
872 $ hg serve --config badserver.closeaftersendbytes=1020 -p $HGPORT -d --pid-file=hg.pid -E error.log
829 $ cat hg.pid > $DAEMON_PIDS
873 $ cat hg.pid > $DAEMON_PIDS
830
874
831 $ hg clone http://localhost:$HGPORT/ clone
875 $ hg clone http://localhost:$HGPORT/ clone
832 requesting all changes
876 requesting all changes
833 abort: HTTP request error (incomplete response)
877 abort: HTTP request error (incomplete response)
834 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
878 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
835 [255]
879 [255]
836
880
837 $ killdaemons.py $DAEMON_PIDS
881 $ killdaemons.py $DAEMON_PIDS
838
882
839 #if py3
883 #if py36
840 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
884 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
841 sendall(167 from 167) -> (42) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
885 sendall(167 from 167) -> (42) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
842 sendall(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
886 sendall(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
843 sendall(9 from 9) -> (27) 4\r\nnone\r\n
887 sendall(9 from 9) -> (27) 4\r\nnone\r\n
844 sendall(9 from 9) -> (18) 4\r\nHG20\r\n
888 sendall(9 from 9) -> (18) 4\r\nHG20\r\n
845 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
889 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
846 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
890 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
847 write limit reached; closing socket
891 write limit reached; closing socket
848 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
892 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
849 Traceback (most recent call last):
893 Traceback (most recent call last):
850 Exception: connection closed after sending N bytes
894 Exception: connection closed after sending N bytes
851
895
852
896
853 #else
897 #else
854
898
855 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -13
899 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -13
856 write(28 from 28) -> (44) Transfer-Encoding: chunked\r\n
900 readline(65537) -> (2) \r\n (py3 !)
857 write(2 from 2) -> (42) \r\n
901 write(167 from 167) -> (42) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
902 write(28 from 28) -> (44) Transfer-Encoding: chunked\r\n (no-py3 !)
903 write(2 from 2) -> (42) \r\n (no-py3 !)
858 write(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
904 write(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
859 write(9 from 9) -> (27) 4\r\nnone\r\n
905 write(9 from 9) -> (27) 4\r\nnone\r\n
860 write(9 from 9) -> (18) 4\r\nHG20\r\n
906 write(9 from 9) -> (18) 4\r\nHG20\r\n
861 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
907 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
862 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
908 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
863 write limit reached; closing socket
909 write limit reached; closing socket
864 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
910 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
865 Traceback (most recent call last):
911 Traceback (most recent call last):
866 Exception: connection closed after sending N bytes
912 Exception: connection closed after sending N bytes
867
913
868 write(27) -> 15\r\nInternal Server Error\r\n
914 write(27) -> 15\r\nInternal Server Error\r\n
869 #endif
915 #endif
870
916
871 $ rm -f error.log
917 $ rm -f error.log
872
918
873 Server stops sending after bundle2 part header
919 Server stops sending after bundle2 part header
874
920
875 $ hg serve --config badserver.closeaftersendbytes=1067 -p $HGPORT -d --pid-file=hg.pid -E error.log
921 $ hg serve --config badserver.closeaftersendbytes=1067 -p $HGPORT -d --pid-file=hg.pid -E error.log
876 $ cat hg.pid > $DAEMON_PIDS
922 $ cat hg.pid > $DAEMON_PIDS
877
923
878 $ hg clone http://localhost:$HGPORT/ clone
924 $ hg clone http://localhost:$HGPORT/ clone
879 requesting all changes
925 requesting all changes
880 adding changesets
926 adding changesets
881 transaction abort!
927 transaction abort!
882 rollback completed
928 rollback completed
883 abort: HTTP request error (incomplete response)
929 abort: HTTP request error (incomplete response)
884 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
930 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
885 [255]
931 [255]
886
932
887 $ killdaemons.py $DAEMON_PIDS
933 $ killdaemons.py $DAEMON_PIDS
888
934
889 #if py3
935 #if py36
890 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
936 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
891 sendall(167 from 167) -> (89) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
937 sendall(167 from 167) -> (89) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
892 sendall(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
938 sendall(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
893 sendall(9 from 9) -> (74) 4\r\nnone\r\n
939 sendall(9 from 9) -> (74) 4\r\nnone\r\n
894 sendall(9 from 9) -> (65) 4\r\nHG20\r\n
940 sendall(9 from 9) -> (65) 4\r\nHG20\r\n
895 sendall(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
941 sendall(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
896 sendall(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
942 sendall(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
897 sendall(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
943 sendall(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
898 write limit reached; closing socket
944 write limit reached; closing socket
899 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
945 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
900 Traceback (most recent call last):
946 Traceback (most recent call last):
901 Exception: connection closed after sending N bytes
947 Exception: connection closed after sending N bytes
902
948
903
949
904 #else
950 #else
905 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
951 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
906 write(28 from 28) -> (91) Transfer-Encoding: chunked\r\n
952 readline(65537) -> (2) \r\n (py3 !)
907 write(2 from 2) -> (89) \r\n
953 write(167 from 167) -> (89) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
954 write(28 from 28) -> (91) Transfer-Encoding: chunked\r\n (no-py3 !)
955 write(2 from 2) -> (89) \r\n (no-py3 !)
908 write(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
956 write(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
909 write(9 from 9) -> (74) 4\r\nnone\r\n
957 write(9 from 9) -> (74) 4\r\nnone\r\n
910 write(9 from 9) -> (65) 4\r\nHG20\r\n
958 write(9 from 9) -> (65) 4\r\nHG20\r\n
911 write(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
959 write(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
912 write(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
960 write(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
913 write(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
961 write(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
914 write limit reached; closing socket
962 write limit reached; closing socket
915 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
963 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
916 Traceback (most recent call last):
964 Traceback (most recent call last):
917 Exception: connection closed after sending N bytes
965 Exception: connection closed after sending N bytes
918
966
919 write(27) -> 15\r\nInternal Server Error\r\n
967 write(27) -> 15\r\nInternal Server Error\r\n
920 #endif
968 #endif
921
969
922 $ rm -f error.log
970 $ rm -f error.log
923
971
924 Server stops after bundle2 part payload chunk size
972 Server stops after bundle2 part payload chunk size
925
973
926 $ hg serve --config badserver.closeaftersendbytes=1088 -p $HGPORT -d --pid-file=hg.pid -E error.log
974 $ hg serve --config badserver.closeaftersendbytes=1088 -p $HGPORT -d --pid-file=hg.pid -E error.log
927 $ cat hg.pid > $DAEMON_PIDS
975 $ cat hg.pid > $DAEMON_PIDS
928
976
929 $ hg clone http://localhost:$HGPORT/ clone
977 $ hg clone http://localhost:$HGPORT/ clone
930 requesting all changes
978 requesting all changes
931 adding changesets
979 adding changesets
932 transaction abort!
980 transaction abort!
933 rollback completed
981 rollback completed
934 abort: HTTP request error (incomplete response) (py3 !)
982 abort: HTTP request error (incomplete response) (py3 !)
935 abort: HTTP request error (incomplete response; expected 466 bytes got 7) (no-py3 !)
983 abort: HTTP request error (incomplete response; expected 466 bytes got 7) (no-py3 !)
936 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
984 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
937 [255]
985 [255]
938
986
939 $ killdaemons.py $DAEMON_PIDS
987 $ killdaemons.py $DAEMON_PIDS
940
988
941 #if py3
989 #if py36
942 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
990 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
943 sendall(167 from 167) -> (110) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
991 sendall(167 from 167) -> (110) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
944 sendall(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
992 sendall(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
945 sendall(9 from 9) -> (95) 4\r\nnone\r\n
993 sendall(9 from 9) -> (95) 4\r\nnone\r\n
946 sendall(9 from 9) -> (86) 4\r\nHG20\r\n
994 sendall(9 from 9) -> (86) 4\r\nHG20\r\n
947 sendall(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
995 sendall(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
948 sendall(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
996 sendall(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
949 sendall(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
997 sendall(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
950 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
998 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
951 sendall(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
999 sendall(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
952 write limit reached; closing socket
1000 write limit reached; closing socket
953 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1001 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
954 Traceback (most recent call last):
1002 Traceback (most recent call last):
955 Exception: connection closed after sending N bytes
1003 Exception: connection closed after sending N bytes
956
1004
957
1005
958 #else
1006 #else
959 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -15
1007 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -15
960 write(2 from 2) -> (110) \r\n
1008 write(167 from 167) -> (110) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
1009 write(2 from 2) -> (110) \r\n (no-py3 !)
961 write(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
1010 write(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
962 write(9 from 9) -> (95) 4\r\nnone\r\n
1011 write(9 from 9) -> (95) 4\r\nnone\r\n
963 write(9 from 9) -> (86) 4\r\nHG20\r\n
1012 write(9 from 9) -> (86) 4\r\nHG20\r\n
964 write(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1013 write(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
965 write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1014 write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
966 write(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1015 write(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
967 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1016 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
968 write(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
1017 write(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
969 write limit reached; closing socket
1018 write limit reached; closing socket
970 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1019 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
971 Traceback (most recent call last):
1020 Traceback (most recent call last):
972 Exception: connection closed after sending N bytes
1021 Exception: connection closed after sending N bytes
973
1022
974 write(27) -> 15\r\nInternal Server Error\r\n
1023 write(27) -> 15\r\nInternal Server Error\r\n
975 #endif
1024 #endif
976
1025
977 $ rm -f error.log
1026 $ rm -f error.log
978
1027
979 Server stops sending in middle of bundle2 payload chunk
1028 Server stops sending in middle of bundle2 payload chunk
980
1029
981 $ hg serve --config badserver.closeaftersendbytes=1549 -p $HGPORT -d --pid-file=hg.pid -E error.log
1030 $ hg serve --config badserver.closeaftersendbytes=1549 -p $HGPORT -d --pid-file=hg.pid -E error.log
982 $ cat hg.pid > $DAEMON_PIDS
1031 $ cat hg.pid > $DAEMON_PIDS
983
1032
984 $ hg clone http://localhost:$HGPORT/ clone
1033 $ hg clone http://localhost:$HGPORT/ clone
985 requesting all changes
1034 requesting all changes
986 adding changesets
1035 adding changesets
987 transaction abort!
1036 transaction abort!
988 rollback completed
1037 rollback completed
989 abort: HTTP request error (incomplete response)
1038 abort: HTTP request error (incomplete response)
990 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
1039 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
991 [255]
1040 [255]
992
1041
993 $ killdaemons.py $DAEMON_PIDS
1042 $ killdaemons.py $DAEMON_PIDS
994
1043
995 #if py3
1044 #if py36
996 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
1045 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
997 sendall(167 from 167) -> (571) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
1046 sendall(167 from 167) -> (571) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n
998 sendall(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
1047 sendall(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
999 sendall(9 from 9) -> (556) 4\r\nnone\r\n
1048 sendall(9 from 9) -> (556) 4\r\nnone\r\n
1000 sendall(9 from 9) -> (547) 4\r\nHG20\r\n
1049 sendall(9 from 9) -> (547) 4\r\nHG20\r\n
1001 sendall(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1050 sendall(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1002 sendall(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1051 sendall(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1003 sendall(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1052 sendall(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1004 sendall(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1053 sendall(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1005 sendall(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)
1054 sendall(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)
1006 write limit reached; closing socket
1055 write limit reached; closing socket
1007 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1056 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1008 Traceback (most recent call last):
1057 Traceback (most recent call last):
1009 Exception: connection closed after sending N bytes
1058 Exception: connection closed after sending N bytes
1010
1059
1011
1060
1012 #else
1061 #else
1013 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1062 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1014 write(28 from 28) -> (573) Transfer-Encoding: chunked\r\n
1063 readline(65537) -> (2) \r\n (py3 !)
1015 write(2 from 2) -> (571) \r\n
1064 write(167 from 167) -> (571) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n (py3 !)
1065 write(28 from 28) -> (573) Transfer-Encoding: chunked\r\n (no-py3 !)
1066 write(2 from 2) -> (571) \r\n (no-py3 !)
1016 write(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
1067 write(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
1017 write(9 from 9) -> (556) 4\r\nnone\r\n
1068 write(9 from 9) -> (556) 4\r\nnone\r\n
1018 write(9 from 9) -> (547) 4\r\nHG20\r\n
1069 write(9 from 9) -> (547) 4\r\nHG20\r\n
1019 write(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1070 write(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1020 write(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1071 write(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1021 write(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1072 write(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1022 write(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1073 write(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1023 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)
1074 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)
1024 write limit reached; closing socket
1075 write limit reached; closing socket
1025 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1076 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1026 Traceback (most recent call last):
1077 Traceback (most recent call last):
1027 Exception: connection closed after sending N bytes
1078 Exception: connection closed after sending N bytes
1028
1079
1029 write(27) -> 15\r\nInternal Server Error\r\n
1080 write(27) -> 15\r\nInternal Server Error\r\n
1030 #endif
1081 #endif
1031
1082
1032 $ rm -f error.log
1083 $ rm -f error.log
1033
1084
1034 Server stops sending after 0 length payload chunk size
1085 Server stops sending after 0 length payload chunk size
1035
1086
1036 $ hg serve --config badserver.closeaftersendbytes=1580 -p $HGPORT -d --pid-file=hg.pid -E error.log
1087 $ hg serve --config badserver.closeaftersendbytes=1580 -p $HGPORT -d --pid-file=hg.pid -E error.log
1037 $ cat hg.pid > $DAEMON_PIDS
1088 $ cat hg.pid > $DAEMON_PIDS
1038
1089
1039 $ hg clone http://localhost:$HGPORT/ clone
1090 $ hg clone http://localhost:$HGPORT/ clone
1040 requesting all changes
1091 requesting all changes
1041 adding changesets
1092 adding changesets
1042 adding manifests
1093 adding manifests
1043 adding file changes
1094 adding file changes
1044 added 1 changesets with 1 changes to 1 files
1095 added 1 changesets with 1 changes to 1 files
1045 transaction abort!
1096 transaction abort!
1046 rollback completed
1097 rollback completed
1047 abort: HTTP request error (incomplete response) (py3 !)
1098 abort: HTTP request error (incomplete response) (py3 !)
1048 abort: HTTP request error (incomplete response; expected 32 bytes got 9) (no-py3 !)
1099 abort: HTTP request error (incomplete response; expected 32 bytes got 9) (no-py3 !)
1049 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
1100 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
1050 [255]
1101 [255]
1051
1102
1052 $ killdaemons.py $DAEMON_PIDS
1103 $ killdaemons.py $DAEMON_PIDS
1053
1104
1054 #if py3
1105 #if py36
1055 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1106 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1056 sendall(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1107 sendall(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1057 sendall(9 from 9) -> (587) 4\r\nnone\r\n
1108 sendall(9 from 9) -> (587) 4\r\nnone\r\n
1058 sendall(9 from 9) -> (578) 4\r\nHG20\r\n
1109 sendall(9 from 9) -> (578) 4\r\nHG20\r\n
1059 sendall(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1110 sendall(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1060 sendall(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1111 sendall(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1061 sendall(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1112 sendall(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1062 sendall(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1113 sendall(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1063 sendall(473 from 473) -> (31) 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)
1114 sendall(473 from 473) -> (31) 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)
1064 sendall(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1115 sendall(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1065 sendall(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1116 sendall(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1066 sendall(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1117 sendall(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1067 write limit reached; closing socket
1118 write limit reached; closing socket
1068 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1119 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1069 Traceback (most recent call last):
1120 Traceback (most recent call last):
1070 Exception: connection closed after sending N bytes
1121 Exception: connection closed after sending N bytes
1071
1122
1072
1123
1073 #else
1124 #else
1074 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -17
1125 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -17
1075 write(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1126 write(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1076 write(9 from 9) -> (587) 4\r\nnone\r\n
1127 write(9 from 9) -> (587) 4\r\nnone\r\n
1077 write(9 from 9) -> (578) 4\r\nHG20\r\n
1128 write(9 from 9) -> (578) 4\r\nHG20\r\n
1078 write(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1129 write(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1079 write(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1130 write(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1080 write(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1131 write(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1081 write(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1132 write(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1082 write(473 from 473) -> (31) 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)
1133 write(473 from 473) -> (31) 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)
1083 write(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1134 write(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1084 write(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1135 write(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1085 write(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1136 write(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1086 write limit reached; closing socket
1137 write limit reached; closing socket
1087 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1138 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1088 Traceback (most recent call last):
1139 Traceback (most recent call last):
1089 Exception: connection closed after sending N bytes
1140 Exception: connection closed after sending N bytes
1090
1141
1091 write(27) -> 15\r\nInternal Server Error\r\n
1142 write(27) -> 15\r\nInternal Server Error\r\n
1092 #endif
1143 #endif
1093
1144
1094 $ rm -f error.log
1145 $ rm -f error.log
1095
1146
1096 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
1147 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
1097 This is before the 0 size chunked transfer part that signals end of HTTP response.
1148 This is before the 0 size chunked transfer part that signals end of HTTP response.
1098
1149
1099 # $ hg serve --config badserver.closeaftersendbytes=1755 -p $HGPORT -d --pid-file=hg.pid -E error.log
1150 # $ hg serve --config badserver.closeaftersendbytes=1755 -p $HGPORT -d --pid-file=hg.pid -E error.log
1100 $ hg serve --config badserver.closeaftersendbytes=1862 -p $HGPORT -d --pid-file=hg.pid -E error.log
1151 $ hg serve --config badserver.closeaftersendbytes=1862 -p $HGPORT -d --pid-file=hg.pid -E error.log
1101 $ cat hg.pid > $DAEMON_PIDS
1152 $ cat hg.pid > $DAEMON_PIDS
1102
1153
1103 $ hg clone http://localhost:$HGPORT/ clone
1154 $ hg clone http://localhost:$HGPORT/ clone
1104 requesting all changes
1155 requesting all changes
1105 adding changesets
1156 adding changesets
1106 adding manifests
1157 adding manifests
1107 adding file changes
1158 adding file changes
1108 added 1 changesets with 1 changes to 1 files
1159 added 1 changesets with 1 changes to 1 files
1109 new changesets 96ee1d7354c4
1160 new changesets 96ee1d7354c4
1110 updating to branch default
1161 updating to branch default
1111 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1112
1163
1113 $ killdaemons.py $DAEMON_PIDS
1164 $ killdaemons.py $DAEMON_PIDS
1114
1165
1115 #if py3
1166 #if py36
1116 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -25
1167 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -25
1117 sendall(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1168 sendall(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1118 sendall(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1169 sendall(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1119 sendall(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1170 sendall(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1120 sendall(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1171 sendall(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1121 sendall(473 from 473) -> (313) 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)
1172 sendall(473 from 473) -> (313) 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)
1122 sendall(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1173 sendall(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1123 sendall(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1174 sendall(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1124 sendall(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1175 sendall(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1125 sendall(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1176 sendall(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1126 sendall(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1177 sendall(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1127 sendall(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1178 sendall(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1128 sendall(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1179 sendall(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1129 sendall(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1180 sendall(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1130 sendall(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1181 sendall(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1131 sendall(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1182 sendall(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1132 sendall(35 from 35) -> (72) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1183 sendall(35 from 35) -> (72) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1133 sendall(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1184 sendall(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1134 sendall(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1185 sendall(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1135 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1186 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1136 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1187 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1137 write limit reached; closing socket
1188 write limit reached; closing socket
1138 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1189 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1139 Traceback (most recent call last):
1190 Traceback (most recent call last):
1140 Exception: connection closed after sending N bytes
1191 Exception: connection closed after sending N bytes
1141
1192
1142
1193
1143 #else
1194 #else
1144 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -26
1195 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -26
1145 write(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1196 write(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1146 write(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1197 write(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1147 write(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1198 write(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1148 write(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1199 write(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1149 write(473 from 473) -> (313) 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)
1200 write(473 from 473) -> (313) 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)
1150 write(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1201 write(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1151 write(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1202 write(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1152 write(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1203 write(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1153 write(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1204 write(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1154 write(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1205 write(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1155 write(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1206 write(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1156 write(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1207 write(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1157 write(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1208 write(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1158 write(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1209 write(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1159 write(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1210 write(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1160 write(35 from 35) -> (72) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1211 write(35 from 35) -> (72) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1161 write(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1212 write(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1162 write(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1213 write(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1163 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1214 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1164 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1215 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1165 write limit reached; closing socket
1216 write limit reached; closing socket
1166 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1217 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1167 Traceback (most recent call last):
1218 Traceback (most recent call last):
1168 Exception: connection closed after sending N bytes
1219 Exception: connection closed after sending N bytes
1169
1220
1170 write(27) -> 15\r\nInternal Server Error\r\n
1221 write(27) -> 15\r\nInternal Server Error\r\n
1171 #endif
1222 #endif
1172
1223
1173 $ rm -f error.log
1224 $ rm -f error.log
1174 $ rm -rf clone
1225 $ rm -rf clone
1175
1226
1176 Server sends a size 0 chunked-transfer size without terminating \r\n
1227 Server sends a size 0 chunked-transfer size without terminating \r\n
1177
1228
1178 $ hg serve --config badserver.closeaftersendbytes=1865 -p $HGPORT -d --pid-file=hg.pid -E error.log
1229 $ hg serve --config badserver.closeaftersendbytes=1865 -p $HGPORT -d --pid-file=hg.pid -E error.log
1179 $ cat hg.pid > $DAEMON_PIDS
1230 $ cat hg.pid > $DAEMON_PIDS
1180
1231
1181 $ hg clone http://localhost:$HGPORT/ clone
1232 $ hg clone http://localhost:$HGPORT/ clone
1182 requesting all changes
1233 requesting all changes
1183 adding changesets
1234 adding changesets
1184 adding manifests
1235 adding manifests
1185 adding file changes
1236 adding file changes
1186 added 1 changesets with 1 changes to 1 files
1237 added 1 changesets with 1 changes to 1 files
1187 new changesets 96ee1d7354c4
1238 new changesets 96ee1d7354c4
1188 updating to branch default
1239 updating to branch default
1189 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1240 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1190
1241
1191 $ killdaemons.py $DAEMON_PIDS
1242 $ killdaemons.py $DAEMON_PIDS
1192
1243
1193 #if py3
1244 #if py36
1194 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -26
1245 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -26
1195 sendall(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1246 sendall(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1196 sendall(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1247 sendall(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1197 sendall(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1248 sendall(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1198 sendall(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1249 sendall(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1199 sendall(473 from 473) -> (316) 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)
1250 sendall(473 from 473) -> (316) 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)
1200 sendall(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1251 sendall(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1201 sendall(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1252 sendall(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1202 sendall(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1253 sendall(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1203 sendall(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1254 sendall(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1204 sendall(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1255 sendall(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1205 sendall(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1256 sendall(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1206 sendall(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1257 sendall(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1207 sendall(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1258 sendall(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1208 sendall(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1259 sendall(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1209 sendall(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1260 sendall(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1210 sendall(35 from 35) -> (75) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1261 sendall(35 from 35) -> (75) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1211 sendall(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1262 sendall(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1212 sendall(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1263 sendall(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1213 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1264 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1214 sendall(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1265 sendall(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1215 sendall(3 from 5) -> (0) 0\r\n
1266 sendall(3 from 5) -> (0) 0\r\n
1216 write limit reached; closing socket
1267 write limit reached; closing socket
1217 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1268 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1218 Traceback (most recent call last):
1269 Traceback (most recent call last):
1219 Exception: connection closed after sending N bytes
1270 Exception: connection closed after sending N bytes
1220
1271
1221
1272
1222 #else
1273 #else
1223 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -27
1274 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -27
1224 write(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1275 write(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1225 write(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1276 write(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1226 write(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1277 write(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1227 write(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1278 write(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1228 write(473 from 473) -> (316) 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)
1279 write(473 from 473) -> (316) 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)
1229 write(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1280 write(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1230 write(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1281 write(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1231 write(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1282 write(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1232 write(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1283 write(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1233 write(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1284 write(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1234 write(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1285 write(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1235 write(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1286 write(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1236 write(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1287 write(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1237 write(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1288 write(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1238 write(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1289 write(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
1239 write(35 from 35) -> (75) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1290 write(35 from 35) -> (75) 1d\\r\\n\x16cache:rev-branch-cache\x00\x00\x00\x03\x00\x00\\r\\n (esc)
1240 write(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1291 write(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
1241 write(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1292 write(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
1242 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1293 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1243 write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1294 write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1244 write(3 from 5) -> (0) 0\r\n
1295 write(3 from 5) -> (0) 0\r\n
1245 write limit reached; closing socket
1296 write limit reached; closing socket
1246 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1297 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1247 Traceback (most recent call last):
1298 Traceback (most recent call last):
1248 Exception: connection closed after sending N bytes
1299 Exception: connection closed after sending N bytes
1249
1300
1250 write(27) -> 15\r\nInternal Server Error\r\n
1301 write(27) -> 15\r\nInternal Server Error\r\n
1251 #endif
1302 #endif
1252
1303
1253 $ rm -f error.log
1304 $ rm -f error.log
1254 $ rm -rf clone
1305 $ rm -rf clone
General Comments 0
You need to be logged in to leave comments. Login now