Recent

Author Topic: SIGSEGV mit libfbclient 3, libfbclient 2.5 works ok  (Read 806 times)

grl

  • New Member
  • *
  • Posts: 40
SIGSEGV mit libfbclient 3, libfbclient 2.5 works ok
« on: March 07, 2020, 12:03:08 am »
Hi!
I have linux console program using libfbclient.so to access a Firebird database server.

Using a client library from Firebird 2.5 everything works fine.
When using a client library from Firebird 3 i get a SIGSEGV after my program finishes somewhere in the depths of the freepascal finalization...

I also tried using different Firebird components - same error with UIB and with UNIDac.

using gdb I could get the following backtrace:
Code: [Select]
#0  0x00007ffff77d23d8 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#1  0x00007ffff77476f5 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#2  0x00007ffff77493f6 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#3  0x00007ffff77228b3 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#4  0x00007ffff7723585 in fb_shutdown () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#5  0x00007ffff77da2d2 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#6  0x00007ffff77da429 in ?? () from /usr/lib/x86_64-linux-gnu/libfbclient.so
#7  0x00007ffff7dfad8c in __run_exit_handlers (status=0, listp=0x7ffff7f7c718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#8  0x00007ffff7dfaeba in __GI_exit (status=<optimized out>) at exit.c:139
#9  0x00007ffff7de50a2 in __libc_start_main (main=0x0, argc=0, argv=0x0, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x0) at ../csu/libc-start.c:342
#10 0x0000000000000000 in ?? ()

Anyone else with this problem?
Anyone an idea how to proceed?

regards
Lukas

datiscum

  • Newbie
  • Posts: 6
Re: SIGSEGV mit libfbclient 3, libfbclient 2.5 works ok
« Reply #1 on: March 07, 2020, 09:51:19 am »
I don't understand why it should only happen on exit, but have you checked the dependencies of libfbclient.so ?
Ubuntu and debian do not have the original libfbclient3.so dependencies. Maybe that's why the NULL address.

ldd libfbclient.so
        linux-vdso.so.1 (0x00007ffc67152000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fcce74c9000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcce72c5000)
        libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007fcce70a2000)
        libtommath.so.0 => /usr/lib/./../lib/libtommath.so.0 (0x00007fcce6e8b000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcce6b02000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcce6764000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcce654c000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcce632d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcce5f3c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fcce7aad000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fcce5d12000)

grl

  • New Member
  • *
  • Posts: 40
Re: SIGSEGV mit libfbclient 3, libfbclient 2.5 works ok
« Reply #2 on: March 07, 2020, 07:47:04 pm »
Thanks, that helped me to make some progress.

using a libfbclient directly from firebirdsql.org works as expected - I can live with that.

But I still would be interested about the reason why the debian-provided libfbclient.so does not work.
ldd shows some differences, but I still think I met all dependencies.

ldd on the debian library:
Code: [Select]
linux-vdso.so.1 (0x00007ffd323a3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fab316d3000)
libncurses.so.6 => /lib/x86_64-linux-gnu/libncurses.so.6 (0x00007fab316a9000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fab3167b000)
libtommath.so.1 => /usr/lib/x86_64-linux-gnu/libtommath.so.1 (0x00007fab3165d000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fab314d9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fab31356000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fab3133a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fab31319000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fab31158000)
/lib64/ld-linux-x86-64.so.2 (0x00007fab318d0000)

ldd on the library from firebirdsql.org:
Code: [Select]
linux-vdso.so.1 (0x00007ffc178ee000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa4bca1e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa4bca19000)
libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007fa4bc9f3000)
libtommath.so.0 => /usr/lib/x86_64-linux-gnu/libtommath.so.0 (0x00007fa4bc9d5000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa4bc851000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa4bc6ce000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa4bc6b2000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa4bc691000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa4bc4d0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa4bce4c000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fa4bc4a4000)

regards
Lukas

 

TinyPortal © 2005-2018