[M3devel] wrapping postgresql library not enough

Tony Hosking hosking at cs.purdue.edu
Thu Apr 21 05:12:53 CEST 2011


Can you dump all the user threads at this point?  ThreadPosix__DumpEverybody() should do it.  We want to see where the other threads might be.

On Apr 20, 2011, at 10:53 PM, Mika Nystrom wrote:

> Hi again,
> 
> So, as I described before, I wrote a program that wraps all of Critical
> Mass's "postgresql" library (PQ.i3) with Scheduler.DisableSwitching /
> Scheduler.EnableSwitching.  Yes, it seems to have reduced the frequency
> at which my application locks up, but it has not eliminated the lockups.
> 
> User threads, AMD64_LINUX.
> 
> I'm not quite sure what to try next.  How can I find out where malloc
> and free might be used reentrantly, assuming that is the problem?
> 
> There may not be any reliable threading in CM3 anymore.  Possibly it's
> reliable on FreeBSD (without -pthread) but I wouldn't bet money on it.
> 
>     Mika
> 
> (gdb) where
> #0  0x00007f7a8da0102e in ?? () from /lib/libc.so.6
> #1  0x00007f7a8d99eb43 in ?? () from /lib/libc.so.6
> #2  0x00007f7a8d99baab in free () from /lib/libc.so.6
> #3  0x000000000077b08d in PQsendQuery ()
> #4  0x0000000000767c12 in PQSchedulerWrap__PQsendQuery (conn=Cannot access memory at address 0x7f7b848a4298
> )
>    at ../AMD64_LINUX/PQSchedulerWrap.m3:210
> #5  0x0000000000763ce0 in UnsafeDatabase__MyExec (t=Cannot access memory at address 0x7f7b848a4328
> ) at ../src/UnsafeDatabase.m3:92
> #6  0x0000000000764a29 in UnsafeDatabase__ExecM (t=Cannot access memory at address 0x7f7b848a43f8
> ) at ../src/UnsafeDatabase.m3:239
> #7  0x0000000000764cee in UnsafeDatabase__TExecM (t=Cannot access memory at address 0x7f7b848a4528
> ) at ../src/UnsafeDatabase.m3:269
> #8  0x0000000000756638 in DesynchronizedDB__TransSExec (trans=Cannot access memory at address 0x7f7b848a45e8
> ) at ../src/DesynchronizedDB.m3:74
> #9  0x00000000005aeac6 in DBTable_gcoms_ordr_statusMonitor__ScanDirty__Attempt.1014 (finalAttempt=Cannot access memory at address 0x7f7b848a463f
> )
>    at ../AMD64_LINUX/DBTable_gcoms_ordr_statusMonitor.m3 => /home/mika/t/calarm/ratsql/src/TableMonitor.mg:41
> #10 0x00000000005ae639 in DBTable_gcoms_ordr_statusMonitor__ScanDirty (cl=Cannot access memory at address 0x7f7b848a4778
> )
>    at ../AMD64_LINUX/DBTable_gcoms_ordr_statusMonitor.m3 => /home/mika/t/calarm/ratsql/src/TableMonitor.mg:73
> #11 0x00000000005b171e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=Cannot access memory at address 0x7f7b848a4958
> )
>    at ../AMD64_LINUX/DBTable_gcoms_ordr_statusMonitor.m3 => /home/mika/t/calarm/ratsql/src/TableMonitor.mg:469
> #12 0x00000000005b1382 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=Cannot access memory at address 0x7f7b848a4ba8
> )
>    at ../AMD64_LINUX/DBTable_gcoms_ordr_statusMonitor.m3 => /home/mika/t/calarm/ratsql/src/TableMonitor.mg:445
> #13 0x00000000005b0e1c in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=Cannot access memory at address 0x7f7b848a4d58
> )
>    at ../AMD64_LINUX/DBTable_gcoms_ordr_statusMonitor.m3 => /home/mika/t/calarm/ratsql/src/TableMonitor.mg:393
> #14 0x0000000000922eb5 in ThreadPosix__RunThread () at ../src/thread/POSIX/ThreadPosix.m3:1174
> #15 0x00007f7a8d9697b0 in ?? () from /lib/libc.so.6
> #16 0x0000000000000000 in ?? ()
> (gdb) 




More information about the M3devel mailing list