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