monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Problem with monotone 0.29


From: Detlef Vollmann
Subject: Re: [Monotone-devel] Problem with monotone 0.29
Date: Sat, 26 Aug 2006 23:42:12 +0200

Nathaniel Smith wrote:
> Right... it isn't possible to create real static binaries with glibc
> :-(.
Actually, that is not really a problem.  You can build static
binaries, and I do it for my server.
That is, they do not need any dynamic libraries for running.
But it is true that they need some infrastructure from glibc:
config files for name resolution, timezone, locales, and I think
there are more.
But this infrastructure is pretty stable: AFAIK there wasn't
any change for this in the glibc-2 line.
So it's no problem to build a static binary with glibc 2.3 and
run it on a system that uses 2.2 (which is what I do).

> This seems suspicious to me -- binaries compiled with glibc 2.3, even
> with the -static switch, still require glibc 2.3 be available to
> fully work.
Not really, see above.

> (You might also try
>   http://venge.net/monotone/downloads/mtn-0.29-linux-x86.bz2
> anyway... I'm not sure the binary currently there _is_ compiled with
> glibc 2.3, that might be a lie as well :-).  It definitely is
> statically linked to libstdc++, though, so that shouldn't be an
> issue.)
But it's not a static binary and requires /lib/libc-2.3.so,
which doesn't exist on my server.

> Uh... yeah.  A non-stripped build would be helpful; I'm not sure how
> else we're going to figure out what's going on here :-).
Ok, I built a non-stripped binary again and tried it again.
It was actually harder to reproduce the error with the non-stripped
binary than with the stripped binary...

When it ran off (on the fourth try), I attached gdb, printed
the stack, continued, interrupted, printed stack again, twice.
Here is the output:
=========================================================================
Attaching to program: /usr/local/bin/mtn, process 13565
[New Thread 16384 (LWP 13565)]
[Switching to Thread 16384 (LWP 13565)]
0x08468605 in _int_malloc (av=0x8630360, bytes=150847728) at malloc.c:3849
3849    malloc.c: No such file or directory.
        in malloc.c
(gdb) bt
#0  0x08468605 in _int_malloc (av=0x8630360, bytes=150847728) at malloc.c:3849
#1  0x08467889 in __libc_malloc (bytes=112) at malloc.c:3292
#2  0x0830d9a8 in sqlite3MallocRaw (n=140706656, doMemManage=1)
    at sqlite/util.c:590
#3  0x0830da7e in sqlite3Malloc (n=140706656, doMemManage=150847728)
    at sqlite/util.c:658
#4  0x08383fb3 in allocateCursor (p=0x8630360, iCur=112, iDb=150847728)
    at sqlite/vdbe.c:191
#5  0x08384cfc in sqlite3VdbeExec (p=0x8cca780) at sqlite/vdbe.c:2587
#6  0x0830f02f in sqlite3_step (pStmt=0x8630360) at sqlite/vdbeapi.c:231
#7  0x0814402b in database::fetch(std::vector<std::vector<std::string, 
std::allocator<std::string> >, std::allocator<std::vector<std::string, 
std::allocator<std::string> > > >&, int, int, query const&) ()
#8  0x08145870 in database::delta_exists(hexenc<id> const&, std::string const&)
    ()
#9  0x0814a7e2 in database::file_version_exists(file<hexenc<id> > const&) ()
#10 0x080f3387 in commands::cmd_checkout::exec(app_state&, std::vector<utf8, 
std::allocator<utf8> > const&) ()
#11 0x080a612e in commands::process(app_state&, std::string const&, 
std::vector<utf8, std::allocator<utf8> > const&) ()
#12 0x0829f6af in cpp_main(int, char**) ()
#13 0x082a3b7c in main ()
#14 0x0843fbc9 in __libc_start_main (main=0x82a39f6 <main>, argc=5,
    ubp_av=0xbffffbb4, init=0x843fce0 <__libc_csu_init>,
    fini=0x843fd40 <__libc_csu_fini>, rtld_fini=0, stack_end=0x8fdc0f0)
    at ../sysdeps/generic/libc-start.c:152
(gdb) cont
Continuing.

Program received signal SIGINT, Interrupt.
_int_malloc (av=0x8630360, bytes=140706656) at malloc.c:3917
3917    in malloc.c
(gdb) bt
#0  _int_malloc (av=0x8630360, bytes=140706656) at malloc.c:3917
#1  0x08467889 in __libc_malloc (bytes=112) at malloc.c:3292
#2  0x0830d9a8 in sqlite3MallocRaw (n=140706656, doMemManage=1)
    at sqlite/util.c:590
#3  0x0830da7e in sqlite3Malloc (n=140706656, doMemManage=140706656)
    at sqlite/util.c:658
#4  0x08383fb3 in allocateCursor (p=0x8630360, iCur=112, iDb=140706656)
    at sqlite/vdbe.c:191
#5  0x08384cfc in sqlite3VdbeExec (p=0x8cca780) at sqlite/vdbe.c:2587
#6  0x0830f02f in sqlite3_step (pStmt=0x8630360) at sqlite/vdbeapi.c:231
#7  0x0814402b in database::fetch(std::vector<std::vector<std::string, 
std::allocator<std::string> >, std::allocator<std::vector<std::string, 
std::allocator<std::string> > > >&, int, int, query const&) ()
#8  0x08145870 in database::delta_exists(hexenc<id> const&, std::string const&)
    ()
#9  0x0814a7e2 in database::file_version_exists(file<hexenc<id> > const&) ()
#10 0x080f3387 in commands::cmd_checkout::exec(app_state&, std::vector<utf8, 
std::allocator<utf8> > const&) ()
#11 0x080a612e in commands::process(app_state&, std::string const&, 
std::vector<utf8, std::allocator<utf8> > const&) ()
#12 0x0829f6af in cpp_main(int, char**) ()
#13 0x082a3b7c in main ()
#14 0x0843fbc9 in __libc_start_main (main=0x82a39f6 <main>, argc=5,
    ubp_av=0xbffffbb4, init=0x843fce0 <__libc_csu_init>,
    fini=0x843fd40 <__libc_csu_fini>, rtld_fini=0, stack_end=0x8630360)
    at ../sysdeps/generic/libc-start.c:152
(gdb) cont
Continuing.

Program received signal SIGINT, Interrupt.
_int_malloc (av=0x8630360, bytes=140706656) at malloc.c:3872
3872    in malloc.c
(gdb) bt
#0  _int_malloc (av=0x8630360, bytes=140706656) at malloc.c:3872
#1  0x08467889 in __libc_malloc (bytes=112) at malloc.c:3292
#2  0x0830d9a8 in sqlite3MallocRaw (n=140706656, doMemManage=1)
    at sqlite/util.c:590
#3  0x0830da7e in sqlite3Malloc (n=140706656, doMemManage=140706656)
    at sqlite/util.c:658
#4  0x08383fb3 in allocateCursor (p=0x8630360, iCur=112, iDb=140706656)
    at sqlite/vdbe.c:191
#5  0x08384cfc in sqlite3VdbeExec (p=0x8cca780) at sqlite/vdbe.c:2587
#6  0x0830f02f in sqlite3_step (pStmt=0x8630360) at sqlite/vdbeapi.c:231
#7  0x0814402b in database::fetch(std::vector<std::vector<std::string, 
std::allocator<std::string> >, std::allocator<std::vector<std::string, 
std::allocator<std::string> > > >&, int, int, query const&) ()
#8  0x08145870 in database::delta_exists(hexenc<id> const&, std::string const&)
    ()
#9  0x0814a7e2 in database::file_version_exists(file<hexenc<id> > const&) ()
#10 0x080f3387 in commands::cmd_checkout::exec(app_state&, std::vector<utf8, 
std::allocator<utf8> > const&) ()
#11 0x080a612e in commands::process(app_state&, std::string const&, 
std::vector<utf8, std::allocator<utf8> > const&) ()
#12 0x0829f6af in cpp_main(int, char**) ()
#13 0x082a3b7c in main ()
#14 0x0843fbc9 in __libc_start_main (main=0x82a39f6 <main>, argc=5,
    ubp_av=0xbffffbb4, init=0x843fce0 <__libc_csu_init>,
    fini=0x843fd40 <__libc_csu_fini>, rtld_fini=0, stack_end=0x8630360)
    at ../sysdeps/generic/libc-start.c:152
=========================================================================
> You can use strace's -P option to attach it to an already running
> process.  I.e., you can wait for it to hang, and only then start
> strace, with something like 'strace -P <pid of hung mtn>'.  Might be
> useful, might not, depending on what it's actually doing in there...
Ok, tried it, but didn't produce any output...

 Detlef

-- 
Detlef Vollmann   vollmann engineering gmbh
Linux and C++ for Embedded Systems    http://www.vollmann.ch/
Linux for PXA270 Colibri module: http://www.vollmann.ch/en/colibri/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]