On 05/27/11 05:16, Adriano dos Santos Fernandes wrote:
> Hi!
>
> I got a crash running this test against current 2.5 branch in
> super-classic mode. I can't reproduce it anymore.
>
> Here is what I got. "xdrs" points to freed memory.
>
> ------------
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7ffff28cc700 (LWP 5640)]
> 0x000000000042960d in inet_putbytes (xdrs=0x7ffff7fc4e08,
> buff=0x7ffff28cb94c "", count=4) at ../src/remote/inet.cpp:2798
> 2798 *xdrs->x_private++ = *buff++;
> (gdb) bt
> #0 0x000000000042960d in inet_putbytes (xdrs=0x7ffff7fc4e08,
> buff=0x7ffff28cb94c "", count=4) at ../src/remote/inet.cpp:2798
> #1 0x0000000000429679 in inet_putlong (xdrs=0x7ffff7fc4e08,
> lp=0x7ffff28cb97c) at ../src/remote/inet.cpp:2818
> #2 0x00000000004343e2 in xdr_enum (xdrs=0x7ffff7fc4e08,
> ip=0x7ffff7fc4290) at ../src/remote/xdr.cpp:337
> #3 0x000000000042cff9 in xdr_protocol (xdrs=0x7ffff7fc4e08,
> p=0x7ffff7fc4290) at ../src/remote/protocol.cpp:271
> #4 0x0000000000428e08 in send_full (port=0x7ffff7fc4ce8,
> packet=0x7ffff7fc4290) at ../src/remote/inet.cpp:2438
> #5 0x0000000000432c68 in rem_port::send (this=0x7ffff7fc4ce8,
> pckt=0x7ffff7fc4290) at ../src/remote/remote.cpp:661
> #6 0x000000000040b195 in rem_port::disconnect (this=0x7ffff7fc3790,
> sendL=0x7ffff7fc3a18, receiveL=0x7ffff7fc3e28) at
> ../src/remote/server.cpp:1676
> #7 0x000000000040ee36 in process_packet (port=0x7ffff7fc3790,
> sendL=0x7ffff7fc3a18, receive=0x7ffff7fc3e28, result=0x7ffff28cbdc0) at
> ../src/remote/server.cpp:3357
> #8 0x0000000000412157 in loopThread () at ../src/remote/server.cpp:5212
> #9 0x00007ffff725e60c in (anonymous namespace)::ThreadArgs::run
> (this=0x7ffff28cbe50) at ../src/jrd/ThreadStart.cpp:128
> #10 0x00007ffff725e68d in (anonymous namespace)::threadStart
> (arg=0x7ffff7f70e80) at ../src/jrd/ThreadStart.cpp:139
> #11 0x00007ffff6da4d8c in start_thread () from
> /lib/x86_64-linux-gnu/libpthread.so.0
> #12 0x00007ffff610b04d in clone () from /lib/x86_64-linux-gnu/libc.so.6
> #13 0x0000000000000000 in ?? ()
> (gdb) print buff
> $1 = (const SCHAR *) 0x7ffff28cb94c ""
> (gdb) print xdrs
> $2 = (XDR *) 0x7ffff7fc4e08
> (gdb) print *xdrs
> $3 = {x_op = 3735928559, x_ops = 0xdeadbeefdeadbeef, x_public =
> 0xdeadbeefdeadbeef <Address 0xdeadbeefdeadbeef out of bounds>, x_private
> = 0xdeadbeefdeadbeef <Address 0xdeadbeefdeadbeef out of bounds>,
> x_base = 0xdeadbeefdeadbeef <Address 0xdeadbeefdeadbeef out of
> bounds>, x_handy = 8191}
> ------------
Adriano, do you have core file for it? If yes - please send traces for
all threads.
*xdrs here is part of rem_port class (not pointer, structure itself!)
i.e. looks like some other thread is destroying port at the same time.
------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery,
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now.
http://p.sf.net/sfu/quest-d2dcopy1
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel