FS#19072 - [libtorrent-rasterbar] 0.15 should be patched to use posix_memalign() instead of valloc()

Attached to Project: Arch Linux
Opened by Christophe Dumez (hydr0g3n) - Tuesday, 13 April 2010, 07:47 GMT
Last edited by Ionut Biru (wonder) - Tuesday, 13 April 2010, 09:57 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ionut Biru (wonder)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
libtorrent-rasterbar uses valloc() as a default to allocate memory. Unfortunately, it causes an ASSERT hit in glibc/eglibc. It is unclear yet if the problem is in libtorrent-rasterbar or glibc/eglibc. The issue is reported here:
https://bugs.launchpad.net/bugs/490024

It was confirmed that ArchLinux distribution is affected. There is a simple fix though. I'm attaching a patch to cause libtorrent-rasterbar to use posix-memalign() instead of valloc(). This patch is very small and it works fine.

I am qBittorrent author and I personally would not have recommended ArchLinux to update to libtorrent v0.15 just yet (it is clearly not as stable as v0.14.10). But since you already did, then please apply the patch or it is unusable on Linux. You can contact libtorrent-rasterbar author, he will confirm the issue (and the patch). As a matter of fact, somebody reported this on libtorrent-rasterbar bug tracker too and Arvid (the author) responded:
http://code.google.com/p/libtorrent/issues/detail?id=57

As I said, reverting to v0.14.10 would even be better.

Additional info:
* package version(s)
v0.15
* config and/or log files etc.


Steps to reproduce:
Simply use qBittorrent or Deluge for some time and you will experience this assert hit in glibc:
malloc.c:3951: __libc_valloc: Assertion `!p || ((((mchunkptr)((char*)(p) - 2*(sizeof(size_t)))))->size & 0x2) || ar_ptr == (((((mchunkptr)((char*)(p) - 2*(sizeof(size_t)))))->size & 0x4) ? ((heap_info *)((unsigned long)(((mchunkptr)((char*)(p) - 2*(sizeof(size_t))))) & ~((2 * (512 * 1024))-1)))->ar_ptr : &main_arena)' failed.
This task depends upon

Closed by  Ionut Biru (wonder)
Tuesday, 13 April 2010, 09:57 GMT
Reason for closing:  Implemented
Additional comments about closing:  libtorrent-rasterbar-0.15.0-4
Comment by Ionut Biru (wonder) - Tuesday, 13 April 2010, 08:31 GMT
thanks for reporting.

Loading...