##// END OF EJS Templates
errors: set detailed exit code to 100 for some remote errors...
Martin von Zweigbergk -
r46443:ebee234d default
parent child Browse files
Show More
@@ -182,6 +182,7 b' def callcatch(ui, func):'
182 182 )
183 183 )
184 184 except error.OutOfBandError as inst:
185 detailed_exit_code = 100
185 186 if inst.args:
186 187 msg = _(b"abort: remote error:\n")
187 188 else:
@@ -237,8 +238,10 b' def callcatch(ui, func):'
237 238 elif m in b"zlib".split():
238 239 ui.error(_(b"(is your Python install correct?)\n"))
239 240 except util.urlerr.httperror as inst:
241 detailed_exit_code = 100
240 242 ui.error(_(b"abort: %s\n") % stringutil.forcebytestr(inst))
241 243 except util.urlerr.urlerror as inst:
244 detailed_exit_code = 100
242 245 try: # usually it is in the form (errno, strerror)
243 246 reason = inst.reason.args[1]
244 247 except (AttributeError, IndexError):
@@ -2,7 +2,7 b''
2 2
3 3 $ hg clone http://localhost:$HGPORT/ copy
4 4 abort: * (glob)
5 [255]
5 [100]
6 6
7 7 $ test -d copy
8 8 [1]
@@ -11,5 +11,5 b''
11 11 $ cat dumb.pid >> $DAEMON_PIDS
12 12 $ hg clone http://localhost:$HGPORT/foo copy2
13 13 abort: HTTP Error 404: * (glob)
14 [255]
14 [100]
15 15 $ killdaemons.py
@@ -987,7 +987,7 b' Servers can disable bundle1 for clone/pu'
987 987 abort: remote error:
988 988 incompatible Mercurial client; bundle2 required
989 989 (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
990 [255]
990 [100]
991 991 $ killdaemons.py
992 992 $ cd ..
993 993
@@ -1032,7 +1032,7 b' bundle1 pull can be disabled for general'
1032 1032 abort: remote error:
1033 1033 incompatible Mercurial client; bundle2 required
1034 1034 (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
1035 [255]
1035 [100]
1036 1036
1037 1037 $ killdaemons.py
1038 1038
@@ -1050,7 +1050,7 b' Verify the global server.bundle1 option '
1050 1050 abort: remote error:
1051 1051 incompatible Mercurial client; bundle2 required
1052 1052 (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
1053 [255]
1053 [100]
1054 1054 $ killdaemons.py
1055 1055
1056 1056 $ hg --config devel.legacy.exchange=bundle1 clone ssh://user@dummy/bundle2onlyserver not-bundle2-ssh
@@ -1075,7 +1075,7 b' Verify the global server.bundle1 option '
1075 1075 abort: remote error:
1076 1076 incompatible Mercurial client; bundle2 required
1077 1077 (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
1078 [255]
1078 [100]
1079 1079
1080 1080 $ killdaemons.py
1081 1081
@@ -1132,7 +1132,7 b' Verify bundle1 pushes can be disabled'
1132 1132 abort: remote error:
1133 1133 incompatible Mercurial client; bundle2 required
1134 1134 (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
1135 [255]
1135 [100]
1136 1136
1137 1137 (also check with ssh)
1138 1138
@@ -618,7 +618,7 b' Invalid URL'
618 618
619 619 $ hg clone http://invalid:url/a b
620 620 abort: error: nonnumeric port: 'url'
621 [255]
621 [100]
622 622
623 623 No remote source
624 624
@@ -629,7 +629,7 b' No remote source'
629 629 #else
630 630 $ hg clone http://$LOCALIP:3121/a b
631 631 abort: error: *refused* (glob)
632 [255]
632 [100]
633 633 #endif
634 634 $ rm -rf b # work around bug with http clone
635 635
@@ -113,7 +113,7 b" we don't fix up relative file URLs, but "
113 113 $ cd sub
114 114 $ hg log -qr "extdata(filedata)"
115 115 abort: error: $ENOENT$
116 [255]
116 [100]
117 117 $ hg log -qr "extdata(shelldata)"
118 118 2:f6ed99a58333
119 119
@@ -41,7 +41,7 b' Failure to accept() socket should result'
41 41
42 42 $ hg clone http://localhost:$HGPORT/ clone
43 43 abort: error: (\$ECONNRESET\$|\$EADDRNOTAVAIL\$) (re)
44 [255]
44 [100]
45 45
46 46 (The server exits on its own, but there is a race between that and starting a new server.
47 47 So ensure the process is dead.)
@@ -63,7 +63,7 b' The flakiness in this output was observa'
63 63 --runs-per-test=20 on macOS 10.12 during the freeze for 4.2.
64 64 $ hg clone http://localhost:$HGPORT/ clone
65 65 abort: error: * (glob)
66 [255]
66 [100]
67 67
68 68 $ killdaemons.py $DAEMON_PIDS
69 69
@@ -74,7 +74,7 b' Failure to read all bytes in initial HTT'
74 74
75 75 $ hg clone http://localhost:$HGPORT/ clone
76 76 abort: error: bad HTTP status line: * (glob)
77 [255]
77 [100]
78 78
79 79 $ killdaemons.py $DAEMON_PIDS
80 80
@@ -90,7 +90,7 b' Same failure, but server reads full HTTP'
90 90 $ cat hg.pid > $DAEMON_PIDS
91 91 $ hg clone http://localhost:$HGPORT/ clone
92 92 abort: error: bad HTTP status line: * (glob)
93 [255]
93 [100]
94 94
95 95 $ killdaemons.py $DAEMON_PIDS
96 96
@@ -107,7 +107,7 b' Failure on subsequent HTTP request on th'
107 107 $ cat hg.pid > $DAEMON_PIDS
108 108 $ hg clone http://localhost:$HGPORT/ clone
109 109 abort: error: bad HTTP status line: * (glob)
110 [255]
110 [100]
111 111
112 112 $ killdaemons.py $DAEMON_PIDS
113 113
@@ -150,7 +150,7 b' Failure to read getbundle HTTP request'
150 150 $ hg clone http://localhost:$HGPORT/ clone
151 151 requesting all changes
152 152 abort: error: bad HTTP status line: * (glob)
153 [255]
153 [100]
154 154
155 155 $ killdaemons.py $DAEMON_PIDS
156 156
@@ -217,7 +217,7 b' Now do a variation using POST to send ar'
217 217
218 218 $ hg clone http://localhost:$HGPORT/ clone
219 219 abort: error: bad HTTP status line: * (glob)
220 [255]
220 [100]
221 221
222 222 $ killdaemons.py $DAEMON_PIDS
223 223
@@ -277,7 +277,7 b' Server sends a single character from the'
277 277
278 278 $ hg clone http://localhost:$HGPORT/ clone
279 279 abort: error: bad HTTP status line: H
280 [255]
280 [100]
281 281
282 282 $ killdaemons.py $DAEMON_PIDS
283 283
@@ -178,7 +178,7 b' clone from invalid URL'
178 178
179 179 $ hg clone http://localhost:$HGPORT/bad
180 180 abort: HTTP Error 404: Not Found
181 [255]
181 [100]
182 182
183 183 test http authentication
184 184 + use the same server to test server side streaming preference
@@ -250,7 +250,7 b' test http authentication'
250 250 [255]
251 251 $ hg id http://user:pass2@localhost:$HGPORT2/
252 252 abort: HTTP Error 403: no
253 [255]
253 [100]
254 254
255 255 $ hg -R dest-pull tag -r tip top
256 256 $ hg -R dest-pull push http://user:pass@localhost:$HGPORT2/
@@ -338,7 +338,7 b' clone of serve with repo in root and uns'
338 338 updating to branch default
339 339 cloning subrepo sub from http://localhost:$HGPORT/sub
340 340 abort: HTTP Error 404: Not Found
341 [255]
341 [100]
342 342 $ hg clone http://localhost:$HGPORT/ slash-clone
343 343 requesting all changes
344 344 adding changesets
@@ -349,7 +349,7 b' clone of serve with repo in root and uns'
349 349 updating to branch default
350 350 cloning subrepo sub from http://localhost:$HGPORT/sub
351 351 abort: HTTP Error 404: Not Found
352 [255]
352 [100]
353 353
354 354 check error log
355 355
@@ -364,7 +364,7 b' Check error reporting while pulling/clon'
364 364 requesting all changes
365 365 abort: remote error:
366 366 this is an exercise
367 [255]
367 [100]
368 368 $ cat error.log
369 369
370 370 disable pull-based clones
@@ -375,7 +375,7 b' disable pull-based clones'
375 375 requesting all changes
376 376 abort: remote error:
377 377 server has pull-based clones disabled
378 [255]
378 [100]
379 379
380 380 #if no-reposimplestore
381 381 ... but keep stream clones working
@@ -874,13 +874,13 b' Reset server to remove REQUEST_METHOD ha'
874 874 searching for changes
875 875 no changes found
876 876 abort: HTTP Error 403: ssl required
877 [255]
877 [100]
878 878
879 879 $ hg --cwd ../test2 push http://localhost:$HGPORT/
880 880 pushing to http://localhost:$HGPORT/
881 881 searching for changes
882 882 abort: HTTP Error 403: ssl required
883 [255]
883 [100]
884 884
885 885 $ killdaemons.py
886 886
@@ -91,7 +91,7 b' misconfigured hosts)'
91 91
92 92 $ http_proxy=localhost:$HGPORT2 hg clone --config http_proxy.always=True http://localhost:$HGPORT/ f
93 93 abort: error: (Connection refused|Protocol not supported|.* actively refused it|\$EADDRNOTAVAIL\$|No route to host) (re)
94 [255]
94 [100]
95 95
96 96 do not use the proxy if it is in the no list
97 97
@@ -167,7 +167,7 b' clone from invalid URL'
167 167
168 168 $ hg clone http://localhost:$HGPORT/bad
169 169 abort: HTTP Error 404: Not Found
170 [255]
170 [100]
171 171
172 172 test http authentication
173 173 + use the same server to test server side streaming preference
@@ -283,7 +283,7 b' test http authentication'
283 283 [255]
284 284 $ hg id http://user:pass2@localhost:$HGPORT2/
285 285 abort: HTTP Error 403: no
286 [255]
286 [100]
287 287
288 288 $ hg -R dest-pull tag -r tip top
289 289 $ hg -R dest-pull push http://user:pass@localhost:$HGPORT2/
@@ -475,7 +475,7 b' clone of serve with repo in root and uns'
475 475 updating to branch default
476 476 cloning subrepo sub from http://localhost:$HGPORT/sub
477 477 abort: HTTP Error 404: Not Found
478 [255]
478 [100]
479 479 $ hg clone http://localhost:$HGPORT/ slash-clone
480 480 requesting all changes
481 481 adding changesets
@@ -486,7 +486,7 b' clone of serve with repo in root and uns'
486 486 updating to branch default
487 487 cloning subrepo sub from http://localhost:$HGPORT/sub
488 488 abort: HTTP Error 404: Not Found
489 [255]
489 [100]
490 490
491 491 check error log
492 492
@@ -588,7 +588,7 b' Request without cookie sent should fail '
588 588
589 589 $ hg id http://localhost:$HGPORT
590 590 abort: HTTP Error 500: no-cookie
591 [255]
591 [100]
592 592
593 593 Populate a cookies file
594 594
@@ -602,7 +602,7 b' Should not send a cookie for another dom'
602 602
603 603 $ hg --config auth.cookiefile=cookies.txt id http://localhost:$HGPORT/
604 604 abort: HTTP Error 500: no-cookie
605 [255]
605 [100]
606 606
607 607 Add a cookie entry for our test server and verify it is sent
608 608
@@ -612,4 +612,4 b' Add a cookie entry for our test server a'
612 612
613 613 $ hg --config auth.cookiefile=cookies.txt id http://localhost:$HGPORT/
614 614 abort: HTTP Error 500: Cookie: hgkey=localhostvalue
615 [255]
615 [100]
@@ -59,7 +59,7 b' we are able to load CA certs.'
59 59 $ hg clone https://localhost:$HGPORT/ copy-pull
60 60 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
61 61 abort: error: *certificate verify failed* (glob)
62 [255]
62 [100]
63 63 #endif
64 64
65 65 Specifying a per-host certificate file that doesn't exist will abort. The full
@@ -84,7 +84,7 b' A per-host certificate mismatching the s'
84 84 (an attempt was made to load CA certificates but none were loaded; see https://mercurial-scm.org/wiki/SecureConnections for how to configure Mercurial to avoid this error)
85 85 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
86 86 abort: error: *certificate verify failed* (glob)
87 [255]
87 [100]
88 88
89 89 A per-host certificate matching the server's cert will be accepted
90 90
@@ -238,7 +238,7 b' cacert mismatch'
238 238 pulling from https://localhost:$HGPORT/
239 239 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
240 240 abort: error: *certificate verify failed* (glob)
241 [255]
241 [100]
242 242 $ hg -R copy-pull pull --config web.cacerts="$CERTSDIR/pub-other.pem" \
243 243 > --insecure
244 244 pulling from https://localhost:$HGPORT/
@@ -255,7 +255,7 b" Test server cert which isn't valid yet"
255 255 pulling from https://localhost:$HGPORT1/
256 256 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
257 257 abort: error: *certificate verify failed* (glob)
258 [255]
258 [100]
259 259
260 260 Test server cert which no longer is valid
261 261
@@ -266,7 +266,7 b' Test server cert which no longer is vali'
266 266 pulling from https://localhost:$HGPORT2/
267 267 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
268 268 abort: error: *certificate verify failed* (glob)
269 [255]
269 [100]
270 270
271 271 Setting ciphers to an invalid value aborts
272 272 $ P="$CERTSDIR" hg --config hostsecurity.ciphers=invalid -R copy-pull id https://localhost:$HGPORT/
@@ -375,26 +375,26 b' Clients requiring newer TLS version than'
375 375 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
376 376 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
377 377 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
378 [255]
378 [100]
379 379
380 380 $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.1 id https://localhost:$HGPORT/
381 381 (could not negotiate a common security protocol (tls1.1+) with localhost; the likely cause is Mercurial is configured to be more secure than the server can support)
382 382 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
383 383 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
384 384 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
385 [255]
385 [100]
386 386 $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.2 id https://localhost:$HGPORT/
387 387 (could not negotiate a common security protocol (tls1.2+) with localhost; the likely cause is Mercurial is configured to be more secure than the server can support)
388 388 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
389 389 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
390 390 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
391 [255]
391 [100]
392 392 $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.2 id https://localhost:$HGPORT1/
393 393 (could not negotiate a common security protocol (tls1.2+) with localhost; the likely cause is Mercurial is configured to be more secure than the server can support)
394 394 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
395 395 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
396 396 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
397 [255]
397 [100]
398 398
399 399 --insecure will allow TLS 1.0 connections and override configs
400 400
@@ -417,7 +417,7 b' The per-host config option by itself wor'
417 417 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
418 418 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
419 419 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
420 [255]
420 [100]
421 421
422 422 .hg/hgrc file [hostsecurity] settings are applied to remote ui instances (issue5305)
423 423
@@ -430,7 +430,7 b' The per-host config option by itself wor'
430 430 (consider contacting the operator of this server and ask them to support modern TLS protocol versions; or, set hostsecurity.localhost:minimumprotocol=tls1.0 to allow use of legacy, less secure protocols when communicating with this server)
431 431 (see https://mercurial-scm.org/wiki/SecureConnections for more info)
432 432 abort: error: .*(unsupported protocol|wrong ssl version).* (re)
433 [255]
433 [100]
434 434
435 435 $ killdaemons.py hg0.pid
436 436 $ killdaemons.py hg1.pid
@@ -482,13 +482,13 b' Test https with cert problems through pr'
482 482 pulling from https://localhost:$HGPORT/
483 483 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
484 484 abort: error: *certificate verify failed* (glob)
485 [255]
485 [100]
486 486 $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull \
487 487 > --config web.cacerts="$CERTSDIR/pub-expired.pem" https://localhost:$HGPORT2/
488 488 pulling from https://localhost:$HGPORT2/
489 489 (the full certificate chain may not be available locally; see "hg help debugssl") (windows !)
490 490 abort: error: *certificate verify failed* (glob)
491 [255]
491 [100]
492 492
493 493
494 494 $ killdaemons.py hg0.pid
@@ -518,7 +518,7 b' without client certificate:'
518 518
519 519 $ P="$CERTSDIR" hg id https://localhost:$HGPORT/
520 520 abort: error: .*(\$ECONNRESET\$|certificate required|handshake failure).* (re)
521 [255]
521 [100]
522 522
523 523 with client certificate:
524 524
@@ -539,7 +539,7 b' with client certificate:'
539 539
540 540 $ env P="$CERTSDIR" hg id https://localhost:$HGPORT/
541 541 abort: error: * (glob)
542 [255]
542 [100]
543 543
544 544 Missing certficate and key files result in error
545 545
@@ -117,7 +117,7 b' exit code with nothing outgoing (issue36'
117 117 This repository uses the largefiles extension.
118 118
119 119 Please enable it in your Mercurial config file.
120 [255]
120 [100]
121 121
122 122 used all HGPORTs, kill all daemons
123 123 $ killdaemons.py
@@ -133,7 +133,7 b' vanilla clients locked out from largefil'
133 133 remote: -
134 134 abort: remote error
135 135 (check previous remote output)
136 [255]
136 [100]
137 137
138 138 #if serve
139 139
@@ -41,7 +41,7 b' expect ssl error'
41 41 searching for changes
42 42 abort: HTTP Error 403: ssl required
43 43 % serve errors
44 [255]
44 [100]
45 45
46 46 expect authorization error
47 47
@@ -90,10 +90,10 b' With out of bounds accesses'
90 90
91 91 $ hg id http://localhost:$HGPORT/some/dir7
92 92 abort: HTTP Error 404: Not Found
93 [255]
93 [100]
94 94 $ hg id http://localhost:$HGPORT/some
95 95 abort: HTTP Error 404: Not Found
96 [255]
96 [100]
97 97
98 98 $ cat access.log errors.log
99 99 $LOCALIP - - [$LOGDATE$] "GET /some/dir7?cmd=capabilities HTTP/1.1" 404 - (glob)
@@ -2,7 +2,7 b''
2 2
3 3 $ hg clone http://localhost:$HGPORT/ copy
4 4 abort: * (glob)
5 [255]
5 [100]
6 6 $ test -d copy
7 7 [1]
8 8
@@ -110,7 +110,7 b" are also available as siblings of 'main'"
110 110 updating to branch default
111 111 cloning subrepo sub1 from http://localhost:$HGPORT/../sub1
112 112 abort: HTTP Error 404: Not Found
113 [255]
113 [100]
114 114
115 115 $ cat access.log
116 116 * "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
@@ -85,7 +85,7 b' just masked out, and that would make the'
85 85 searching for changes
86 86 no changes found
87 87 abort: HTTP Error 403: ssl required
88 [255]
88 [100]
89 89
90 90 Checking cloned repo ids
91 91
General Comments 0
You need to be logged in to leave comments. Login now