Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#24368 - [glibc]

Attached to Project: Arch Linux
Opened by Screen Silently (ScreenSilently) - Saturday, 21 May 2011, 09:52 GMT
Last edited by Allan McRae (Allan) - Monday, 06 June 2011, 03:57 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Allan McRae (Allan)
Architecture All
Severity Critical
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 6
Private No

Details

Hello,

/lib/libc-2.13.so causes segmentation errors that in other distros DO NOT happen, using several binarys in several different computers..

More specifically using the gdb debugging tool I'm getting:
Program terminated with signal 11, Segmentation fault.
#0 0xb75e0495 in fwrite () from /lib/libc.so.6
// or //
Program terminated with signal 11, Segmentation fault.
#0 0xb7684b9d in __uflow () from /lib/libc.so.6

For instance try the hldsupdatetool.bin you can get here -->
http://www.cstrike-planet.com/tutorial/1-Linux-Install-CS-Source/5
Or the Totalmarker's binary it could be found here -->
http://www.wizabit.eclipse.co.uk/xplanet/

They work in other distributions.

So, something must be definitely wrong with the way you compiled the library.
Please check this out.

Thank you!
This task depends upon

Closed by  Allan McRae (Allan)
Monday, 06 June 2011, 03:57 GMT
Reason for closing:  Not a bug
Additional comments about closing:  Poor programming in unsupported binary blobs.
Comment by Allan McRae (Allan) - Saturday, 21 May 2011, 10:47 GMT
Absolutely nothing that can be done to fix bugs in binary blobs, especially stripped ones. Give an example of something with source code available that shows this bug and I can start to investigate.
Comment by Dimos (bendersteed) - Saturday, 21 May 2011, 10:59 GMT
Both binaries give segment error here as well, whereas they work right on ubuntu 11.04 with the same version of libc.
Comment by Allan McRae (Allan) - Saturday, 21 May 2011, 11:05 GMT
Ubuntu does not use glibc, it uses eglibc. It those binary blobs were built on an eglibc distro, we may have a genuine incompatibility (which is not necessarily a glibc bug...)

Either way, I can do nothing until a package with source code crashes.
Comment by Screen Silently (ScreenSilently) - Saturday, 21 May 2011, 11:20 GMT
Hello Allan,
Thank you for replying on the ticket.

Unfortunately the problem seems to appear only on Arch linux, and not in other distros.
I have tested Ubuntu, Debian, Gentoo, CentOS and Fedora so far.

This is the log of gdb:
http://paste.pocoo.org/show/jM337cWdl2UqTVcvHKue/

I don't know what other information you will might need,
and unfortunately the source code for these binarys isn't available.
Comment by Jan de Groot (JGC) - Monday, 23 May 2011, 12:17 GMT
Looking at your gdb output, I see a warning message. It's a bug in the binary blob triggered by something you didn't install correctly.

To reproduce the segfault, try this code:
http://www.math.tau.ac.il/~danha/courses/soft1-fall98-9/c11-fread.c

Change the fopen to a path you're not allowed to write (/root/something.txt, run as non-root). Then remove the assert below and compile the code, run it: segmentation fault in fwrite.
Comment by Screen Silently (ScreenSilently) - Saturday, 28 May 2011, 12:24 GMT
I don't know what's the problem, but It's caused only on Arch.
Comment by Screen Silently (ScreenSilently) - Tuesday, 31 May 2011, 11:35 GMT
Hello,

Today I was trying to run "python manage.py syncdb" to sync django's database and I'm getting Segmentation Fault.

Allan, something's really wrong.

Thanks.
Comment by Allan McRae (Allan) - Wednesday, 01 June 2011, 02:18 GMT
Until you provide information on exactly how to reproduce and debug this issue, nothing will ever be done to fix it.
Comment by Screen Silently (ScreenSilently) - Wednesday, 01 June 2011, 07:27 GMT
Well, I'm I can't help more, here's Django's code:
http://www.djangoproject.com/download/1.3/tarball/

..Just study and fix it PLEASE!
Comment by Allan McRae (Allan) - Wednesday, 01 June 2011, 07:38 GMT
No... you provide some actual information on the crash (which would be in python... not django). The command you gave "python manage.py syncdb" is full of wrong on Arch Linux as "python" is python-3.x and not compatible with django. So you have not not even given me minimal information on how to replicate.
Comment by Jan de Groot (JGC) - Wednesday, 01 June 2011, 08:47 GMT
As said with the testcase: this is a problem in the program, not in glibc. My testcase crashes on Debian also, which uses eglibc. As you're using an unsupported closed-source binary, strace is your friend to find out what's wrong. It's probably looking for a path that doesn't exist on archlinux and doesn't check if it can open the file before reading or writing to it.
Comment by Screen Silently (ScreenSilently) - Wednesday, 01 June 2011, 08:55 GMT
@Allan I actually gave "python2 manage.py syncdb".

It works on every other distro I've tried, even including *BSD, so the problem is definitely on Arch, and It should be fixed.
And It's not on a single binary, but many ones have got segfaults.
Comment by Allan McRae (Allan) - Monday, 06 June 2011, 03:31 GMT
> strace ./Totalmaker

stat64("/home/allan/Desktop", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat64("/home/allan/Desktop", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat64("/home/allan/Desktop", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat64("/home/allan/Desktop/config/totalmarker.dat", 0xffd1ec0c) = -1 ENOENT (No such file or directory)
stat64("/home/allan/Desktop/config", 0xffd1ec0c) = -1 ENOENT (No such file or directory)
stat64("/home/allan/Desktop/config", 0xffd1ec0c) = -1 ENOENT (No such file or directory)
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/allan/", {st_mode=S_IFDIR|0700, st_size=12288, ...}) = 0
stat64("/home/allan/Desktop/", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat64("/home/allan/Desktop/config/", 0xffd1ec0c) = -1 ENOENT (No such file or directory)

All these look like binary blobs attempting to access files that are not present. This is not an issue in glibc.
Comment by Screen Silently (ScreenSilently) - Monday, 06 June 2011, 03:46 GMT
I don't know.

Sure thing (again): It's happening only on Arch and It should be fixed.

Loading...