##// END OF EJS Templates
test-http-bad-server: move the extension in `testlib`...
marmoute -
r49451:089cb4d6 default
parent child Browse files
Show More
@@ -1,96 +1,96
1 1 #require test-repo
2 2
3 3 $ . "$TESTDIR/helpers-testrepo.sh"
4 4 $ check_code="$TESTDIR"/../contrib/check-code.py
5 5 $ cd "$TESTDIR"/..
6 6
7 7 New errors are not allowed. Warnings are strongly discouraged.
8 8 (The writing "no-che?k-code" is for not skipping this file when checking.)
9 9
10 10 $ testrepohg locate \
11 11 > -X contrib/python-zstandard \
12 12 > -X hgext/fsmonitor/pywatchman \
13 13 > -X mercurial/thirdparty \
14 14 > -X mercurial/pythoncapi_compat.h \
15 15 > | sed 's-\\-/-g' | "$check_code" --warnings --per-file=0 - || false
16 16 Skipping contrib/automation/hgautomation/__init__.py it has no-che?k-code (glob)
17 17 Skipping contrib/automation/hgautomation/aws.py it has no-che?k-code (glob)
18 18 Skipping contrib/automation/hgautomation/cli.py it has no-che?k-code (glob)
19 19 Skipping contrib/automation/hgautomation/linux.py it has no-che?k-code (glob)
20 20 Skipping contrib/automation/hgautomation/pypi.py it has no-che?k-code (glob)
21 21 Skipping contrib/automation/hgautomation/ssh.py it has no-che?k-code (glob)
22 22 Skipping contrib/automation/hgautomation/try_server.py it has no-che?k-code (glob)
23 23 Skipping contrib/automation/hgautomation/windows.py it has no-che?k-code (glob)
24 24 Skipping contrib/automation/hgautomation/winrm.py it has no-che?k-code (glob)
25 25 Skipping contrib/fuzz/FuzzedDataProvider.h it has no-che?k-code (glob)
26 26 Skipping contrib/fuzz/standalone_fuzz_target_runner.cc it has no-che?k-code (glob)
27 27 Skipping contrib/packaging/hgpackaging/cli.py it has no-che?k-code (glob)
28 28 Skipping contrib/packaging/hgpackaging/downloads.py it has no-che?k-code (glob)
29 29 Skipping contrib/packaging/hgpackaging/inno.py it has no-che?k-code (glob)
30 30 Skipping contrib/packaging/hgpackaging/py2exe.py it has no-che?k-code (glob)
31 31 Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob)
32 32 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob)
33 33 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob)
34 34 Skipping i18n/polib.py it has no-che?k-code (glob)
35 35 Skipping mercurial/statprof.py it has no-che?k-code (glob)
36 Skipping tests/badserverext.py it has no-che?k-code (glob)
36 Skipping tests/testlib/badserverext.py it has no-che?k-code (glob)
37 37
38 38 @commands in debugcommands.py should be in alphabetical order.
39 39
40 40 >>> import re
41 41 >>> commands = []
42 42 >>> with open('mercurial/debugcommands.py', 'rb') as fh:
43 43 ... for line in fh:
44 44 ... m = re.match(br"^@command\('([a-z]+)", line)
45 45 ... if m:
46 46 ... commands.append(m.group(1))
47 47 >>> scommands = list(sorted(commands))
48 48 >>> for i, command in enumerate(scommands):
49 49 ... if command != commands[i]:
50 50 ... print('commands in debugcommands.py not sorted; first differing '
51 51 ... 'command is %s; expected %s' % (commands[i], command))
52 52 ... break
53 53
54 54 Prevent adding new files in the root directory accidentally.
55 55
56 56 $ testrepohg files 'glob:*'
57 57 .arcconfig
58 58 .clang-format
59 59 .editorconfig
60 60 .hgignore
61 61 .hgsigs
62 62 .hgtags
63 63 .jshintrc
64 64 CONTRIBUTING
65 65 CONTRIBUTORS
66 66 COPYING
67 67 Makefile
68 68 README.rst
69 69 hg
70 70 hgeditor
71 71 hgweb.cgi
72 72 pyproject.toml
73 73 rustfmt.toml
74 74 setup.py
75 75
76 76 Prevent adding modules which could be shadowed by ancient .so/.dylib.
77 77
78 78 $ testrepohg files \
79 79 > mercurial/base85.py \
80 80 > mercurial/bdiff.py \
81 81 > mercurial/diffhelpers.py \
82 82 > mercurial/mpatch.py \
83 83 > mercurial/osutil.py \
84 84 > mercurial/parsers.py \
85 85 > mercurial/zstd.py
86 86 [1]
87 87
88 88 Keep python3 tests sorted:
89 89 $ sort < contrib/python3-whitelist > $TESTTMP/py3sorted
90 90 $ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!'
91 91
92 92 Keep Windows line endings in check
93 93
94 94 $ testrepohg files 'set:eol(dos)'
95 95 contrib/win32/hg.bat
96 96 contrib/win32/mercurial.ini
@@ -1,1286 +1,1286
1 1 #require serve zstd
2 2
3 3 Client version is embedded in HTTP request and is effectively dynamic. Pin the
4 4 version so behavior is deterministic.
5 5
6 6 $ cat > fakeversion.py << EOF
7 7 > from mercurial import util
8 8 > util.version = lambda: b'4.2'
9 9 > EOF
10 10
11 11 $ cat >> $HGRCPATH << EOF
12 12 > [extensions]
13 13 > fakeversion = `pwd`/fakeversion.py
14 14 > [format]
15 15 > sparse-revlog = no
16 16 > use-persistent-nodemap = no
17 17 > [devel]
18 18 > legacy.exchange = phases
19 19 > [server]
20 20 > concurrent-push-mode = strict
21 21 > EOF
22 22
23 23 $ hg init server0
24 24 $ cd server0
25 25 $ touch foo
26 26 $ hg -q commit -A -m initial
27 27
28 28 Also disable compression because zstd is optional and causes output to vary
29 29 and because debugging partial responses is hard when compression is involved
30 30
31 31 $ cat > .hg/hgrc << EOF
32 32 > [extensions]
33 > badserver = $TESTDIR/badserverext.py
33 > badserver = $TESTDIR/testlib/badserverext.py
34 34 > [server]
35 35 > compressionengines = none
36 36 > EOF
37 37
38 38 Failure to accept() socket should result in connection related error message
39 39
40 40 $ hg serve --config badserver.closebeforeaccept=true -p $HGPORT -d --pid-file=hg.pid
41 41 $ cat hg.pid > $DAEMON_PIDS
42 42
43 43 $ hg clone http://localhost:$HGPORT/ clone
44 44 abort: error: (\$ECONNRESET\$|\$EADDRNOTAVAIL\$) (re)
45 45 [100]
46 46
47 47 (The server exits on its own, but there is a race between that and starting a new server.
48 48 So ensure the process is dead.)
49 49
50 50 $ killdaemons.py $DAEMON_PIDS
51 51
52 52 Failure immediately after accept() should yield connection related error message
53 53
54 54 $ hg serve --config badserver.closeafteraccept=true -p $HGPORT -d --pid-file=hg.pid
55 55 $ cat hg.pid > $DAEMON_PIDS
56 56
57 57 TODO: this usually outputs good results, but sometimes emits abort:
58 58 error: '' on FreeBSD and OS X.
59 59 What we ideally want are:
60 60
61 61 abort: error: $ECONNRESET$
62 62
63 63 The flakiness in this output was observable easily with
64 64 --runs-per-test=20 on macOS 10.12 during the freeze for 4.2.
65 65 $ hg clone http://localhost:$HGPORT/ clone
66 66 abort: error: * (glob)
67 67 [100]
68 68
69 69 $ killdaemons.py $DAEMON_PIDS
70 70
71 71 Failure to read all bytes in initial HTTP request should yield connection related error message
72 72
73 73 $ hg serve --config badserver.closeafterrecvbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
74 74 $ cat hg.pid > $DAEMON_PIDS
75 75
76 76 $ hg clone http://localhost:$HGPORT/ clone
77 77 abort: error: bad HTTP status line: * (glob)
78 78 [100]
79 79
80 80 $ killdaemons.py $DAEMON_PIDS
81 81
82 82 $ cat error.log
83 83 readline(1 from 65537) -> (1) G
84 84 read limit reached; closing socket
85 85
86 86 $ rm -f error.log
87 87
88 88 Same failure, but server reads full HTTP request line
89 89
90 90 $ hg serve --config badserver.closeafterrecvbytes=40 -p $HGPORT -d --pid-file=hg.pid -E error.log
91 91 $ cat hg.pid > $DAEMON_PIDS
92 92 $ hg clone http://localhost:$HGPORT/ clone
93 93 abort: error: bad HTTP status line: * (glob)
94 94 [100]
95 95
96 96 $ killdaemons.py $DAEMON_PIDS
97 97
98 98 $ cat error.log
99 99 readline(40 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
100 100 readline(7 from *) -> (7) Accept- (glob)
101 101 read limit reached; closing socket
102 102
103 103 $ rm -f error.log
104 104
105 105 Failure on subsequent HTTP request on the same socket (cmd?batch)
106 106
107 107 $ hg serve --config badserver.closeafterrecvbytes=210,223 -p $HGPORT -d --pid-file=hg.pid -E error.log
108 108 $ cat hg.pid > $DAEMON_PIDS
109 109 $ hg clone http://localhost:$HGPORT/ clone
110 110 abort: error: bad HTTP status line: * (glob)
111 111 [100]
112 112
113 113 $ killdaemons.py $DAEMON_PIDS
114 114
115 115 $ cat error.log
116 116 readline(210 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
117 117 readline(177 from *) -> (27) Accept-Encoding: identity\r\n (glob)
118 118 readline(150 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
119 119 readline(115 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
120 120 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
121 121 readline(* from *) -> (2) \r\n (glob)
122 122 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: 431\r\n\r\n (py36 !)
123 123 sendall(431) -> 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 !)
124 124 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: 431\r\n\r\n (py3 no-py36 !)
125 125 write(431) -> 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 !)
126 126 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
127 127 write(23) -> Server: badhttpserver\r\n (no-py3 !)
128 128 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
129 129 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
130 130 write(21) -> Content-Length: 431\r\n (no-py3 !)
131 131 write(2) -> \r\n (no-py3 !)
132 132 write(431) -> 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 !)
133 133 readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
134 134 readline(1? from *) -> (1?) Accept-Encoding* (glob)
135 135 read limit reached; closing socket
136 136 readline(223 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
137 137 readline(197 from *) -> (27) Accept-Encoding: identity\r\n (glob)
138 138 readline(170 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
139 139 readline(141 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
140 140 readline(100 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
141 141 readline(39 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
142 142 readline(4 from *) -> (4) host (glob)
143 143 read limit reached; closing socket
144 144
145 145 $ rm -f error.log
146 146
147 147 Failure to read getbundle HTTP request
148 148
149 149 $ hg serve --config badserver.closeafterrecvbytes=308,317,304 -p $HGPORT -d --pid-file=hg.pid -E error.log
150 150 $ cat hg.pid > $DAEMON_PIDS
151 151 $ hg clone http://localhost:$HGPORT/ clone
152 152 requesting all changes
153 153 abort: error: bad HTTP status line: * (glob)
154 154 [100]
155 155
156 156 $ killdaemons.py $DAEMON_PIDS
157 157
158 158 $ cat error.log
159 159 readline(1 from -1) -> (1) x (?)
160 160 readline(1 from -1) -> (1) x (?)
161 161 readline(308 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
162 162 readline(275 from *) -> (27) Accept-Encoding: identity\r\n (glob)
163 163 readline(248 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
164 164 readline(213 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
165 165 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
166 166 readline(* from *) -> (2) \r\n (glob)
167 167 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: 431\r\n\r\n (py36 !)
168 168 sendall(431) -> 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 !)
169 169 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: 431\r\n\r\n (py3 no-py36 !)
170 170 write(431) -> 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 !)
171 171 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
172 172 write(23) -> Server: badhttpserver\r\n (no-py3 !)
173 173 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
174 174 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
175 175 write(21) -> Content-Length: 431\r\n (no-py3 !)
176 176 write(2) -> \r\n (no-py3 !)
177 177 write(431) -> 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 !)
178 178 readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
179 179 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
180 180 readline(8? from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
181 181 readline(5? from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
182 182 readline(1? from *) -> (1?) x-hgproto-1:* (glob)
183 183 read limit reached; closing socket
184 184 readline(317 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
185 185 readline(291 from *) -> (27) Accept-Encoding: identity\r\n (glob)
186 186 readline(264 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
187 187 readline(235 from *) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
188 188 readline(194 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
189 189 readline(133 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
190 190 readline(98 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
191 191 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
192 192 readline(* from *) -> (2) \r\n (glob)
193 193 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 !)
194 194 sendall(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
195 195 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 !)
196 196 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
197 197 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
198 198 write(23) -> Server: badhttpserver\r\n (no-py3 !)
199 199 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
200 200 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
201 201 write(20) -> Content-Length: 42\r\n (no-py3 !)
202 202 write(2) -> \r\n (no-py3 !)
203 203 write(42) -> 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
204 204 readline(* from 65537) -> (*) GET /?cmd=getbundle HTTP* (glob)
205 205 read limit reached; closing socket
206 206 readline(304 from 65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
207 207 readline(274 from *) -> (27) Accept-Encoding: identity\r\n (glob)
208 208 readline(247 from *) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
209 209 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)
210 210 read limit reached; closing socket
211 211
212 212 $ rm -f error.log
213 213
214 214 Now do a variation using POST to send arguments
215 215
216 216 $ hg serve --config experimental.httppostargs=true --config badserver.closeafterrecvbytes=329,344 -p $HGPORT -d --pid-file=hg.pid -E error.log
217 217 $ cat hg.pid > $DAEMON_PIDS
218 218
219 219 $ hg clone http://localhost:$HGPORT/ clone
220 220 abort: error: bad HTTP status line: * (glob)
221 221 [100]
222 222
223 223 $ killdaemons.py $DAEMON_PIDS
224 224
225 225 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
226 226 readline(329 from 65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
227 227 readline(296 from *) -> (27) Accept-Encoding: identity\r\n (glob)
228 228 readline(269 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
229 229 readline(234 from *) -> (2?) host: localhost:$HGPORT\r\n (glob)
230 230 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
231 231 readline(* from *) -> (2) \r\n (glob)
232 232 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: 444\r\n\r\n (py36 !)
233 233 sendall(444) -> 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 !)
234 234 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: 444\r\n\r\n (py3 no-py36 !)
235 235 write(444) -> 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 !)
236 236 write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !)
237 237 write(23) -> Server: badhttpserver\r\n (no-py3 !)
238 238 write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !)
239 239 write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !)
240 240 write(21) -> Content-Length: 444\r\n (no-py3 !)
241 241 write(2) -> \r\n (no-py3 !)
242 242 write(444) -> 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 !)
243 243 readline(1?? from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n (glob)
244 244 readline(1?? from *) -> (27) Accept-Encoding: identity\r\n (glob)
245 245 readline(1?? from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
246 246 readline(6? from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
247 247 readline(3? from *) -> (19) x-hgargs-post: 28\r\n (glob)
248 248 readline(1? from *) -> (1?) x-hgproto-1: * (glob)
249 249 read limit reached; closing socket
250 250 readline(344 from 65537) -> (27) POST /?cmd=batch HTTP/1.1\r\n
251 251 readline(317 from *) -> (27) Accept-Encoding: identity\r\n (glob)
252 252 readline(290 from *) -> (41) content-type: application/mercurial-0.1\r\n (glob)
253 253 readline(249 from *) -> (33) vary: X-HgArgs-Post,X-HgProto-1\r\n (glob)
254 254 readline(216 from *) -> (19) x-hgargs-post: 28\r\n (glob)
255 255 readline(197 from *) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
256 256 readline(136 from *) -> (35) accept: application/mercurial-0.1\r\n (glob)
257 257 readline(101 from *) -> (20) content-length: 28\r\n (glob)
258 258 readline(81 from *) -> (*) host: localhost:$HGPORT\r\n (glob)
259 259 readline(* from *) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
260 260 readline(* from *) -> (2) \r\n (glob)
261 261 read(* from 28) -> (*) cmds=* (glob)
262 262 read limit reached, closing socket
263 263 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
264 264 Traceback (most recent call last):
265 265 Exception: connection closed after receiving N bytes
266 266
267 267 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 !)
268 268 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
269 269
270 270 $ rm -f error.log
271 271
272 272 Now move on to partial server responses
273 273
274 274 Server sends a single character from the HTTP response line
275 275
276 276 $ hg serve --config badserver.closeaftersendbytes=1 -p $HGPORT -d --pid-file=hg.pid -E error.log
277 277 $ cat hg.pid > $DAEMON_PIDS
278 278
279 279 $ hg clone http://localhost:$HGPORT/ clone
280 280 abort: error: bad HTTP status line: H
281 281 [100]
282 282
283 283 $ killdaemons.py $DAEMON_PIDS
284 284
285 285 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
286 286 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
287 287 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
288 288 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
289 289 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
290 290 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
291 291 readline(*) -> (2) \r\n (glob)
292 292 sendall(1 from 160) -> (0) H (py36 !)
293 293 write(1 from 160) -> (0) H (py3 no-py36 !)
294 294 write(1 from 36) -> (0) H (no-py3 !)
295 295 write limit reached; closing socket
296 296 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
297 297 Traceback (most recent call last):
298 298 Exception: connection closed after sending N bytes
299 299
300 300 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: 431\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 !)
301 301 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
302 302
303 303 $ rm -f error.log
304 304
305 305 Server sends an incomplete capabilities response body
306 306
307 307 $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log
308 308 $ cat hg.pid > $DAEMON_PIDS
309 309
310 310 $ hg clone http://localhost:$HGPORT/ clone
311 311 abort: HTTP request error (incomplete response; expected 431 bytes got 20)
312 312 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
313 313 [255]
314 314
315 315 $ killdaemons.py $DAEMON_PIDS
316 316
317 317 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
318 318 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
319 319 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
320 320 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
321 321 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
322 322 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
323 323 readline(*) -> (2) \r\n (glob)
324 324 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: 431\r\n\r\n (py36 !)
325 325 sendall(20 from 431) -> (0) batch branchmap bund (py36 !)
326 326 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: 431\r\n\r\n (py3 no-py36 !)
327 327 write(20 from 431) -> (0) batch branchmap bund (py3 no-py36 !)
328 328 write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
329 329 write(23 from 23) -> (121) Server: badhttpserver\r\n (no-py3 !)
330 330 write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n (no-py3 !)
331 331 write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
332 332 write(21 from 21) -> (22) Content-Length: 431\r\n (no-py3 !)
333 333 write(2 from 2) -> (20) \r\n (no-py3 !)
334 334 write(20 from 431) -> (0) batch branchmap bund (no-py3 !)
335 335 write limit reached; closing socket
336 336 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob)
337 337 Traceback (most recent call last):
338 338 Exception: connection closed after sending N bytes
339 339
340 340
341 341 $ rm -f error.log
342 342
343 343 Server sends incomplete headers for batch request
344 344
345 345 $ hg serve --config badserver.closeaftersendbytes=709 -p $HGPORT -d --pid-file=hg.pid -E error.log
346 346 $ cat hg.pid > $DAEMON_PIDS
347 347
348 348 TODO this output is horrible
349 349
350 350 $ hg clone http://localhost:$HGPORT/ clone
351 351 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
352 352 ---%<--- (applicat)
353 353
354 354 ---%<---
355 355
356 356 [255]
357 357
358 358 $ killdaemons.py $DAEMON_PIDS
359 359
360 360 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
361 361 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
362 362 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
363 363 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
364 364 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
365 365 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
366 366 readline(*) -> (2) \r\n (glob)
367 367 sendall(160 from 160) -> (549) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !)
368 368 sendall(431 from 431) -> (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 !)
369 369 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: 431\r\n\r\n (py3 no-py36 !)
370 370 write(431 from 431) -> (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 !)
371 371 write(36 from 36) -> (673) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
372 372 write(23 from 23) -> (650) Server: badhttpserver\r\n (no-py3 !)
373 373 write(37 from 37) -> (613) Date: $HTTP_DATE$\r\n (no-py3 !)
374 374 write(41 from 41) -> (572) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
375 375 write(21 from 21) -> (551) Content-Length: 431\r\n (no-py3 !)
376 376 write(2 from 2) -> (549) \r\n (no-py3 !)
377 377 write(431 from 431) -> (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 !)
378 378 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
379 379 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
380 380 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
381 381 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
382 382 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
383 383 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
384 384 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
385 385 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
386 386 readline(*) -> (2) \r\n (glob)
387 387 sendall(118 from 159) -> (0) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: applicat (py36 !)
388 388 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 !)
389 389 write(36 from 36) -> (82) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
390 390 write(23 from 23) -> (59) Server: badhttpserver\r\n (no-py3 !)
391 391 write(37 from 37) -> (22) Date: $HTTP_DATE$\r\n (no-py3 !)
392 392 write(22 from 41) -> (0) Content-Type: applicat (no-py3 !)
393 393 write limit reached; closing socket
394 394 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
395 395 Traceback (most recent call last):
396 396 Exception: connection closed after sending N bytes
397 397
398 398 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 !)
399 399 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
400 400
401 401 $ rm -f error.log
402 402
403 403 Server sends an incomplete HTTP response body to batch request
404 404
405 405 $ hg serve --config badserver.closeaftersendbytes=774 -p $HGPORT -d --pid-file=hg.pid -E error.log
406 406 $ cat hg.pid > $DAEMON_PIDS
407 407
408 408 TODO client spews a stack due to uncaught ValueError in batch.results()
409 409 #if no-chg
410 410 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
411 411 [1]
412 412 #else
413 413 $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
414 414 [255]
415 415 #endif
416 416
417 417 $ killdaemons.py $DAEMON_PIDS
418 418
419 419 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
420 420 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
421 421 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
422 422 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
423 423 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
424 424 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
425 425 readline(*) -> (2) \r\n (glob)
426 426 sendall(160 from 160) -> (614) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !)
427 427 sendall(431 from 431) -> (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 !)
428 428 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: 431\r\n\r\n (py3 no-py36 !)
429 429 write(431 from 431) -> (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 !)
430 430 write(36 from 36) -> (738) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
431 431 write(23 from 23) -> (715) Server: badhttpserver\r\n (no-py3 !)
432 432 write(37 from 37) -> (678) Date: $HTTP_DATE$\r\n (no-py3 !)
433 433 write(41 from 41) -> (637) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
434 434 write(21 from 21) -> (616) Content-Length: 431\r\n (no-py3 !)
435 435 write(2 from 2) -> (614) \r\n (no-py3 !)
436 436 write(431 from 431) -> (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 !)
437 437 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
438 438 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
439 439 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
440 440 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
441 441 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
442 442 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
443 443 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
444 444 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
445 445 readline(*) -> (2) \r\n (glob)
446 446 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 !)
447 447 sendall(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (py36 !)
448 448 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 !)
449 449 write(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (py3 no-py36 !)
450 450 write(36 from 36) -> (147) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
451 451 write(23 from 23) -> (124) Server: badhttpserver\r\n (no-py3 !)
452 452 write(37 from 37) -> (87) Date: $HTTP_DATE$\r\n (no-py3 !)
453 453 write(41 from 41) -> (46) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
454 454 write(20 from 20) -> (26) Content-Length: 42\r\n (no-py3 !)
455 455 write(2 from 2) -> (24) \r\n (no-py3 !)
456 456 write(24 from 42) -> (0) 96ee1d7354c4ad7372047672 (no-py3 !)
457 457 write limit reached; closing socket
458 458 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=batch': (glob)
459 459 Traceback (most recent call last):
460 460 Exception: connection closed after sending N bytes
461 461
462 462
463 463 $ rm -f error.log
464 464
465 465 Server sends incomplete headers for getbundle response
466 466
467 467 $ hg serve --config badserver.closeaftersendbytes=921 -p $HGPORT -d --pid-file=hg.pid -E error.log
468 468 $ cat hg.pid > $DAEMON_PIDS
469 469
470 470 TODO this output is terrible
471 471
472 472 $ hg clone http://localhost:$HGPORT/ clone
473 473 requesting all changes
474 474 abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
475 475 ---%<--- (application/mercuri)
476 476
477 477 ---%<---
478 478
479 479 [255]
480 480
481 481 $ killdaemons.py $DAEMON_PIDS
482 482
483 483 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
484 484 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
485 485 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
486 486 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
487 487 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
488 488 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
489 489 readline(*) -> (2) \r\n (glob)
490 490 sendall(160 from 160) -> (761) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !)
491 491 sendall(431 from 431) -> (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 !)
492 492 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: 431\r\n\r\n (py3 no-py36 !)
493 493 write(431 from 431) -> (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 !)
494 494 write(36 from 36) -> (885) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
495 495 write(23 from 23) -> (862) Server: badhttpserver\r\n (no-py3 !)
496 496 write(37 from 37) -> (825) Date: $HTTP_DATE$\r\n (no-py3 !)
497 497 write(41 from 41) -> (784) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
498 498 write(21 from 21) -> (763) Content-Length: 431\r\n (no-py3 !)
499 499 write(2 from 2) -> (761) \r\n (no-py3 !)
500 500 write(431 from 431) -> (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 !)
501 501 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
502 502 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
503 503 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
504 504 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
505 505 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
506 506 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
507 507 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
508 508 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
509 509 readline(*) -> (2) \r\n (glob)
510 510 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 !)
511 511 sendall(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
512 512 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 !)
513 513 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
514 514 write(36 from 36) -> (294) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
515 515 write(23 from 23) -> (271) Server: badhttpserver\r\n (no-py3 !)
516 516 write(37 from 37) -> (234) Date: $HTTP_DATE$\r\n (no-py3 !)
517 517 write(41 from 41) -> (193) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
518 518 write(20 from 20) -> (173) Content-Length: 42\r\n (no-py3 !)
519 519 write(2 from 2) -> (171) \r\n (no-py3 !)
520 520 write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
521 521 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
522 522 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
523 523 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
524 524 readline(*) -> (440) 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%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
525 525 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
526 526 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
527 527 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
528 528 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
529 529 readline(*) -> (2) \r\n (glob)
530 530 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 !)
531 531 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 !)
532 532 write(36 from 36) -> (93) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
533 533 write(23 from 23) -> (70) Server: badhttpserver\r\n (no-py3 !)
534 534 write(37 from 37) -> (33) Date: $HTTP_DATE$\r\n (no-py3 !)
535 535 write(33 from 41) -> (0) Content-Type: application/mercuri (no-py3 !)
536 536 write limit reached; closing socket
537 537 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
538 538 Traceback (most recent call last):
539 539 Exception: connection closed after sending N bytes
540 540
541 541 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 !)
542 542 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
543 543
544 544 $ rm -f error.log
545 545
546 546 Server stops before it sends transfer encoding
547 547
548 548 $ hg serve --config badserver.closeaftersendbytes=954 -p $HGPORT -d --pid-file=hg.pid -E error.log
549 549 $ cat hg.pid > $DAEMON_PIDS
550 550
551 551 $ hg clone http://localhost:$HGPORT/ clone
552 552 requesting all changes
553 553 abort: stream ended unexpectedly (got 0 bytes, expected 1)
554 554 [255]
555 555
556 556 $ killdaemons.py $DAEMON_PIDS
557 557
558 558 #if py36
559 559 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -3
560 560 Traceback (most recent call last):
561 561 Exception: connection closed after sending N bytes
562 562
563 563
564 564 #else
565 565 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -4
566 566 Traceback (most recent call last):
567 567 Exception: connection closed after sending N bytes
568 568
569 569 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 !)
570 570 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
571 571 #endif
572 572
573 573 $ rm -f error.log
574 574
575 575 Server sends empty HTTP body for getbundle
576 576
577 577 $ hg serve --config badserver.closeaftersendbytes=959 -p $HGPORT -d --pid-file=hg.pid -E error.log
578 578 $ cat hg.pid > $DAEMON_PIDS
579 579
580 580 $ hg clone http://localhost:$HGPORT/ clone
581 581 requesting all changes
582 582 abort: HTTP request error (incomplete response)
583 583 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
584 584 [255]
585 585
586 586 $ killdaemons.py $DAEMON_PIDS
587 587
588 588 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
589 589 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
590 590 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
591 591 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
592 592 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
593 593 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
594 594 readline(*) -> (2) \r\n (glob)
595 595 sendall(160 from 160) -> (799) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !)
596 596 sendall(431 from 431) -> (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 !)
597 597 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: 431\r\n\r\n (py3 no-py36 !)
598 598 write(431 from 431) -> (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 !)
599 599 write(36 from 36) -> (923) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
600 600 write(23 from 23) -> (900) Server: badhttpserver\r\n (no-py3 !)
601 601 write(37 from 37) -> (863) Date: $HTTP_DATE$\r\n (no-py3 !)
602 602 write(41 from 41) -> (822) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
603 603 write(21 from 21) -> (801) Content-Length: 431\r\n (no-py3 !)
604 604 write(2 from 2) -> (799) \r\n (no-py3 !)
605 605 write(431 from 431) -> (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 !)
606 606 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
607 607 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
608 608 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
609 609 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
610 610 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
611 611 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
612 612 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
613 613 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
614 614 readline(*) -> (2) \r\n (glob)
615 615 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 !)
616 616 sendall(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
617 617 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 !)
618 618 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py3 no-py36 !)
619 619 write(36 from 36) -> (332) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
620 620 write(23 from 23) -> (309) Server: badhttpserver\r\n (no-py3 !)
621 621 write(37 from 37) -> (272) Date: $HTTP_DATE$\r\n (no-py3 !)
622 622 write(41 from 41) -> (231) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
623 623 write(20 from 20) -> (211) Content-Length: 42\r\n (no-py3 !)
624 624 write(2 from 2) -> (209) \r\n (no-py3 !)
625 625 write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
626 626 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
627 627 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
628 628 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
629 629 readline(*) -> (440) 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%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
630 630 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
631 631 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
632 632 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
633 633 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
634 634 readline(*) -> (2) \r\n (glob)
635 635 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 !)
636 636 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 !)
637 637 write(36 from 36) -> (131) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
638 638 write(23 from 23) -> (108) Server: badhttpserver\r\n (no-py3 !)
639 639 write(37 from 37) -> (71) Date: $HTTP_DATE$\r\n (no-py3 !)
640 640 write(41 from 41) -> (30) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
641 641 write(28 from 28) -> (2) Transfer-Encoding: chunked\r\n (no-py3 !)
642 642 write(2 from 2) -> (0) \r\n (no-py3 !)
643 643 write limit reached; closing socket
644 644 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
645 645 Traceback (most recent call last):
646 646 Exception: connection closed after sending N bytes
647 647
648 648 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 !)
649 649 write(36) -> HTTP/1.1 500 Internal Server Error\r\n (no-py3 !)
650 650
651 651 $ rm -f error.log
652 652
653 653 Server sends partial compression string
654 654
655 655 $ hg serve --config badserver.closeaftersendbytes=983 -p $HGPORT -d --pid-file=hg.pid -E error.log
656 656 $ cat hg.pid > $DAEMON_PIDS
657 657
658 658 $ hg clone http://localhost:$HGPORT/ clone
659 659 requesting all changes
660 660 abort: HTTP request error (incomplete response)
661 661 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
662 662 [255]
663 663
664 664 $ killdaemons.py $DAEMON_PIDS
665 665
666 666 $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py
667 667 readline(65537) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n
668 668 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
669 669 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
670 670 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
671 671 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
672 672 readline(*) -> (2) \r\n (glob)
673 673 sendall(160 from 160) -> (823) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !)
674 674 sendall(431 from 431) -> (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 !)
675 675 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: 431\r\n\r\n (py3 no-py36 !)
676 676 write(431 from 431) -> (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 !)
677 677 write(36 from 36) -> (947) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
678 678 write(23 from 23) -> (924) Server: badhttpserver\r\n (no-py3 !)
679 679 write(37 from 37) -> (887) Date: $HTTP_DATE$\r\n (no-py3 !)
680 680 write(41 from 41) -> (846) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
681 681 write(21 from 21) -> (825) Content-Length: 431\r\n (no-py3 !)
682 682 write(2 from 2) -> (823) \r\n (no-py3 !)
683 683 write(431 from 431) -> (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 !)
684 684 readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
685 685 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
686 686 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
687 687 readline(*) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
688 688 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
689 689 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
690 690 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
691 691 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
692 692 readline(*) -> (2) \r\n (glob)
693 693 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 !)
694 694 sendall(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (py36 !)
695 695 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 !)
696 696 write(36 from 36) -> (356) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
697 697 write(23 from 23) -> (333) Server: badhttpserver\r\n (no-py3 !)
698 698 write(37 from 37) -> (296) Date: $HTTP_DATE$\r\n (no-py3 !)
699 699 write(41 from 41) -> (255) Content-Type: application/mercurial-0.1\r\n (no-py3 !)
700 700 write(20 from 20) -> (235) Content-Length: 42\r\n (no-py3 !)
701 701 write(2 from 2) -> (233) \r\n (no-py3 !)
702 702 write(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n; (no-py3 !)
703 703 readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
704 704 readline(*) -> (27) Accept-Encoding: identity\r\n (glob)
705 705 readline(*) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
706 706 readline(*) -> (440) 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%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n (glob)
707 707 readline(*) -> (61) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n (glob)
708 708 readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob)
709 709 readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob)
710 710 readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob)
711 711 readline(*) -> (2) \r\n (glob)
712 712 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 !)
713 713 sendall(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (py36 !)
714 714 sendall(9 from 9) -> (9) 4\r\nnone\r\n (py36 !)
715 715 sendall(9 from 9) -> (0) 4\r\nHG20\r\n (py36 !)
716 716 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 !)
717 717 write(36 from 36) -> (155) HTTP/1.1 200 Script output follows\r\n (no-py3 !)
718 718 write(23 from 23) -> (132) Server: badhttpserver\r\n (no-py3 !)
719 719 write(37 from 37) -> (95) Date: $HTTP_DATE$\r\n (no-py3 !)
720 720 write(41 from 41) -> (54) Content-Type: application/mercurial-0.2\r\n (no-py3 !)
721 721 write(28 from 28) -> (26) Transfer-Encoding: chunked\r\n (no-py3 !)
722 722 write(2 from 2) -> (24) \r\n (no-py3 !)
723 723 write(6 from 6) -> (18) 1\\r\\n\x04\\r\\n (esc) (no-py3 !)
724 724 write(9 from 9) -> (9) 4\r\nnone\r\n (no-py3 !)
725 725 write(9 from 9) -> (0) 4\r\nHG20\r\n (no-py3 !)
726 726 write limit reached; closing socket
727 727 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
728 728 Traceback (most recent call last):
729 729 Exception: connection closed after sending N bytes
730 730
731 731 write(27) -> 15\r\nInternal Server Error\r\n (no-py3 !)
732 732
733 733 $ rm -f error.log
734 734
735 735 Server sends partial bundle2 header magic
736 736
737 737 $ hg serve --config badserver.closeaftersendbytes=980 -p $HGPORT -d --pid-file=hg.pid -E error.log
738 738 $ cat hg.pid > $DAEMON_PIDS
739 739
740 740 $ hg clone http://localhost:$HGPORT/ clone
741 741 requesting all changes
742 742 abort: HTTP request error (incomplete response) (py3 !)
743 743 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
744 744 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
745 745 [255]
746 746
747 747 $ killdaemons.py $DAEMON_PIDS
748 748
749 749 #if py36
750 750 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -9
751 751 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
752 752 sendall(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
753 753 sendall(9 from 9) -> (6) 4\r\nnone\r\n
754 754 sendall(6 from 9) -> (0) 4\r\nHG2
755 755 write limit reached; closing socket
756 756 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
757 757 Traceback (most recent call last):
758 758 Exception: connection closed after sending N bytes
759 759
760 760
761 761 #else
762 762 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
763 763 readline(65537) -> (2) \r\n (py3 !)
764 764 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 !)
765 765 write(28 from 28) -> (23) Transfer-Encoding: chunked\r\n (no-py3 !)
766 766 write(2 from 2) -> (21) \r\n (no-py3 !)
767 767 write(6 from 6) -> (15) 1\\r\\n\x04\\r\\n (esc)
768 768 write(9 from 9) -> (6) 4\r\nnone\r\n
769 769 write(6 from 9) -> (0) 4\r\nHG2
770 770 write limit reached; closing socket
771 771 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
772 772 Traceback (most recent call last):
773 773 Exception: connection closed after sending N bytes
774 774
775 775 write(27) -> 15\r\nInternal Server Error\r\n
776 776 #endif
777 777
778 778 $ rm -f error.log
779 779
780 780 Server sends incomplete bundle2 stream params length
781 781
782 782 $ hg serve --config badserver.closeaftersendbytes=989 -p $HGPORT -d --pid-file=hg.pid -E error.log
783 783 $ cat hg.pid > $DAEMON_PIDS
784 784
785 785 $ hg clone http://localhost:$HGPORT/ clone
786 786 requesting all changes
787 787 abort: HTTP request error (incomplete response) (py3 !)
788 788 abort: HTTP request error (incomplete response; expected 4 bytes got 3) (no-py3 !)
789 789 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
790 790 [255]
791 791
792 792 $ killdaemons.py $DAEMON_PIDS
793 793
794 794 #if py36
795 795 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
796 796 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
797 797 sendall(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
798 798 sendall(9 from 9) -> (15) 4\r\nnone\r\n
799 799 sendall(9 from 9) -> (6) 4\r\nHG20\r\n
800 800 sendall(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
801 801 write limit reached; closing socket
802 802 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
803 803 Traceback (most recent call last):
804 804 Exception: connection closed after sending N bytes
805 805
806 806
807 807 #else
808 808 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
809 809 readline(65537) -> (2) \r\n (py3 !)
810 810 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 !)
811 811 write(28 from 28) -> (32) Transfer-Encoding: chunked\r\n (no-py3 !)
812 812 write(2 from 2) -> (30) \r\n (no-py3 !)
813 813 write(6 from 6) -> (24) 1\\r\\n\x04\\r\\n (esc)
814 814 write(9 from 9) -> (15) 4\r\nnone\r\n
815 815 write(9 from 9) -> (6) 4\r\nHG20\r\n
816 816 write(6 from 9) -> (0) 4\\r\\n\x00\x00\x00 (esc)
817 817 write limit reached; closing socket
818 818 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
819 819 Traceback (most recent call last):
820 820 Exception: connection closed after sending N bytes
821 821
822 822 write(27) -> 15\r\nInternal Server Error\r\n
823 823 #endif
824 824
825 825 $ rm -f error.log
826 826
827 827 Servers stops after bundle2 stream params header
828 828
829 829 $ hg serve --config badserver.closeaftersendbytes=992 -p $HGPORT -d --pid-file=hg.pid -E error.log
830 830 $ cat hg.pid > $DAEMON_PIDS
831 831
832 832 $ hg clone http://localhost:$HGPORT/ clone
833 833 requesting all changes
834 834 abort: HTTP request error (incomplete response)
835 835 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
836 836 [255]
837 837
838 838 $ killdaemons.py $DAEMON_PIDS
839 839
840 840 #if py36
841 841 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -10
842 842 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
843 843 sendall(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
844 844 sendall(9 from 9) -> (18) 4\r\nnone\r\n
845 845 sendall(9 from 9) -> (9) 4\r\nHG20\r\n
846 846 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
847 847 write limit reached; closing socket
848 848 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
849 849 Traceback (most recent call last):
850 850 Exception: connection closed after sending N bytes
851 851
852 852
853 853 #else
854 854 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
855 855 readline(65537) -> (2) \r\n (py3 !)
856 856 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 !)
857 857 write(28 from 28) -> (35) Transfer-Encoding: chunked\r\n (no-py3 !)
858 858 write(2 from 2) -> (33) \r\n (no-py3 !)
859 859 write(6 from 6) -> (27) 1\\r\\n\x04\\r\\n (esc)
860 860 write(9 from 9) -> (18) 4\r\nnone\r\n
861 861 write(9 from 9) -> (9) 4\r\nHG20\r\n
862 862 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
863 863 write limit reached; closing socket
864 864 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
865 865 Traceback (most recent call last):
866 866 Exception: connection closed after sending N bytes
867 867
868 868 write(27) -> 15\r\nInternal Server Error\r\n
869 869 #endif
870 870
871 871 $ rm -f error.log
872 872
873 873 Server stops sending after bundle2 part header length
874 874
875 875 $ hg serve --config badserver.closeaftersendbytes=1001 -p $HGPORT -d --pid-file=hg.pid -E error.log
876 876 $ cat hg.pid > $DAEMON_PIDS
877 877
878 878 $ hg clone http://localhost:$HGPORT/ clone
879 879 requesting all changes
880 880 abort: HTTP request error (incomplete response)
881 881 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
882 882 [255]
883 883
884 884 $ killdaemons.py $DAEMON_PIDS
885 885
886 886 #if py36
887 887 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11
888 888 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
889 889 sendall(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
890 890 sendall(9 from 9) -> (27) 4\r\nnone\r\n
891 891 sendall(9 from 9) -> (18) 4\r\nHG20\r\n
892 892 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
893 893 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
894 894 write limit reached; closing socket
895 895 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
896 896 Traceback (most recent call last):
897 897 Exception: connection closed after sending N bytes
898 898
899 899
900 900 #else
901 901
902 902 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -13
903 903 readline(65537) -> (2) \r\n (py3 !)
904 904 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 !)
905 905 write(28 from 28) -> (44) Transfer-Encoding: chunked\r\n (no-py3 !)
906 906 write(2 from 2) -> (42) \r\n (no-py3 !)
907 907 write(6 from 6) -> (36) 1\\r\\n\x04\\r\\n (esc)
908 908 write(9 from 9) -> (27) 4\r\nnone\r\n
909 909 write(9 from 9) -> (18) 4\r\nHG20\r\n
910 910 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
911 911 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
912 912 write limit reached; closing socket
913 913 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
914 914 Traceback (most recent call last):
915 915 Exception: connection closed after sending N bytes
916 916
917 917 write(27) -> 15\r\nInternal Server Error\r\n
918 918 #endif
919 919
920 920 $ rm -f error.log
921 921
922 922 Server stops sending after bundle2 part header
923 923
924 924 $ hg serve --config badserver.closeaftersendbytes=1048 -p $HGPORT -d --pid-file=hg.pid -E error.log
925 925 $ cat hg.pid > $DAEMON_PIDS
926 926
927 927 $ hg clone http://localhost:$HGPORT/ clone
928 928 requesting all changes
929 929 adding changesets
930 930 transaction abort!
931 931 rollback completed
932 932 abort: HTTP request error (incomplete response)
933 933 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
934 934 [255]
935 935
936 936 $ killdaemons.py $DAEMON_PIDS
937 937
938 938 #if py36
939 939 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12
940 940 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
941 941 sendall(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
942 942 sendall(9 from 9) -> (74) 4\r\nnone\r\n
943 943 sendall(9 from 9) -> (65) 4\r\nHG20\r\n
944 944 sendall(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
945 945 sendall(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
946 946 sendall(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
947 947 write limit reached; closing socket
948 948 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
949 949 Traceback (most recent call last):
950 950 Exception: connection closed after sending N bytes
951 951
952 952
953 953 #else
954 954 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
955 955 readline(65537) -> (2) \r\n (py3 !)
956 956 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 !)
957 957 write(28 from 28) -> (91) Transfer-Encoding: chunked\r\n (no-py3 !)
958 958 write(2 from 2) -> (89) \r\n (no-py3 !)
959 959 write(6 from 6) -> (83) 1\\r\\n\x04\\r\\n (esc)
960 960 write(9 from 9) -> (74) 4\r\nnone\r\n
961 961 write(9 from 9) -> (65) 4\r\nHG20\r\n
962 962 write(9 from 9) -> (56) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
963 963 write(9 from 9) -> (47) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
964 964 write(47 from 47) -> (0) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
965 965 write limit reached; closing socket
966 966 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
967 967 Traceback (most recent call last):
968 968 Exception: connection closed after sending N bytes
969 969
970 970 write(27) -> 15\r\nInternal Server Error\r\n
971 971 #endif
972 972
973 973 $ rm -f error.log
974 974
975 975 Server stops after bundle2 part payload chunk size
976 976
977 977 $ hg serve --config badserver.closeaftersendbytes=1069 -p $HGPORT -d --pid-file=hg.pid -E error.log
978 978 $ cat hg.pid > $DAEMON_PIDS
979 979
980 980 $ hg clone http://localhost:$HGPORT/ clone
981 981 requesting all changes
982 982 adding changesets
983 983 transaction abort!
984 984 rollback completed
985 985 abort: HTTP request error (incomplete response) (py3 !)
986 986 abort: HTTP request error (incomplete response; expected 466 bytes got 7) (no-py3 !)
987 987 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
988 988 [255]
989 989
990 990 $ killdaemons.py $DAEMON_PIDS
991 991
992 992 #if py36
993 993 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
994 994 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
995 995 sendall(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
996 996 sendall(9 from 9) -> (95) 4\r\nnone\r\n
997 997 sendall(9 from 9) -> (86) 4\r\nHG20\r\n
998 998 sendall(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
999 999 sendall(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1000 1000 sendall(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1001 1001 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1002 1002 sendall(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
1003 1003 write limit reached; closing socket
1004 1004 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1005 1005 Traceback (most recent call last):
1006 1006 Exception: connection closed after sending N bytes
1007 1007
1008 1008
1009 1009 #else
1010 1010 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -15
1011 1011 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 !)
1012 1012 write(2 from 2) -> (110) \r\n (no-py3 !)
1013 1013 write(6 from 6) -> (104) 1\\r\\n\x04\\r\\n (esc)
1014 1014 write(9 from 9) -> (95) 4\r\nnone\r\n
1015 1015 write(9 from 9) -> (86) 4\r\nHG20\r\n
1016 1016 write(9 from 9) -> (77) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1017 1017 write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1018 1018 write(47 from 47) -> (21) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1019 1019 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1020 1020 write(12 from 473) -> (0) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1d (esc)
1021 1021 write limit reached; closing socket
1022 1022 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1023 1023 Traceback (most recent call last):
1024 1024 Exception: connection closed after sending N bytes
1025 1025
1026 1026 write(27) -> 15\r\nInternal Server Error\r\n
1027 1027 #endif
1028 1028
1029 1029 $ rm -f error.log
1030 1030
1031 1031 Server stops sending in middle of bundle2 payload chunk
1032 1032
1033 1033 $ hg serve --config badserver.closeaftersendbytes=1530 -p $HGPORT -d --pid-file=hg.pid -E error.log
1034 1034 $ cat hg.pid > $DAEMON_PIDS
1035 1035
1036 1036 $ hg clone http://localhost:$HGPORT/ clone
1037 1037 requesting all changes
1038 1038 adding changesets
1039 1039 transaction abort!
1040 1040 rollback completed
1041 1041 abort: HTTP request error (incomplete response)
1042 1042 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
1043 1043 [255]
1044 1044
1045 1045 $ killdaemons.py $DAEMON_PIDS
1046 1046
1047 1047 #if py36
1048 1048 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14
1049 1049 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
1050 1050 sendall(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
1051 1051 sendall(9 from 9) -> (556) 4\r\nnone\r\n
1052 1052 sendall(9 from 9) -> (547) 4\r\nHG20\r\n
1053 1053 sendall(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1054 1054 sendall(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1055 1055 sendall(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1056 1056 sendall(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1057 1057 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)
1058 1058 write limit reached; closing socket
1059 1059 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1060 1060 Traceback (most recent call last):
1061 1061 Exception: connection closed after sending N bytes
1062 1062
1063 1063
1064 1064 #else
1065 1065 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1066 1066 readline(65537) -> (2) \r\n (py3 !)
1067 1067 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 !)
1068 1068 write(28 from 28) -> (573) Transfer-Encoding: chunked\r\n (no-py3 !)
1069 1069 write(2 from 2) -> (571) \r\n (no-py3 !)
1070 1070 write(6 from 6) -> (565) 1\\r\\n\x04\\r\\n (esc)
1071 1071 write(9 from 9) -> (556) 4\r\nnone\r\n
1072 1072 write(9 from 9) -> (547) 4\r\nHG20\r\n
1073 1073 write(9 from 9) -> (538) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1074 1074 write(9 from 9) -> (529) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1075 1075 write(47 from 47) -> (482) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1076 1076 write(9 from 9) -> (473) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1077 1077 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)
1078 1078 write limit reached; closing socket
1079 1079 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1080 1080 Traceback (most recent call last):
1081 1081 Exception: connection closed after sending N bytes
1082 1082
1083 1083 write(27) -> 15\r\nInternal Server Error\r\n
1084 1084 #endif
1085 1085
1086 1086 $ rm -f error.log
1087 1087
1088 1088 Server stops sending after 0 length payload chunk size
1089 1089
1090 1090 $ hg serve --config badserver.closeaftersendbytes=1561 -p $HGPORT -d --pid-file=hg.pid -E error.log
1091 1091 $ cat hg.pid > $DAEMON_PIDS
1092 1092
1093 1093 $ hg clone http://localhost:$HGPORT/ clone
1094 1094 requesting all changes
1095 1095 adding changesets
1096 1096 adding manifests
1097 1097 adding file changes
1098 1098 transaction abort!
1099 1099 rollback completed
1100 1100 abort: HTTP request error (incomplete response) (py3 !)
1101 1101 abort: HTTP request error (incomplete response; expected 32 bytes got 9) (no-py3 !)
1102 1102 (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
1103 1103 [255]
1104 1104
1105 1105 $ killdaemons.py $DAEMON_PIDS
1106 1106
1107 1107 #if py36
1108 1108 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16
1109 1109 sendall(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1110 1110 sendall(9 from 9) -> (587) 4\r\nnone\r\n
1111 1111 sendall(9 from 9) -> (578) 4\r\nHG20\r\n
1112 1112 sendall(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1113 1113 sendall(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1114 1114 sendall(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1115 1115 sendall(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1116 1116 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)
1117 1117 sendall(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1118 1118 sendall(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1119 1119 sendall(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1120 1120 write limit reached; closing socket
1121 1121 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1122 1122 Traceback (most recent call last):
1123 1123 Exception: connection closed after sending N bytes
1124 1124
1125 1125
1126 1126 #else
1127 1127 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -17
1128 1128 write(6 from 6) -> (596) 1\\r\\n\x04\\r\\n (esc)
1129 1129 write(9 from 9) -> (587) 4\r\nnone\r\n
1130 1130 write(9 from 9) -> (578) 4\r\nHG20\r\n
1131 1131 write(9 from 9) -> (569) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1132 1132 write(9 from 9) -> (560) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1133 1133 write(47 from 47) -> (513) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1134 1134 write(9 from 9) -> (504) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1135 1135 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)
1136 1136 write(9 from 9) -> (22) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1137 1137 write(9 from 9) -> (13) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1138 1138 write(13 from 38) -> (0) 20\\r\\n\x08LISTKEYS (esc)
1139 1139 write limit reached; closing socket
1140 1140 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1141 1141 Traceback (most recent call last):
1142 1142 Exception: connection closed after sending N bytes
1143 1143
1144 1144 write(27) -> 15\r\nInternal Server Error\r\n
1145 1145 #endif
1146 1146
1147 1147 $ rm -f error.log
1148 1148
1149 1149 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
1150 1150 This is before the 0 size chunked transfer part that signals end of HTTP response.
1151 1151
1152 1152 $ hg serve --config badserver.closeaftersendbytes=1736 -p $HGPORT -d --pid-file=hg.pid -E error.log
1153 1153 $ cat hg.pid > $DAEMON_PIDS
1154 1154
1155 1155 $ hg clone http://localhost:$HGPORT/ clone
1156 1156 requesting all changes
1157 1157 adding changesets
1158 1158 adding manifests
1159 1159 adding file changes
1160 1160 added 1 changesets with 1 changes to 1 files
1161 1161 new changesets 96ee1d7354c4
1162 1162 updating to branch default
1163 1163 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1164 1164
1165 1165 $ killdaemons.py $DAEMON_PIDS
1166 1166
1167 1167 #if py36
1168 1168 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -20
1169 1169 sendall(9 from 9) -> (744) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1170 1170 sendall(9 from 9) -> (735) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1171 1171 sendall(47 from 47) -> (688) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1172 1172 sendall(9 from 9) -> (679) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1173 1173 sendall(473 from 473) -> (206) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
1174 1174 sendall(9 from 9) -> (197) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1175 1175 sendall(9 from 9) -> (188) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1176 1176 sendall(38 from 38) -> (150) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1177 1177 sendall(9 from 9) -> (141) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1178 1178 sendall(64 from 64) -> (77) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1179 1179 sendall(9 from 9) -> (68) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1180 1180 sendall(9 from 9) -> (59) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1181 1181 sendall(41 from 41) -> (18) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1182 1182 sendall(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1183 1183 sendall(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1184 1184 write limit reached; closing socket
1185 1185 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1186 1186 Traceback (most recent call last):
1187 1187 Exception: connection closed after sending N bytes
1188 1188
1189 1189
1190 1190 #else
1191 1191 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -21
1192 1192 write(9 from 9) -> (744) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1193 1193 write(9 from 9) -> (735) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1194 1194 write(47 from 47) -> (688) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1195 1195 write(9 from 9) -> (679) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1196 1196 write(473 from 473) -> (206) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
1197 1197 write(9 from 9) -> (197) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1198 1198 write(9 from 9) -> (188) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1199 1199 write(38 from 38) -> (150) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1200 1200 write(9 from 9) -> (141) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1201 1201 write(64 from 64) -> (77) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1202 1202 write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1203 1203 write(9 from 9) -> (59) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1204 1204 write(41 from 41) -> (18) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1205 1205 write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1206 1206 write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1207 1207 write limit reached; closing socket
1208 1208 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1209 1209 Traceback (most recent call last):
1210 1210 Exception: connection closed after sending N bytes
1211 1211
1212 1212 write(27) -> 15\r\nInternal Server Error\r\n
1213 1213 #endif
1214 1214
1215 1215 $ rm -f error.log
1216 1216 $ rm -rf clone
1217 1217
1218 1218 Server sends a size 0 chunked-transfer size without terminating \r\n
1219 1219
1220 1220 $ hg serve --config badserver.closeaftersendbytes=1739 -p $HGPORT -d --pid-file=hg.pid -E error.log
1221 1221 $ cat hg.pid > $DAEMON_PIDS
1222 1222
1223 1223 $ hg clone http://localhost:$HGPORT/ clone
1224 1224 requesting all changes
1225 1225 adding changesets
1226 1226 adding manifests
1227 1227 adding file changes
1228 1228 added 1 changesets with 1 changes to 1 files
1229 1229 new changesets 96ee1d7354c4
1230 1230 updating to branch default
1231 1231 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1232 1232
1233 1233 $ killdaemons.py $DAEMON_PIDS
1234 1234
1235 1235 #if py36
1236 1236 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -21
1237 1237 sendall(9 from 9) -> (747) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1238 1238 sendall(9 from 9) -> (738) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1239 1239 sendall(47 from 47) -> (691) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1240 1240 sendall(9 from 9) -> (682) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1241 1241 sendall(473 from 473) -> (209) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
1242 1242 sendall(9 from 9) -> (200) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1243 1243 sendall(9 from 9) -> (191) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1244 1244 sendall(38 from 38) -> (153) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1245 1245 sendall(9 from 9) -> (144) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1246 1246 sendall(64 from 64) -> (80) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1247 1247 sendall(9 from 9) -> (71) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1248 1248 sendall(9 from 9) -> (62) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1249 1249 sendall(41 from 41) -> (21) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1250 1250 sendall(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1251 1251 sendall(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1252 1252 sendall(3 from 5) -> (0) 0\r\n
1253 1253 write limit reached; closing socket
1254 1254 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1255 1255 Traceback (most recent call last):
1256 1256 Exception: connection closed after sending N bytes
1257 1257
1258 1258
1259 1259 #else
1260 1260 $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -22
1261 1261 write(9 from 9) -> (747) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1262 1262 write(9 from 9) -> (738) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
1263 1263 write(47 from 47) -> (691) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02 \x01version02nbchanges1\\r\\n (esc)
1264 1264 write(9 from 9) -> (682) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
1265 1265 write(473 from 473) -> (209) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
1266 1266 write(9 from 9) -> (200) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1267 1267 write(9 from 9) -> (191) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
1268 1268 write(38 from 38) -> (153) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00 \x06namespacephases\\r\\n (esc)
1269 1269 write(9 from 9) -> (144) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
1270 1270 write(64 from 64) -> (80) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c 1\npublishing True\r\n
1271 1271 write(9 from 9) -> (71) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1272 1272 write(9 from 9) -> (62) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
1273 1273 write(41 from 41) -> (21) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00 namespacebookmarks\\r\\n (esc)
1274 1274 write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1275 1275 write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
1276 1276 write(3 from 5) -> (0) 0\r\n
1277 1277 write limit reached; closing socket
1278 1278 $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob)
1279 1279 Traceback (most recent call last):
1280 1280 Exception: connection closed after sending N bytes
1281 1281
1282 1282 write(27) -> 15\r\nInternal Server Error\r\n
1283 1283 #endif
1284 1284
1285 1285 $ rm -f error.log
1286 1286 $ rm -rf clone
1 NO CONTENT: file renamed from tests/badserverext.py to tests/testlib/badserverext.py
General Comments 0
You need to be logged in to leave comments. Login now