[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ldconfig freaks out with bus error [was: lh_build woes]



On Sat, Mar 29, 2008 at 08:33:42AM +0000, tomas at tuxteam.de wrote:
> On Sat, Mar 29, 2008 at 01:44:40AM -0400, Justin Pryzby wrote:
> > On Sat, Mar 29, 2008 at 05:12:01AM +0000, tomas at tuxteam.de wrote:

> Ah-hah: It goes about opening a lib, mmapping it, closing it -- for many
> libs in the system (kinda makes sense, no?). This are the last two
> cycles:
> 
>  [... mucho deleto... ]
>  | open("/usr/lib/libexchange-storage-1.2.so.1.0.1", O_RDONLY) = 4
>  | fstat64(4, {st_mode=S_IFREG|0644, st_size=266012, ...}) = 0
>  | mmap2(NULL, 266012, PROT_READ, MAP_SHARED, 4, 0) = 0xb7efa000
>  | munmap(0xb7efa000, 266012)              = 0
>  | close(4)                                = 0
>  | open("/usr/lib/libgimpcolor-2.0.so.0.200.13", O_RDONLY) = 4
>  | fstat64(4, {st_mode=S_IFREG|0644, st_size=33892, ...}) = 0
>  | mmap2(NULL, 33892, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f32000
>  | --- SIGBUS (Bus error) @ 0 (0) ---
>  | +++ killed by SIGBUS +++
> 
> Now I'm off to see what could be possibly wrong with libgimpcolor.
So it opens and mmaps each lib (or, only libs with updated timestamps
in glibc 2.7), then reads the NEEDED or SONAME information.  Your bad
disk causes the memory read to fail and so the proc is sent SIGBUS.  Is
that the correct behavior, or could ldconfig do something better?  I
suspect that's essentially as good as it could be.

Justin



Reply to: