@MasDjo
Quote:
(23/08/08 16:11:44) accept_client(): thread started...
*** glibc detected *** /usr/local/bin/gbilling-server: double free or corruption (out): 0x084eb310 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7445a85]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb74494f0]
/usr/lib/libsqlite3.so.0(sqlite3_free+0x4e)[0xb755308e]
/usr/local/bin/gbilling-server[0x8050343]
/usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x4f)[0xb7683aff]
saya tidak pernah mendapatkan error ini, @monde juga sdh mengatakan kalo dia tidak mengalami ini pada pengaturan item, tidak ada kode yang bisa membuat ini di sub-code pengaturan item.
double free or corruption adalah memory corruption akibat dynamic memory telah di lepas (free) lebih dari sekali.. biasanya dynamic memory allocation di C menggunakan malloc() ato calloc(). ini kemungkinan besar bug dari sqlite mengingat sqlite memakai ANSI C (libc)
Code:
/usr/lib/libsqlite3.so.0(sqlite3_free+0x4e)[0xb755308e]
dari fungsi sqlite3_free()... makanya jika
export MALLOC_CHECK_=0 di aktifkan, program tidak lagi me-respond signal SIGABORT dari kernel (kernel akan mengirim signal ini krn memory corruption), default handler SIGABORT adalah menutup program. Tapi hati2 dengan option ini, karena semakin banyak memory corruption.. bisa mengakibatkan SIGSEGV (segmentation vault) dan ini tidak bisa di handle lagi... lebih baik mengoreksi BUG tsbt..
