Re[2]: [BUGS] Re: [BUGS] Segfault in MemoryContextAlloc - Mailing list pgsql-bugs
| From | Dmitriy Sarafannikov |
|---|---|
| Subject | Re[2]: [BUGS] Re: [BUGS] Segfault in MemoryContextAlloc |
| Date | |
| Msg-id | 1457709032.586784536@f131.i.mail.ru Whole thread Raw |
| In response to | Re: Re: [BUGS] Segfault in MemoryContextAlloc (Tom Lane <tgl@sss.pgh.pa.us>) |
| Responses |
Re: Re[2]: [BUGS] Re: [BUGS] Segfault in MemoryContextAlloc
|
| List | pgsql-bugs |
> Uh, well:
>
> > (gdb) info threads
> > Id Target Id Frame
> > 2 Thread 0x7f0e329d2740 (LWP 46202) 0x00007f0e305e972b in __libc_recv (fd=13, buf=buf@entry=0x7f0e32a1b140
<PqRecvBuffer>,n=n@entry=8192, flags=-1, flags@entry=0)
> > at ../sysdeps/unix/sysv/linux/x86_64/recv.c:33
> > * 1 Thread 0x7f0e32820700 (LWP 46918) MemoryContextAlloc (context=0x0, size=120) at
/build/postgresql-9.4-1wOG_M/postgresql-9.4-9.4.6/build/../src/backend/utils/mmgr/mcxt.c:584
>
> There's not enough information here to disclose what it is that's creating
> a second thread, but you need to find that and make it stop.
Thanks for the answer.
I create new local connection (not via connection pool)
postgres=# select 1;
?column?
----------
1
(1 row)
gdb shows 1 thread
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7f0e329d2740 (LWP 84804) "postgres" 0x00007f0e305e96cd in __libc_recv (fd=13,
buf=buf@entry=0x7f0e32a1b140<PqRecvBuffer>, n=n@entry=8192, flags=-1, flags@entry=0)
at ../sysdeps/unix/sysv/linux/x86_64/recv.c:29
After that i execute something on plv8
postgres=# do $$ plv8.elog(NOTICE, 'bla-bla-bla') $$ language plv8;
NOTICE: bla-bla-bla
DO
And then gdb shows 2 threads:
(gdb) info thread
Id Target Id Frame
2 Thread 0x7f0e32827700 (LWP 85903) "SignalSender" sem_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
* 1 Thread 0x7f0e329d2740 (LWP 84804) "postgres" 0x00007f0e305e972b in __libc_recv (fd=13,
buf=buf@entry=0x7f0e32a1b140<PqRecvBuffer>, n=n@entry=8192, flags=-1, flags@entry=0)
at ../sysdeps/unix/sysv/linux/x86_64/recv.c:33
(gdb) thread 2
[Switching to thread 2 (Thread 0x7f0e32827700 (LWP 85903))]
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
85 ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S: No such file or directory.
(gdb) bt
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
#1 0x00007f0c0ed0544d in v8::internal::LinuxSemaphore::Wait (this=0x7f0c080008c0) at ../src/platform-linux.cc:880
#2 0x00007f0c0ec235d8 in v8::internal::RuntimeProfiler::WaitForSomeIsolateToEnterJS () at
../src/runtime-profiler.cc:452
#3 0x00007f0c0ec23cf8 in WaitForSomeIsolateToEnterJS () at ../src/runtime-profiler.cc:451
#4 v8::internal::RuntimeProfilerRateLimiter::SuspendIfNecessary (this=this@entry=0x7f0e342642dc) at
../src/runtime-profiler.cc:499
#5 0x00007f0c0ed05690 in v8::internal::SignalSender::Run (this=0x7f0e342642b0) at ../src/platform-linux.cc:1160
#6 0x00007f0c0ed053a0 in v8::internal::ThreadEntry (arg=0x7f0e342642b0) at ../src/platform-linux.cc:756
#7 0x00007f0e2ef570a4 in start_thread (arg=0x7f0e32827700) at pthread_create.c:309
#8 0x00007f0e305e887d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
It turns out that plv8 creates thread.
--
Best regards,
Dmitriy Sarafannikov
pgsql-bugs by date: