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

Re: Segfault in gnome_program_init



Okay, I can cure the segfault by reordering the linking of the libs,
with libluminate last.  The 200+ MB RAM consumption persists though, and
happens before the first line of code is called...

Any ideas?

Thanks again.

On Wed, 2004-11-24 at 15:38, Adam C Powell IV wrote:
> Greetings,
> 
> Since apt-get dist-upgrading in testing about a week ago, the following
> gnome_program_init command has segfaulted with the GNOME error dialog --
> even when it's the first line of code in main()!  (Or rather, the
> second, after a printf().)
> 
> gnome_program_init ("TSView", VERSION, LIBGNOMEUI_MODULE, argc, argv, NULL);
> 
> I'll note that the libluminate library which this program links has had
> trouble with prelink and also with ldd on ARM which I haven't been able
> to track down.  For details see:
> http://lists.debian.org/debian-devel/2004/09/msg00616.html which
> received no reply, and bug #271650.
> 
> Also, running this program tsview-ng consumes hundreds of megs of RAM
> even before this line is executed, and has for some time now.  On the
> other hand, running another binary in the illuminator tree which links
> libluminate but not the GNOME libs runs just fine, no hundreds of megs,
> no segfault.
> 
> strace and watching the multiload applet show that the memory
> consumption happens right between the following two calls:
> 
> [about 5 mprotect calls]
> mprotect(0x40018000, 704512, PROT_READ|PROT_EXEC) = 0
> set_thread_area({entry_number:-1 -> 6, base_addr:0x4e5466a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
> 
> The segfault happens here:
> 
> open("/tmp/gconfd-hazelsct/lock/ior", O_RDONLY) = 13
> fstat64(13, {st_mode=S_IFREG|0700, st_size=625, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4e80e000
> read(13, "8644:IOR:010000001500000049444c3"..., 4096) = 625
> read(13, "", 4096)                      = 0
> close(13)                               = 0
> munmap(0x4e80e000, 4096)                = 0
> socket(PF_FILE, SOCK_STREAM, 0)         = 13
> fcntl64(13, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
> fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0
> connect(13, {sa_family=AF_FILE, path="/tmp/orbit-hazelsct/linc-21c4-0-2ab997ee1ccf4"}, 48) = 0
> writev(13, [{"GIOP\1\2\1\0T\0\0\0", 12}, {"P\363\377\277\3\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\231H\350"..., 84}], 2) = 96
> poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI, revents=POLLIN}], 2, -1) = 1
> read(13, "GIOP\1\2\1\1(\0\0\0", 12)     = 12
> read(13, "P\363\377\277\0\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\1\1\1\1"..., 40) = 40
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> 
> What could be going wrong?
> 
> Thanks,

-Adam P.

GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Welcome to the best software in the world today cafe!
http://lyre.mit.edu/~powell/The_Best_Stuff_In_The_World_Today_Cafe.ogg



Reply to: