FS#33799 - "operation too slow" when upgrading a package from local repo

Attached to Project: Pacman
Opened by bill (freestyler7) - Sunday, 10 February 2013, 12:00 GMT
Last edited by Allan McRae (Allan) - Sunday, 10 February 2013, 13:40 GMT
Task Type Bug Report
Category Backend/Core
Status Assigned
Assigned To Dave Reisner (falconindy)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version 4.0.3
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

Summary and Info:
I keep a local repo on my hard drive to better organize AUR packages.
When there is a new version of a package, i move the package to a local folder, run repo-add, refresh databases and finally issue a "pacman -Syu" (yes i don't like running -Su by itself even with few seconds apart on syncing repos).

Then i get prompted to upgrade the package. If i don't answer within 10 secs (say i want to gracefully close affected applications first) i get:
"Operation too slow. Less than 1024 bytes/sec transferred the last 10 seconds
error: failed to update community (download library error)"

This step will always fail as long as i don't answer (y/n) within 10 secs. (mind you, it's only happening on sys-upgrade command -Syu / -Su. Not when using -S by itself)
Sometimes a .part file will be created in pacman's cache and then the error changes to "error: failed to commit transaction (wrong or NULL argument passed)"
At this point nothing will work anymore (waiting or not, -S or -Su) until the .part file is manually removed.

To sum up: The repo has to be local, pacman cache must not contain the version to be upgraded already, sys-upgrade switch has to be passed -Su / -Syu and user has to wait more than 10 secs before confirming the upgrade operation.

Steps to Reproduce:
Issue "pacman -Syu" where the upgraded package will be pulled from local drive and don't confirm the operation for at least 10 secs.
This task depends upon

Comment by bill (freestyler7) - Sunday, 10 February 2013, 12:03 GMT
Sorry, Wrong paste on the first error. It should be:

warning: failed to retrieve some files from custom
error: failed to commit transaction (download library error)
Errors occurred, no packages were upgraded.
Comment by Allan McRae (Allan) - Sunday, 10 February 2013, 13:21 GMT
Two minutes and waiting - can not replicate using current pacman-git
Comment by Allan McRae (Allan) - Sunday, 10 February 2013, 13:40 GMT
Ah - I can replicate. To clarify:

1) Have an update in a locally hosted repository
2) pacman -Syu
3) wait for a long time at the "Proceed with installation? [Y/n]" before hitting return
4) see failure to download


Nothing obvious in the debug output....

:: Retrieving packages ...
[23:38:17] debug: url: file:///home/allan/web/allanbrokeit/i686/findutils-4.5.11-1-i686.pkg.tar.xz
[23:38:17] debug: maxsize: 375452
[23:38:17] debug: opened tempfile for download: /home/arch/pkgcache/findutils-4.5.11-1-i686.pkg.tar.xz.part (wb)
downloading findutils-4.5.11-1-i686.pkg.tar.xz...
[23:38:17] debug: curl returned error 28 from transfer
[23:38:17] error: failed retrieving file 'findutils-4.5.11-1-i686.pkg.tar.xz' from disk : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
[23:38:17] warning: failed to retrieve some files
[23:38:17] error: failed to commit transaction (download library error)
Errors occurred, no packages were upgraded.
Comment by Allan McRae (Allan) - Sunday, 10 February 2013, 13:44 GMT
And I always end with a .part file in the cache - always this size:

> ls -l /home/arch/pkgcache/findutils-4.5.11-1-i686.pkg.tar.xz.part
-rw-r--r-- 1 root root 16383 Feb 10 23:43 /home/arch/pkgcache/findutils-4.5.11-1-i686.pkg.tar.xz.part
Comment by Allan McRae (Allan) - Sunday, 10 February 2013, 13:48 GMT
And the part file increase by 16383 bytes every time.
Comment by bill (freestyler7) - Sunday, 10 February 2013, 13:54 GMT
Good thing you can re-produce because i couldn't build pacman-git. :P
source=(git://projects.archlinux.org/pacman.git) -- "there is no agent set up to handle git URL" and i coudn't find a git relevant line to the makepkg.conf file in git tree
Comment by Christian Neukirchen (chneukirchen) - Monday, 15 April 2013, 17:22 GMT
I can reproduce this as well, with Pacman v4.1.0 - libalpm v8.0.0.

E.g. in my pacman.conf:

[absurd]
SigLevel = Optional
Server = file:///var/cache/absurd

Then, on pacman -Syu:

Packages (1):

Name Old Version New Version Net Change Download Size

absurd/pacaur 4.1.2-1 4.1.3-1 0.00 MiB 0.03 MiB

Total Download Size: 0.03 MiB
Total Installed Size: 0.17 MiB
Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages ...
error: failed retrieving file 'pacaur-4.1.3-1-any.pkg.tar.gz' from disk : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
warning: failed to retrieve some files
error: failed to commit transaction (download library error)
Errors occurred, no packages were upgraded.

It does not happen with pacman -S only.

Loading...