Thanks for the response.

Until now I just used GDB, cause is easy on Meson.  I will try with
Valgrind, but I will be slow until I find a way to reproduce the problem.

Just take the desition to report this bug, because just the issue trace the
fault deeply in the SQLite secuence of destruction, but any way, I will
check if the issue is in related on multi-threading destruction in GDA.

El mié., 10 de octubre de 2018 5:46, Richard Hipp <d...@sqlite.org> escribió:

> On 10/9/18, Daniel Espinosa <eso...@gmail.com> wrote:
> > I'm current maintainer of GDA[1], I've updated embbeded version of SQLite
> > to 3.25.2, but I found an issue with a segfault due to a "corrupted
> > double-linked list".
>
> Heap corruption like this is most often the result of bugs in the
> application and SQLite just happened to be the unlucky library to
> first stumble over it.  Have you tried running your test under
> valgrind, or some other memory validator, to locate the origin of the
> error?  Does the error originate with SQLite, or in some other part of
> the application?
>
>
> >
> > In order to reproduce it:
> >
> > a) Checkout libgda from its respository[1]
> >
> > b) compile using its meson:
> > $ meson _build
> > $ cd _build
> > $ ninja
> > $ meson test Virtual --repeat 100 --gdb
> >
> > Last command runs a unit tests called Virtual, it run it 100 times in a
> GDB
> > session, you may need to repeat the operation or increase number upto 200
> > times.
> >
> > GDB will stop at segfault.
> >
> > This is the latest backtrace:
> >
> > corrupted double-linked list
> >
> > Thread 1 "check_virtual" received signal SIGABRT, Aborted.
> > __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
> > 51    ../sysdeps/unix/sysv/linux/raise.c: No existe el archivo o el
> > directorio.
> > Una sesión de depuración está activa.
> >
> >     Inferior 1 [process 16743] will be killed.
> >
> > ¿Salir de cualquier modo? (y or n) n
> > No confirmado.
> > (gdb) bt
> > #0  0x00007ffff701de97 in __GI_raise (sig=sig@entry=6) at
> > ../sysdeps/unix/sysv/linux/raise.c:51
> > #1  0x00007ffff701f801 in __GI_abort () at abort.c:79
> > #2  0x00007ffff7068897 in __libc_message (action=action@entry=do_abort,
> > fmt=fmt@entry=0x7ffff7195b9a "%s\n")
> >     at ../sysdeps/posix/libc_fatal.c:181
> > #3  0x00007ffff706f90a in malloc_printerr (str=str@entry=0x7ffff7193cba
> > "corrupted double-linked list")
> >     at malloc.c:5350
> > #4  0x00007ffff706fac4 in malloc_consolidate (av=av@entry
> =0x7fffe4000020)
> > at malloc.c:4456
> > #5  0x00007ffff707703b in _int_free (have_lock=0, p=<optimized out>,
> > av=0x7fffe4000020) at malloc.c:4362
> > #6  0x00007ffff707703b in __GI___libc_free (mem=0x7fffe404d000) at
> > malloc.c:3124
> > #7  0x00007ffff7a749d3 in sqlite3MemFree (pPrior=0x7fffe404d008)
> >     at ../libgda/sqlite/sqlite-src/sqlite3.c:22612
> > #8  0x00007ffff7a755b4 in sqlite3_free (p=0x7fffe404d008) at
> > ../libgda/sqlite/sqlite-src/sqlite3.c:26528
> > #9  0x00007ffff7a84566 in pcache1EnforceMaxPage (pCache=0x7fffe4082f48)
> >     at ../libgda/sqlite/sqlite-src/sqlite3.c:48783
> > #10 0x00007ffff7a84fdc in pcache1Destroy (p=0x7fffe4082f48) at
> > ../libgda/sqlite/sqlite-src/sqlite3.c:49322
> > #11 0x00007ffff7a83761 in sqlite3PcacheClose (pCache=0x7fffe40085d8)
> > #12 0x00007ffff7a891ab in sqlite3PagerClose (pPager=0x7fffe40084a8,
> > db=0x7fffe409a408)
> >     at ../libgda/sqlite/sqlite-src/sqlite3.c:54278
> > #13 0x00007ffff7a94fae in sqlite3BtreeClose (p=0x7fffe40775b8) at
> > ../libgda/sqlite/sqlite-src/sqlite3.c:65325
> > #14 0x00007ffff7b22acb in sqlite3LeaveMutexAndCloseZombie
> > (db=0x7fffe409a408)
> >     at ../libgda/sqlite/sqlite-src/sqlite3.c:152945
> > #15 0x00007ffff7b229eb in sqlite3Close (db=0x7fffe409a408, forceZombie=0)
> >     at ../libgda/sqlite/sqlite-src/sqlite3.c:152888
> > #16 0x00007ffff7b22a0f in sqlite3_close (db=0x7fffe409a408) at
> > ../libgda/sqlite/sqlite-src/sqlite3.c:152901
> > #17 0x00007ffff7a69ff0 in gda_sqlite_free_cnc_data (cdata=0x7fffe407de20)
> >     at ../libgda/sqlite/gda-sqlite-provider.c:4209
> > #18 0x00007ffff7a23817 in stage2_close_connection (cnc=0x7fffe40089f0,
> > result=0x1)
> >     at ../libgda/gda-server-provider.c:2286
> > #19 0x00007ffff7a23a33 in _gda_server_provider_close_connection
> > (provider=0x7fffe40656d0, cnc=0x7fffe40089f0, error=0x0) at
> > ../libgda/gda-server-provider.c:2343
> > #20 0x00007ffff79a90be in gda_connection_close (cnc=0x7fffe40089f0,
> > error=0x0)
> >     at ../libgda/gda-connection.c:1547
> > #21 0x00007ffff7b26d4c in gda_vconnection_data_model_dispose
> > (object=0x7fffe40089f0)
> >
> > --
> > This electronic message may contain privileged and confidential
> information
> > intended only for the use of the addressees named above.  If you are not
> > the intended recipient of this email, we kindly ask you to delete this
> > message and any attachment. You are hereby notified that any use,
> > dissemination, distribution, reproduction of this email is prohibited.
> If
> > you have received this email in error, please notify sender immediately.
> >
> > Any document, image or any other form of electronic representation of any
> > work attached to this email, is suitable to be protected by copyright
> > enforcement by applicable law in your or sender's Country's and
> > International Legislation
> >
> > Trabajar, la mejor arma para tu superación
> > "de grano en grano, se hace la arena" (R) (en trámite, pero para los
> > cuates: LIBRE)
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
> --
> D. Richard Hipp
> d...@sqlite.org
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to