trickle 64-bit does not work with 32-bit binaries

Bug #765424 reported by Ken Sharp on 2011-04-19
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
trickle (Debian)
New
Unknown
trickle (Ubuntu)
Undecided
Unassigned

Bug Description

Binary package hint: trickle

I have been trying to find out if trickle built for amd64 actually works at all with 32-bit executables using trickle -v, but it doesn't actually tell me anything, just this:
ERROR: ld.so: object '/usr/lib/trickle/trickle-overload.so' from LD_PRELOAD cannot be preloaded: ignored.

trickle is a little more forthcoming with 64-bit executables.

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: trickle 1.07-9
ProcVersionSignature: Ubuntu 2.6.35-28.50-generic 2.6.35.11
Uname: Linux 2.6.35-28-generic x86_64
NonfreeKernelModules: fglrx wl
Architecture: amd64
Date: Tue Apr 19 03:04:36 2011
ProcEnviron:
 LANG=en_GB.utf8
 SHELL=/bin/bash
SourcePackage: trickle

Ken Sharp (kennybobs) wrote :
Ken Sharp (kennybobs) wrote :

Tried recompiling for i686 but I had to link to /usr/include/bsd/sys and then it threw up all kinds of errors. I gave up in the end.

Ken Sharp (kennybobs) wrote :

It doesn't do anything to limit bandwidth, likely due to this 32/64 incompatibility.

summary: - trickle 64-bit does not like 32-bit executables
+ trickle 64-bit does not work with 32-bit binaries
Changed in trickle (Ubuntu):
status: New → Confirmed
Ken Sharp (kennybobs) wrote :

Can't rebuild on Oneiric. I have no idea why it can't find this header.

ccache gcc -DHAVE_CONFIG_H -I. -I/tmp/trickle-1.07 -Wall -Icompat -g -O2 -c /tmp/trickle-1.07/trickled.c
/tmp/trickle-1.07/trickled.c:22:22: fatal error: sys/tree.h: No such file or directory

Ken Sharp (kennybobs) wrote :

I built trickle32 in a chroot with instructions from https://bugs.launchpad.net/ubuntu/+source/trickle/+bug/1018657

Then symlinked to the chroot's libbsd.so.0 allowing trickle32 to run in Precise 64-bit (and co-exist with trickle64).

I then tried running Slingplayer 1.5 via Wine but it had no effect on the amount of bandwidth used by the app.
$/opt/trickle32/bin/trickle -d 100 -u 1024 wine-1.5.6 ~/.wine/drive_c/Program\ Files/Sling\ Media/SlingPlayer/SlingPlayer.exe
http://appdb.winehq.org/objectManager.php?sClass=version&iId=11492

There doesn't seem to be an upstream bug tracker to send this to but the man page suggest marius at monkey dot org.

Ken Sharp (kennybobs) wrote :

$ ldd /opt/trickle32/bin/trickle
 linux-gate.so.1 => (0xf76e3000)
 libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf76b1000)
 libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750c000)
 /lib/ld-linux.so.2 (0xf76e4000)

$ ldd /usr/bin/trickle
 linux-vdso.so.1 => (0x00007fff8b9c0000)
 libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fb73434a000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb733f8d000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fb73457b000)

When trying to run trickle32:
ERROR: ld.so: object '/opt/trickle32/lib/trickle/trickle-overload.so' from LD_PRELOAD cannot be preloaded: ignored.

A static build fails.

Ken Sharp (kennybobs) wrote :

I cannot see how to workaround this.

$ sudo apt-get install trickle:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libevent-extra-2.0-5 libevent-openssl-2.0-5 libevent-pthreads-2.0-5 libevent-core-2.0-5
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libbsd0:i386 libevent-2.0-5:i386
The following packages will be REMOVED
  libevent-2.0-5 libevent-dev nfs-common transmission-cli transmission-gtk
The following NEW packages will be installed
  libbsd0:i386 libevent-2.0-5:i386 trickle:i386

$ sudo dpkg -i trickle_1.07-9build1_i386.deb
Selecting previously unselected package trickle:i386.
(Reading database ... 328199 files and directories currently installed.)
Unpacking trickle:i386 (from trickle_1.07-9build1_i386.deb) ...
(Noting disappearance of trickle, which has been completely replaced.)
dpkg: dependency problems prevent configuration of trickle:i386:
 trickle:i386 depends on libbsd0 (>= 0.0).
 trickle:i386 depends on libevent-2.0-5 (>= 2.0.10-stable).
dpkg: error processing trickle:i386 (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db ...
Errors were encountered while processing:
 trickle:i386

I have tried running an i386 trickle, and associated libraries, but it doesn't have any effect on the running application. (strace points ouf if any 64-bit libraries are loaded and trickle complains in the same way as above).

I have also tried cross-building but the resulting biaries are x86_64 anyway for some reason.

The only other way I can think of working around this is with a static build, but that has it's own problems.

Changed in trickle (Debian):
status: Unknown → New
Karl Morrison (karl-morrison) wrote :

Any info on this?

Ken Sharp (kennybobs) wrote :

Sadly no. I don't think anyone is interested. I think trickle is effectively dead.

alexw (alexgraehl) wrote :

Confirmed for me as well. It seems like trickle is deprecated and does not work / cannot work on modern systems. I would love to be proven wrong, however!

alexw (alexgraehl) wrote :

There also appears to be no ALTERNATIVE to trickle, for programs that do not natively support rate-limiting. "wondershaper" is close but limits everything over a specific network interface.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.