tests/test-http-bad-server.t
changeset 36968 2090044a288d
parent 36924 03368431f014
child 37053 cd0ca979a8b8
equal deleted inserted replaced
36967:f62873dba3fd 36968:2090044a288d
   116   readline(4? from -1) -> (2) \r\n (glob)
   116   readline(4? from -1) -> (2) \r\n (glob)
   117   write(36) -> HTTP/1.1 200 Script output follows\r\n
   117   write(36) -> HTTP/1.1 200 Script output follows\r\n
   118   write(23) -> Server: badhttpserver\r\n
   118   write(23) -> Server: badhttpserver\r\n
   119   write(37) -> Date: $HTTP_DATE$\r\n
   119   write(37) -> Date: $HTTP_DATE$\r\n
   120   write(41) -> Content-Type: application/mercurial-0.1\r\n
   120   write(41) -> Content-Type: application/mercurial-0.1\r\n
   121   write(21) -> Content-Length: 417\r\n
   121   write(21) -> Content-Length: 436\r\n
   122   write(2) -> \r\n
   122   write(2) -> \r\n
   123   write(417) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   123   write(436) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   124   readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
   124   readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
   125   readline(1? from -1) -> (1?) Accept-Encoding* (glob)
   125   readline(1? from -1) -> (1?) Accept-Encoding* (glob)
   126   read limit reached; closing socket
   126   read limit reached; closing socket
   127   readline(210 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   127   readline(210 from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   128   readline(184 from -1) -> (27) Accept-Encoding: identity\r\n
   128   readline(184 from -1) -> (27) Accept-Encoding: identity\r\n
   157   readline(13? from -1) -> (2) \r\n (glob)
   157   readline(13? from -1) -> (2) \r\n (glob)
   158   write(36) -> HTTP/1.1 200 Script output follows\r\n
   158   write(36) -> HTTP/1.1 200 Script output follows\r\n
   159   write(23) -> Server: badhttpserver\r\n
   159   write(23) -> Server: badhttpserver\r\n
   160   write(37) -> Date: $HTTP_DATE$\r\n
   160   write(37) -> Date: $HTTP_DATE$\r\n
   161   write(41) -> Content-Type: application/mercurial-0.1\r\n
   161   write(41) -> Content-Type: application/mercurial-0.1\r\n
   162   write(21) -> Content-Length: 417\r\n
   162   write(21) -> Content-Length: 436\r\n
   163   write(2) -> \r\n
   163   write(2) -> \r\n
   164   write(417) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   164   write(436) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   165   readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
   165   readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
   166   readline(1?? from -1) -> (27) Accept-Encoding: identity\r\n (glob)
   166   readline(1?? from -1) -> (27) Accept-Encoding: identity\r\n (glob)
   167   readline(8? from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
   167   readline(8? from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
   168   readline(5? from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
   168   readline(5? from -1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n (glob)
   169   readline(1? from -1) -> (1?) x-hgproto-1:* (glob)
   169   readline(1? from -1) -> (1?) x-hgproto-1:* (glob)
   214   readline(14? from -1) -> (2) \r\n (glob)
   214   readline(14? from -1) -> (2) \r\n (glob)
   215   write(36) -> HTTP/1.1 200 Script output follows\r\n
   215   write(36) -> HTTP/1.1 200 Script output follows\r\n
   216   write(23) -> Server: badhttpserver\r\n
   216   write(23) -> Server: badhttpserver\r\n
   217   write(37) -> Date: $HTTP_DATE$\r\n
   217   write(37) -> Date: $HTTP_DATE$\r\n
   218   write(41) -> Content-Type: application/mercurial-0.1\r\n
   218   write(41) -> Content-Type: application/mercurial-0.1\r\n
   219   write(21) -> Content-Length: 430\r\n
   219   write(21) -> Content-Length: 449\r\n
   220   write(2) -> \r\n
   220   write(2) -> \r\n
   221   write(430) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httppostargs httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   221   write(449) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httppostargs httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   222   readline\(14[67] from 65537\) -> \(2[67]\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
   222   readline\(14[67] from 65537\) -> \(2[67]\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
   223   readline\(1(19|20) from -1\) -> \(27\) Accept-Encoding: identity\\r\\n (re)
   223   readline\(1(19|20) from -1\) -> \(27\) Accept-Encoding: identity\\r\\n (re)
   224   readline(9? from -1) -> (41) content-type: application/mercurial-0.1\r\n (glob)
   224   readline(9? from -1) -> (41) content-type: application/mercurial-0.1\r\n (glob)
   225   readline(5? from -1) -> (19) vary: X-HgProto-1\r\n (glob)
   225   readline(5? from -1) -> (19) vary: X-HgProto-1\r\n (glob)
   226   readline(3? from -1) -> (19) x-hgargs-post: 28\r\n (glob)
   226   readline(3? from -1) -> (19) x-hgargs-post: 28\r\n (glob)
   273 
   273 
   274   $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log
   274   $ hg serve --config badserver.closeaftersendbytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log
   275   $ cat hg.pid > $DAEMON_PIDS
   275   $ cat hg.pid > $DAEMON_PIDS
   276 
   276 
   277   $ hg clone http://localhost:$HGPORT/ clone
   277   $ hg clone http://localhost:$HGPORT/ clone
   278   abort: HTTP request error (incomplete response; expected 397 bytes got 20)
   278   abort: HTTP request error (incomplete response; expected 416 bytes got 20)
   279   (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
   279   (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
   280   [255]
   280   [255]
   281 
   281 
   282   $ killdaemons.py $DAEMON_PIDS
   282   $ killdaemons.py $DAEMON_PIDS
   283 
   283 
   290   readline(-1) -> (2) \r\n
   290   readline(-1) -> (2) \r\n
   291   write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n
   291   write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n
   292   write(23 from 23) -> (121) Server: badhttpserver\r\n
   292   write(23 from 23) -> (121) Server: badhttpserver\r\n
   293   write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n
   293   write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n
   294   write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n
   294   write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n
   295   write(21 from 21) -> (22) Content-Length: 417\r\n
   295   write(21 from 21) -> (22) Content-Length: 436\r\n
   296   write(2 from 2) -> (20) \r\n
   296   write(2 from 2) -> (20) \r\n
   297   write(20 from 417) -> (0) lookup branchmap pus
   297   write(20 from 436) -> (0) lookup branchmap pus
   298   write limit reached; closing socket
   298   write limit reached; closing socket
   299 
   299 
   300   $ rm -f error.log
   300   $ rm -f error.log
   301 
   301 
   302 Server sends incomplete headers for batch request
   302 Server sends incomplete headers for batch request
   303 
   303 
   304   $ hg serve --config badserver.closeaftersendbytes=695 -p $HGPORT -d --pid-file=hg.pid -E error.log
   304   $ hg serve --config badserver.closeaftersendbytes=714 -p $HGPORT -d --pid-file=hg.pid -E error.log
   305   $ cat hg.pid > $DAEMON_PIDS
   305   $ cat hg.pid > $DAEMON_PIDS
   306 
   306 
   307 TODO this output is horrible
   307 TODO this output is horrible
   308 
   308 
   309   $ hg clone http://localhost:$HGPORT/ clone
   309   $ hg clone http://localhost:$HGPORT/ clone
   321   readline(-1) -> (27) Accept-Encoding: identity\r\n
   321   readline(-1) -> (27) Accept-Encoding: identity\r\n
   322   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   322   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   323   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   323   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   324   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   324   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   325   readline(-1) -> (2) \r\n
   325   readline(-1) -> (2) \r\n
   326   write(36 from 36) -> (659) HTTP/1.1 200 Script output follows\r\n
   326   write(36 from 36) -> (678) HTTP/1.1 200 Script output follows\r\n
   327   write(23 from 23) -> (636) Server: badhttpserver\r\n
   327   write(23 from 23) -> (655) Server: badhttpserver\r\n
   328   write(37 from 37) -> (599) Date: $HTTP_DATE$\r\n
   328   write(37 from 37) -> (618) Date: $HTTP_DATE$\r\n
   329   write(41 from 41) -> (558) Content-Type: application/mercurial-0.1\r\n
   329   write(41 from 41) -> (577) Content-Type: application/mercurial-0.1\r\n
   330   write(21 from 21) -> (537) Content-Length: 417\r\n
   330   write(21 from 21) -> (556) Content-Length: 436\r\n
   331   write(2 from 2) -> (535) \r\n
   331   write(2 from 2) -> (554) \r\n
   332   write(417 from 417) -> (118) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   332   write(436 from 436) -> (118) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   333   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   333   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   334   readline(-1) -> (27) Accept-Encoding: identity\r\n
   334   readline(-1) -> (27) Accept-Encoding: identity\r\n
   335   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   335   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   336   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   336   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   337   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   337   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   348 
   348 
   349   $ rm -f error.log
   349   $ rm -f error.log
   350 
   350 
   351 Server sends an incomplete HTTP response body to batch request
   351 Server sends an incomplete HTTP response body to batch request
   352 
   352 
   353   $ hg serve --config badserver.closeaftersendbytes=760 -p $HGPORT -d --pid-file=hg.pid -E error.log
   353   $ hg serve --config badserver.closeaftersendbytes=779 -p $HGPORT -d --pid-file=hg.pid -E error.log
   354   $ cat hg.pid > $DAEMON_PIDS
   354   $ cat hg.pid > $DAEMON_PIDS
   355 
   355 
   356 TODO client spews a stack due to uncaught ValueError in batch.results()
   356 TODO client spews a stack due to uncaught ValueError in batch.results()
   357 #if no-chg
   357 #if no-chg
   358   $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
   358   $ hg clone http://localhost:$HGPORT/ clone 2> /dev/null
   369   readline(-1) -> (27) Accept-Encoding: identity\r\n
   369   readline(-1) -> (27) Accept-Encoding: identity\r\n
   370   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   370   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   371   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   371   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   372   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   372   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   373   readline(-1) -> (2) \r\n
   373   readline(-1) -> (2) \r\n
   374   write(36 from 36) -> (724) HTTP/1.1 200 Script output follows\r\n
   374   write(36 from 36) -> (743) HTTP/1.1 200 Script output follows\r\n
   375   write(23 from 23) -> (701) Server: badhttpserver\r\n
   375   write(23 from 23) -> (720) Server: badhttpserver\r\n
   376   write(37 from 37) -> (664) Date: $HTTP_DATE$\r\n
   376   write(37 from 37) -> (683) Date: $HTTP_DATE$\r\n
   377   write(41 from 41) -> (623) Content-Type: application/mercurial-0.1\r\n
   377   write(41 from 41) -> (642) Content-Type: application/mercurial-0.1\r\n
   378   write(21 from 21) -> (602) Content-Length: 417\r\n
   378   write(21 from 21) -> (621) Content-Length: 436\r\n
   379   write(2 from 2) -> (600) \r\n
   379   write(2 from 2) -> (619) \r\n
   380   write(417 from 417) -> (183) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   380   write(436 from 436) -> (183) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   381   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   381   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   382   readline(-1) -> (27) Accept-Encoding: identity\r\n
   382   readline(-1) -> (27) Accept-Encoding: identity\r\n
   383   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   383   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   384   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   384   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   385   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   385   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   398 
   398 
   399   $ rm -f error.log
   399   $ rm -f error.log
   400 
   400 
   401 Server sends incomplete headers for getbundle response
   401 Server sends incomplete headers for getbundle response
   402 
   402 
   403   $ hg serve --config badserver.closeaftersendbytes=907 -p $HGPORT -d --pid-file=hg.pid -E error.log
   403   $ hg serve --config badserver.closeaftersendbytes=926 -p $HGPORT -d --pid-file=hg.pid -E error.log
   404   $ cat hg.pid > $DAEMON_PIDS
   404   $ cat hg.pid > $DAEMON_PIDS
   405 
   405 
   406 TODO this output is terrible
   406 TODO this output is terrible
   407 
   407 
   408   $ hg clone http://localhost:$HGPORT/ clone
   408   $ hg clone http://localhost:$HGPORT/ clone
   421   readline(-1) -> (27) Accept-Encoding: identity\r\n
   421   readline(-1) -> (27) Accept-Encoding: identity\r\n
   422   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   422   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   423   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   423   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   424   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   424   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   425   readline(-1) -> (2) \r\n
   425   readline(-1) -> (2) \r\n
   426   write(36 from 36) -> (871) HTTP/1.1 200 Script output follows\r\n
   426   write(36 from 36) -> (890) HTTP/1.1 200 Script output follows\r\n
   427   write(23 from 23) -> (848) Server: badhttpserver\r\n
   427   write(23 from 23) -> (867) Server: badhttpserver\r\n
   428   write(37 from 37) -> (811) Date: $HTTP_DATE$\r\n
   428   write(37 from 37) -> (830) Date: $HTTP_DATE$\r\n
   429   write(41 from 41) -> (770) Content-Type: application/mercurial-0.1\r\n
   429   write(41 from 41) -> (789) Content-Type: application/mercurial-0.1\r\n
   430   write(21 from 21) -> (749) Content-Length: 417\r\n
   430   write(21 from 21) -> (768) Content-Length: 436\r\n
   431   write(2 from 2) -> (747) \r\n
   431   write(2 from 2) -> (766) \r\n
   432   write(417 from 417) -> (330) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   432   write(436 from 436) -> (330) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   433   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   433   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   434   readline(-1) -> (27) Accept-Encoding: identity\r\n
   434   readline(-1) -> (27) Accept-Encoding: identity\r\n
   435   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   435   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   436   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   436   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   437   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   437   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   447   write(2 from 2) -> (171) \r\n
   447   write(2 from 2) -> (171) \r\n
   448   write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   448   write(42 from 42) -> (129) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   449   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   449   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   450   readline(-1) -> (27) Accept-Encoding: identity\r\n
   450   readline(-1) -> (27) Accept-Encoding: identity\r\n
   451   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   451   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   452   readline(-1) -> (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
   452   readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
   453   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   453   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   454   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   454   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   455   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   455   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   456   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   456   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   457   readline(-1) -> (2) \r\n
   457   readline(-1) -> (2) \r\n
   464 
   464 
   465   $ rm -f error.log
   465   $ rm -f error.log
   466 
   466 
   467 Server sends empty HTTP body for getbundle
   467 Server sends empty HTTP body for getbundle
   468 
   468 
   469   $ hg serve --config badserver.closeaftersendbytes=945 -p $HGPORT -d --pid-file=hg.pid -E error.log
   469   $ hg serve --config badserver.closeaftersendbytes=964 -p $HGPORT -d --pid-file=hg.pid -E error.log
   470   $ cat hg.pid > $DAEMON_PIDS
   470   $ cat hg.pid > $DAEMON_PIDS
   471 
   471 
   472   $ hg clone http://localhost:$HGPORT/ clone
   472   $ hg clone http://localhost:$HGPORT/ clone
   473   requesting all changes
   473   requesting all changes
   474   abort: HTTP request error (incomplete response)
   474   abort: HTTP request error (incomplete response)
   482   readline(-1) -> (27) Accept-Encoding: identity\r\n
   482   readline(-1) -> (27) Accept-Encoding: identity\r\n
   483   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   483   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   484   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   484   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   485   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   485   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   486   readline(-1) -> (2) \r\n
   486   readline(-1) -> (2) \r\n
   487   write(36 from 36) -> (909) HTTP/1.1 200 Script output follows\r\n
   487   write(36 from 36) -> (928) HTTP/1.1 200 Script output follows\r\n
   488   write(23 from 23) -> (886) Server: badhttpserver\r\n
   488   write(23 from 23) -> (905) Server: badhttpserver\r\n
   489   write(37 from 37) -> (849) Date: $HTTP_DATE$\r\n
   489   write(37 from 37) -> (868) Date: $HTTP_DATE$\r\n
   490   write(41 from 41) -> (808) Content-Type: application/mercurial-0.1\r\n
   490   write(41 from 41) -> (827) Content-Type: application/mercurial-0.1\r\n
   491   write(21 from 21) -> (787) Content-Length: 417\r\n
   491   write(21 from 21) -> (806) Content-Length: 436\r\n
   492   write(2 from 2) -> (785) \r\n
   492   write(2 from 2) -> (804) \r\n
   493   write(417 from 417) -> (368) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   493   write(436 from 436) -> (368) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   494   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   494   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   495   readline(-1) -> (27) Accept-Encoding: identity\r\n
   495   readline(-1) -> (27) Accept-Encoding: identity\r\n
   496   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   496   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   497   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   497   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   498   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   498   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   508   write(2 from 2) -> (209) \r\n
   508   write(2 from 2) -> (209) \r\n
   509   write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   509   write(42 from 42) -> (167) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   510   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   510   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   511   readline(-1) -> (27) Accept-Encoding: identity\r\n
   511   readline(-1) -> (27) Accept-Encoding: identity\r\n
   512   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   512   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   513   readline(-1) -> (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
   513   readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
   514   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   514   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   515   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   515   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   516   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   516   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   517   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   517   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   518   readline(-1) -> (2) \r\n
   518   readline(-1) -> (2) \r\n
   527 
   527 
   528   $ rm -f error.log
   528   $ rm -f error.log
   529 
   529 
   530 Server sends partial compression string
   530 Server sends partial compression string
   531 
   531 
   532   $ hg serve --config badserver.closeaftersendbytes=969 -p $HGPORT -d --pid-file=hg.pid -E error.log
   532   $ hg serve --config badserver.closeaftersendbytes=988 -p $HGPORT -d --pid-file=hg.pid -E error.log
   533   $ cat hg.pid > $DAEMON_PIDS
   533   $ cat hg.pid > $DAEMON_PIDS
   534 
   534 
   535   $ hg clone http://localhost:$HGPORT/ clone
   535   $ hg clone http://localhost:$HGPORT/ clone
   536   requesting all changes
   536   requesting all changes
   537   abort: HTTP request error (incomplete response)
   537   abort: HTTP request error (incomplete response)
   545   readline(-1) -> (27) Accept-Encoding: identity\r\n
   545   readline(-1) -> (27) Accept-Encoding: identity\r\n
   546   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   546   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   547   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   547   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   548   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   548   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   549   readline(-1) -> (2) \r\n
   549   readline(-1) -> (2) \r\n
   550   write(36 from 36) -> (933) HTTP/1.1 200 Script output follows\r\n
   550   write(36 from 36) -> (952) HTTP/1.1 200 Script output follows\r\n
   551   write(23 from 23) -> (910) Server: badhttpserver\r\n
   551   write(23 from 23) -> (929) Server: badhttpserver\r\n
   552   write(37 from 37) -> (873) Date: $HTTP_DATE$\r\n
   552   write(37 from 37) -> (892) Date: $HTTP_DATE$\r\n
   553   write(41 from 41) -> (832) Content-Type: application/mercurial-0.1\r\n
   553   write(41 from 41) -> (851) Content-Type: application/mercurial-0.1\r\n
   554   write(21 from 21) -> (811) Content-Length: 417\r\n
   554   write(21 from 21) -> (830) Content-Length: 436\r\n
   555   write(2 from 2) -> (809) \r\n
   555   write(2 from 2) -> (828) \r\n
   556   write(417 from 417) -> (392) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   556   write(436 from 436) -> (392) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
   557   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   557   readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
   558   readline(-1) -> (27) Accept-Encoding: identity\r\n
   558   readline(-1) -> (27) Accept-Encoding: identity\r\n
   559   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   559   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   560   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   560   readline(-1) -> (41) x-hgarg-1: cmds=heads+%3Bknown+nodes%3D\r\n
   561   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   561   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   571   write(2 from 2) -> (233) \r\n
   571   write(2 from 2) -> (233) \r\n
   572   write(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   572   write(42 from 42) -> (191) 96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n;
   573   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   573   readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
   574   readline(-1) -> (27) Accept-Encoding: identity\r\n
   574   readline(-1) -> (27) Accept-Encoding: identity\r\n
   575   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   575   readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
   576   readline(-1) -> (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
   576   readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
   577   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   577   readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
   578   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   578   readline(-1) -> (35) accept: application/mercurial-0.1\r\n
   579   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   579   readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
   580   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   580   readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
   581   readline(-1) -> (2) \r\n
   581   readline(-1) -> (2) \r\n
   593 
   593 
   594   $ rm -f error.log
   594   $ rm -f error.log
   595 
   595 
   596 Server sends partial bundle2 header magic
   596 Server sends partial bundle2 header magic
   597 
   597 
   598   $ hg serve --config badserver.closeaftersendbytes=966 -p $HGPORT -d --pid-file=hg.pid -E error.log
   598   $ hg serve --config badserver.closeaftersendbytes=985 -p $HGPORT -d --pid-file=hg.pid -E error.log
   599   $ cat hg.pid > $DAEMON_PIDS
   599   $ cat hg.pid > $DAEMON_PIDS
   600 
   600 
   601   $ hg clone http://localhost:$HGPORT/ clone
   601   $ hg clone http://localhost:$HGPORT/ clone
   602   requesting all changes
   602   requesting all changes
   603   abort: HTTP request error (incomplete response; expected 1 bytes got 3)
   603   abort: HTTP request error (incomplete response; expected 1 bytes got 3)
   617 
   617 
   618   $ rm -f error.log
   618   $ rm -f error.log
   619 
   619 
   620 Server sends incomplete bundle2 stream params length
   620 Server sends incomplete bundle2 stream params length
   621 
   621 
   622   $ hg serve --config badserver.closeaftersendbytes=975 -p $HGPORT -d --pid-file=hg.pid -E error.log
   622   $ hg serve --config badserver.closeaftersendbytes=994 -p $HGPORT -d --pid-file=hg.pid -E error.log
   623   $ cat hg.pid > $DAEMON_PIDS
   623   $ cat hg.pid > $DAEMON_PIDS
   624 
   624 
   625   $ hg clone http://localhost:$HGPORT/ clone
   625   $ hg clone http://localhost:$HGPORT/ clone
   626   requesting all changes
   626   requesting all changes
   627   abort: HTTP request error (incomplete response; expected 1 bytes got 3)
   627   abort: HTTP request error (incomplete response; expected 1 bytes got 3)
   642 
   642 
   643   $ rm -f error.log
   643   $ rm -f error.log
   644 
   644 
   645 Servers stops after bundle2 stream params header
   645 Servers stops after bundle2 stream params header
   646 
   646 
   647   $ hg serve --config badserver.closeaftersendbytes=978 -p $HGPORT -d --pid-file=hg.pid -E error.log
   647   $ hg serve --config badserver.closeaftersendbytes=997 -p $HGPORT -d --pid-file=hg.pid -E error.log
   648   $ cat hg.pid > $DAEMON_PIDS
   648   $ cat hg.pid > $DAEMON_PIDS
   649 
   649 
   650   $ hg clone http://localhost:$HGPORT/ clone
   650   $ hg clone http://localhost:$HGPORT/ clone
   651   requesting all changes
   651   requesting all changes
   652   abort: HTTP request error (incomplete response)
   652   abort: HTTP request error (incomplete response)
   667 
   667 
   668   $ rm -f error.log
   668   $ rm -f error.log
   669 
   669 
   670 Server stops sending after bundle2 part header length
   670 Server stops sending after bundle2 part header length
   671 
   671 
   672   $ hg serve --config badserver.closeaftersendbytes=987 -p $HGPORT -d --pid-file=hg.pid -E error.log
   672   $ hg serve --config badserver.closeaftersendbytes=1006 -p $HGPORT -d --pid-file=hg.pid -E error.log
   673   $ cat hg.pid > $DAEMON_PIDS
   673   $ cat hg.pid > $DAEMON_PIDS
   674 
   674 
   675   $ hg clone http://localhost:$HGPORT/ clone
   675   $ hg clone http://localhost:$HGPORT/ clone
   676   requesting all changes
   676   requesting all changes
   677   abort: HTTP request error (incomplete response)
   677   abort: HTTP request error (incomplete response)
   693 
   693 
   694   $ rm -f error.log
   694   $ rm -f error.log
   695 
   695 
   696 Server stops sending after bundle2 part header
   696 Server stops sending after bundle2 part header
   697 
   697 
   698   $ hg serve --config badserver.closeaftersendbytes=1034 -p $HGPORT -d --pid-file=hg.pid -E error.log
   698   $ hg serve --config badserver.closeaftersendbytes=1053 -p $HGPORT -d --pid-file=hg.pid -E error.log
   699   $ cat hg.pid > $DAEMON_PIDS
   699   $ cat hg.pid > $DAEMON_PIDS
   700 
   700 
   701   $ hg clone http://localhost:$HGPORT/ clone
   701   $ hg clone http://localhost:$HGPORT/ clone
   702   requesting all changes
   702   requesting all changes
   703   adding changesets
   703   adding changesets
   723 
   723 
   724   $ rm -f error.log
   724   $ rm -f error.log
   725 
   725 
   726 Server stops after bundle2 part payload chunk size
   726 Server stops after bundle2 part payload chunk size
   727 
   727 
   728   $ hg serve --config badserver.closeaftersendbytes=1055 -p $HGPORT -d --pid-file=hg.pid -E error.log
   728   $ hg serve --config badserver.closeaftersendbytes=1074 -p $HGPORT -d --pid-file=hg.pid -E error.log
   729   $ cat hg.pid > $DAEMON_PIDS
   729   $ cat hg.pid > $DAEMON_PIDS
   730 
   730 
   731   $ hg clone http://localhost:$HGPORT/ clone
   731   $ hg clone http://localhost:$HGPORT/ clone
   732   requesting all changes
   732   requesting all changes
   733   adding changesets
   733   adding changesets
   754 
   754 
   755   $ rm -f error.log
   755   $ rm -f error.log
   756 
   756 
   757 Server stops sending in middle of bundle2 payload chunk
   757 Server stops sending in middle of bundle2 payload chunk
   758 
   758 
   759   $ hg serve --config badserver.closeaftersendbytes=1516 -p $HGPORT -d --pid-file=hg.pid -E error.log
   759   $ hg serve --config badserver.closeaftersendbytes=1535 -p $HGPORT -d --pid-file=hg.pid -E error.log
   760   $ cat hg.pid > $DAEMON_PIDS
   760   $ cat hg.pid > $DAEMON_PIDS
   761 
   761 
   762   $ hg clone http://localhost:$HGPORT/ clone
   762   $ hg clone http://localhost:$HGPORT/ clone
   763   requesting all changes
   763   requesting all changes
   764   adding changesets
   764   adding changesets
   786 
   786 
   787   $ rm -f error.log
   787   $ rm -f error.log
   788 
   788 
   789 Server stops sending after 0 length payload chunk size
   789 Server stops sending after 0 length payload chunk size
   790 
   790 
   791   $ hg serve --config badserver.closeaftersendbytes=1547 -p $HGPORT -d --pid-file=hg.pid -E error.log
   791   $ hg serve --config badserver.closeaftersendbytes=1566 -p $HGPORT -d --pid-file=hg.pid -E error.log
   792   $ cat hg.pid > $DAEMON_PIDS
   792   $ cat hg.pid > $DAEMON_PIDS
   793 
   793 
   794   $ hg clone http://localhost:$HGPORT/ clone
   794   $ hg clone http://localhost:$HGPORT/ clone
   795   requesting all changes
   795   requesting all changes
   796   adding changesets
   796   adding changesets
   823   $ rm -f error.log
   823   $ rm -f error.log
   824 
   824 
   825 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
   825 Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
   826 This is before the 0 size chunked transfer part that signals end of HTTP response.
   826 This is before the 0 size chunked transfer part that signals end of HTTP response.
   827 
   827 
   828   $ hg serve --config badserver.closeaftersendbytes=1722 -p $HGPORT -d --pid-file=hg.pid -E error.log
   828 #  $ hg serve --config badserver.closeaftersendbytes=1741 -p $HGPORT -d --pid-file=hg.pid -E error.log
       
   829   $ hg serve --config badserver.closeaftersendbytes=1848 -p $HGPORT -d --pid-file=hg.pid -E error.log
   829   $ cat hg.pid > $DAEMON_PIDS
   830   $ cat hg.pid > $DAEMON_PIDS
   830 
   831 
   831   $ hg clone http://localhost:$HGPORT/ clone
   832   $ hg clone http://localhost:$HGPORT/ clone
   832   requesting all changes
   833   requesting all changes
   833   adding changesets
   834   adding changesets
   839   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   840   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   840 
   841 
   841   $ killdaemons.py $DAEMON_PIDS
   842   $ killdaemons.py $DAEMON_PIDS
   842 
   843 
   843   $ tail -22 error.log
   844   $ tail -22 error.log
   844   write(28 from 28) -> (779) Transfer-Encoding: chunked\r\n
   845   write(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   845   write(2 from 2) -> (777) \r\n
   846   write(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
   846   write(6 from 6) -> (771) 1\\r\\n\x04\\r\\n (esc)
   847   write(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
   847   write(9 from 9) -> (762) 4\r\nnone\r\n
   848   write(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
   848   write(9 from 9) -> (753) 4\r\nHG20\r\n
   849   write(473 from 473) -> (313) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
   849   write(9 from 9) -> (744) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   850   write(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   850   write(9 from 9) -> (735) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
   851   write(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
   851   write(47 from 47) -> (688) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
   852   write(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
   852   write(9 from 9) -> (679) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
   853   write(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
   853   write(473 from 473) -> (206) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
   854   write(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
   854   write(9 from 9) -> (197) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   855   write(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   855   write(9 from 9) -> (188) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
   856   write(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
   856   write(38 from 38) -> (150) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
   857   write(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
   857   write(9 from 9) -> (141) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
   858   write(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   858   write(64 from 64) -> (77) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
   859   write(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
   859   write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   860   write(35 from 35) -> (72) 1d\\r\\n\x16CACHE:REV-BRANCH-CACHE\x00\x00\x00\x03\x00\x00\\r\\n (esc)
   860   write(9 from 9) -> (59) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
   861   write(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
   861   write(41 from 41) -> (18) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
   862   write(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
   862   write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   863   write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   863   write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   864   write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   864   write limit reached; closing socket
   865   write limit reached; closing socket
   865   write(27) -> 15\r\nInternal Server Error\r\n
   866   write(27) -> 15\r\nInternal Server Error\r\n
   866 
   867 
   867   $ rm -f error.log
   868   $ rm -f error.log
   868   $ rm -rf clone
   869   $ rm -rf clone
   869 
   870 
   870 Server sends a size 0 chunked-transfer size without terminating \r\n
   871 Server sends a size 0 chunked-transfer size without terminating \r\n
   871 
   872 
   872   $ hg serve --config badserver.closeaftersendbytes=1725 -p $HGPORT -d --pid-file=hg.pid -E error.log
   873   $ hg serve --config badserver.closeaftersendbytes=1851 -p $HGPORT -d --pid-file=hg.pid -E error.log
   873   $ cat hg.pid > $DAEMON_PIDS
   874   $ cat hg.pid > $DAEMON_PIDS
   874 
   875 
   875   $ hg clone http://localhost:$HGPORT/ clone
   876   $ hg clone http://localhost:$HGPORT/ clone
   876   requesting all changes
   877   requesting all changes
   877   adding changesets
   878   adding changesets
   883   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   884   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   884 
   885 
   885   $ killdaemons.py $DAEMON_PIDS
   886   $ killdaemons.py $DAEMON_PIDS
   886 
   887 
   887   $ tail -23 error.log
   888   $ tail -23 error.log
   888   write(28 from 28) -> (782) Transfer-Encoding: chunked\r\n
   889   write(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   889   write(2 from 2) -> (780) \r\n
   890   write(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
   890   write(6 from 6) -> (774) 1\\r\\n\x04\\r\\n (esc)
   891   write(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
   891   write(9 from 9) -> (765) 4\r\nnone\r\n
   892   write(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
   892   write(9 from 9) -> (756) 4\r\nHG20\r\n
   893   write(473 from 473) -> (316) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
   893   write(9 from 9) -> (747) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   894   write(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   894   write(9 from 9) -> (738) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
   895   write(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
   895   write(47 from 47) -> (691) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
   896   write(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
   896   write(9 from 9) -> (682) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
   897   write(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
   897   write(473 from 473) -> (209) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
   898   write(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
   898   write(9 from 9) -> (200) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   899   write(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   899   write(9 from 9) -> (191) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
   900   write(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
   900   write(38 from 38) -> (153) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
   901   write(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
   901   write(9 from 9) -> (144) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
   902   write(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   902   write(64 from 64) -> (80) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
   903   write(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
   903   write(9 from 9) -> (71) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   904   write(35 from 35) -> (75) 1d\\r\\n\x16CACHE:REV-BRANCH-CACHE\x00\x00\x00\x03\x00\x00\\r\\n (esc)
   904   write(9 from 9) -> (62) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
   905   write(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
   905   write(41 from 41) -> (21) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
   906   write(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
   906   write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   907   write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   907   write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   908   write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
   908   write(3 from 5) -> (0) 0\r\n
   909   write(3 from 5) -> (0) 0\r\n
   909   write limit reached; closing socket
   910   write limit reached; closing socket
   910   write(27) -> 15\r\nInternal Server Error\r\n
   911   write(27) -> 15\r\nInternal Server Error\r\n