Summary: | dbus-daemon crashes when accesses | ||
---|---|---|---|
Product: | dbus | Reporter: | Koen Kooi <koen> |
Component: | core | Assignee: | Havoc Pennington <hp> |
Status: | RESOLVED WONTFIX | QA Contact: | |
Severity: | blocker | ||
Priority: | high | CC: | johnp, ross, stian |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | 'fix' segfault |
Description
Koen Kooi
2006-07-28 07:10:52 UTC
Created attachment 6377 [details] [review] 'fix' segfault While adding some debug helpers the sefgault suddenly went away. I attached the patch that worked for me. It is obviously wrong, but I have no clue how to fix it properly. The problem exists in 0.61, 0.62 and 0.90 From your shell prompt, this is on an ipaq? I would suggest looking for problems that might happen only on ARM (isn't that thing ARM?) I don't know what those problems might be though. Are any of the integer types a different size on ARM? Yes, this is on an ipaq (HP hx4700). The only problem I can image would be with unsigned chars: http://www.arm.linux.org.uk/docs/faqs/signedchar.php The kernel is already running in fixup mode for alignment errors, the other ARM niggle. It's all compiled with glibc 2.4/gcc 4.1.1/binutils 2.17.0 if you make clean and then rebuild, are there any errors related to unsigned char? it's certainly a possibility... I can't replicate this with Poky Linux running DBus 1.0.1 on a Zaurus Akita (ARM based). (In reply to comment #6) > I can't replicate this with Poky Linux running DBus 1.0.1 on a Zaurus Akita > (ARM based). > I have the same symptoms. Try compiling with -O0 (disable optimizations). This seems to make the problem disappear for some reason. (I'm using ARM with gcc 4.1.1 uclibc 0.9.29) If it works with -O0 but not with -O(anything else), it's a compiler optimisation bug then surely? If this still is an issue Hmm, could you: a) compile with -g so that backtraces gives more information b) when it crashes, also provide output from disassamble and info registers My first guess would be alignment issue, since that is very fragile (worked with that before on sparc and m68k in another project, though they gave SIGBUS on alignment error, and not SEGFAULT) The requests belongs to very outdated versions. If the problem still exists with recent dbus versions feel free to reopen bug. I'm just adding some historical information related to this bug. Open Cubic Player has checks for gcc version 4.1.1 related to unsigned chars and loops which might be the same bug. See configure.ac test here: AC_MSG_CHECKING([for broken signed char to signed int in loops (gcc version 4.1.1)]) AC_RUN_IFELSE( [ @%:@include <stdio.h> @%:@include <unistd.h> void failcheck(signed int source, signed int filter) { if ((source>128)&&(filter>0)) _exit(1); } int main(int arg, char *argv@<:@@:>@) { int j; for (j=0; j<256; j++) { signed char j2=(signed char)j; signed int j3=j2; failcheck(j, j3); } return 0; } ], AC_MSG_RESULT([ok]), AC_MSG_ERROR([failed. Try to remove any -O flag or to add -fwrapv to CFLAGS and CXXFLAGS]), AC_DEFINE(GCC_411_RUNTIMECHECK, 1) ) |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.