Package: libapt-pkg4.12 Version: 0.9.0~exp1 Severity: important Tags: patch Dear Maintainer, After upgrading apt to 0.9.0~exp1 or later, in some locales such as ja_JP.UTF-8 or zh_CN.UTF-8, aptitude stucks when downloading any data: # env LANG=ja_JP.UTF-8 aptitude update ^C # env LANG=ja_JP.UTF-8 aptitude changelog aptitude ^C By bisecting changes in the bzr repository I found this problem is caused by a commit revision 2129.55.33 "use a static FileFd::Write overload to reduce duplication of write()-retry code". More specifically, replacing the loop in function pkgAcquire::Worker::OutFdReady with a call to FileFd::Write causes the behavior. Previously, this function tries a single write() call against file descriptor OutFd, trims OutQueue and returns true. The current version calls FileFd::Write, which issues write() repeatedly until the request finishes. This write() fails with errno EAGAIN after a successful write of 65536 bytes, which suggests the size of the buffer of a pipe OutFd points to. An attached patch simply reverts pkgAcquire::Worker::OutFdReady to its 0.8.16~exp13 version. Regards, -- YOSHINO Yoshihito <yy.y.ja.jp@gmail.com> -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.3.0-trunk-amd64 (SMP w/4 CPU cores) Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libapt-pkg4.12 depends on: ii libbz2-1.0 1.0.6-1 ii libc6 2.13-32 ii libgcc1 1:4.7.0-7 ii libstdc++6 4.7.0-7 ii multiarch-support 2.13-32 ii zlib1g 1:1.2.7.dfsg-1 libapt-pkg4.12 recommends no packages. libapt-pkg4.12 suggests no packages. -- no debconf information
Attachment:
revert_use_of_static_write_in_OutFdReady.patch
Description: Binary data