Rev 3195: (andrew) Don't read more than 64k at a time in bzrlib/smart/medium.py, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Jan 22 00:46:34 GMT 2008
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3195
revision-id:pqm at pqm.ubuntu.com-20080122004623-p8kb5y8dehs5cmho
parent: pqm at pqm.ubuntu.com-20080121072020-0eye263yx2bmir2b
parent: andrew.bennetts at canonical.com-20080121230454-0mdqybl4b2tte6d4
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-01-22 00:46:23 +0000
message:
(andrew) Don't read more than 64k at a time in bzrlib/smart/medium.py,
fixes the other half of bug #115781.
modified:
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
------------------------------------------------------------
revno: 3170.5.2
revision-id:andrew.bennetts at canonical.com-20080121230454-0mdqybl4b2tte6d4
parent: andrew.bennetts at canonical.com-20080108053931-ezafty4oqtnl8j4z
parent: pqm at pqm.ubuntu.com-20080118055224-sskoia4bcpxd8wzu
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: windows-recv-limit
timestamp: Tue 2008-01-22 10:04:54 +1100
message:
Merge from bzr.dev.
added:
bzrlib/tests/repository_implementations/test_has_revisions.py test_has_revisions.p-20080111035443-xaupgdsx5fw1q54b-1
doc/en/user-guide/revnos.txt revnos.txt-20080111231928-pbntxea0ynh9ww1t-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzr bzr.py-20050313053754-5485f144c7006fa6
bzrlib/__init__.py __init__.py-20050309040759-33e65acf91bbcd5d
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/debug.py debug.py-20061102062349-vdhrw9qdpck8cl35-1
bzrlib/fetch.py fetch.py-20050818234941-26fea6105696365d
bzrlib/graph.py graph_walker.py-20070525030359-y852guab65d4wtn0-1
bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/merge.py merge.py-20050513021216-953b65a438527106
bzrlib/reconfigure.py reconfigure.py-20070908040425-6ykgo7escxhyrg9p-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/knitrepo.py knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repofmt/weaverepo.py presplitout.py-20070125045333-wfav3tsh73oxu3zk-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/revisiontree.py revisiontree.py-20060724012533-bg8xyryhxd0o0i0h-1
bzrlib/smart/client.py client.py-20061116014825-2k6ada6xgulslami-1
bzrlib/smart/medium.py medium.py-20061103051856-rgu2huy59fkz902q-1
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/smart/request.py request.py-20061108095550-gunadhxmzkdjfeek-1
bzrlib/symbol_versioning.py symbol_versioning.py-20060105104851-9ecf8af605d15a80
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_annotate.py test_annotate.py-20061213215015-sttc9agsxomls7q0-1
bzrlib/tests/test_graph.py test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/tests/test_merge.py testmerge.py-20050905070950-c1b5aa49ff911024
bzrlib/tests/test_merge_core.py test_merge_core.py-20050824132511-eb99b23a0eec641b
bzrlib/tests/test_osutils.py test_osutils.py-20051201224856-e48ee24c12182989
bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-2
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_tsort.py testtsort.py-20051025073946-27da871c394d5be4
bzrlib/trace.py trace.py-20050309040759-c8ed824bdcd4748a
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/tsort.py tsort.py-20051025073946-7808f6aaf7d07208
bzrlib/xml_serializer.py xml.py-20050309040759-57d51586fdec365d
doc/developers/HACKING.txt HACKING-20050805200004-2a5dc975d870f78c
doc/en/tutorials/using_bazaar_with_launchpad.txt using_bazaar_with_lp-20071211073140-7msh8uf9a9h4y9hb-1
doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
doc/en/user-guide/index.txt index.txt-20060622101119-tgwtdci8z769bjb9-2
------------------------------------------------------------
revno: 3170.5.1
revision-id:andrew.bennetts at canonical.com-20080108053931-ezafty4oqtnl8j4z
parent: pqm at pqm.ubuntu.com-20080107174938-hvwo399dzshh3cod
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: windows-recv-limit
timestamp: Tue 2008-01-08 16:39:31 +1100
message:
Fix the other half of bug #115781: don't read more than 64k at a time either.
modified:
bzrlib/smart/protocol.py protocol.py-20061108035435-ot0lstk2590yqhzr-1
=== modified file 'bzrlib/smart/protocol.py'
--- a/bzrlib/smart/protocol.py 2008-01-14 22:45:15 +0000
+++ b/bzrlib/smart/protocol.py 2008-01-21 23:04:54 +0000
@@ -549,8 +549,11 @@
return self._body_buffer.read(count)
_body_decoder = LengthPrefixedBodyDecoder()
+ # Read no more than 64k at a time so that we don't risk error 10055 (no
+ # buffer space available) on Windows.
+ max_read = 64 * 1024
while not _body_decoder.finished_reading:
- bytes_wanted = _body_decoder.next_read_size()
+ bytes_wanted = min(_body_decoder.next_read_size(), max_read)
bytes = self._request.read_bytes(bytes_wanted)
_body_decoder.accept_bytes(bytes)
self._request.finished_reading()
@@ -633,9 +636,12 @@
def read_streamed_body(self):
"""Read bytes from the body, decoding into a byte stream.
"""
+ # Read no more than 64k at a time so that we don't risk error 10055 (no
+ # buffer space available) on Windows.
+ max_read = 64 * 1024
_body_decoder = ChunkedBodyDecoder()
while not _body_decoder.finished_reading:
- bytes_wanted = _body_decoder.next_read_size()
+ bytes_wanted = min(_body_decoder.next_read_size(), max_read)
bytes = self._request.read_bytes(bytes_wanted)
_body_decoder.accept_bytes(bytes)
for body_bytes in iter(_body_decoder.read_next_chunk, None):
More information about the bazaar-commits
mailing list