/sysdeps/unix/sysv/linux/epoll_pwait.c: No such file or directory

1,620 views
Skip to first unread message

sothy shan

<sothy.e98@gmail.com>
unread,
May 31, 2016, 5:28:20 PM5/31/16
to seastar-dev
hello,

I am playing with seastar tcp server. While I am reading data, my application throws a segmentation fault.
Then I checked via gdb:

(gdb) run
Starting program: /home/sothy/work/of1/a.out
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff2dff700 (LWP 19502)]
[New Thread 0x7ffff27ff700 (LWP 19503)]
[New Thread 0x7ffff21ff700 (LWP 19504)]
[New Thread 0x7ffff1bff700 (LWP 19505)]
[New Thread 0x7ffff15ff700 (LWP 19506)]
[New Thread 0x7ffff0fff700 (LWP 19507)]
[New Thread 0x7ffff09ff700 (LWP 19508)]
Hello world

Program received signal SIG34, Real-time event 34.
0x00007ffff44fe6b7 in __GI_epoll_pwait (epfd=3, events=0x7fffffffcea0, maxevents=128, timeout=-1, set=0x6000001da010)
    at ../sysdeps/unix/sysv/linux/epoll_pwait.c:48
48    ../sysdeps/unix/sysv/linux/epoll_pwait.c: No such file or directory.
(gdb) where
#0  0x00007ffff44fe6b7 in __GI_epoll_pwait (epfd=3, events=0x7fffffffcea0, maxevents=128, timeout=-1, set=0x6000001da010)
    at ../sysdeps/unix/sysv/linux/epoll_pwait.c:48
#1  0x000000000041f20b in reactor_backend_epoll::wait_and_process (this=this@entry=0x6000001da000, timeout=timeout@entry=-1,
    active_sigmask=active_sigmask@entry=0x6000001da010) at core/reactor.cc:1790
#2  0x000000000041f381 in wait_and_process (active_sigmask=0x6000001da010, timeout=-1, this=0x6000001da000) at core/reactor.hh:840
#3  reactor::sleep (this=0x6000001da000) at core/reactor.cc:1672
#4  0x0000000000442343 in reactor::run (this=0x6000001da000) at core/reactor.cc:1646
#5  0x00000000004b40c6 in app_template::run_deprecated(int, char**, std::function<void ()>&&) (this=this@entry=0x7fffffffdd90, ac=ac@entry=1,
    av=av@entry=0x7fffffffdfc8, func=func@entry=<unknown type in /home/sothy/work/of1/a.out, CU 0x5f908d, DIE 0x69e6bd>)
    at core/app-template.cc:123
#6  0x00000000004b4afb in app_template::run(int, char**, std::function<future<int> ()>&&) (this=this@entry=0x7fffffffdd90, ac=ac@entry=1,
    av=av@entry=0x7fffffffdfc8, func=func@entry=<unknown type in /home/sothy/work/of1/a.out, CU 0x5f908d, DIE 0x69ee61>)
    at core/app-template.cc:68
#7  0x00000000004b4c9b in app_template::run(int, char**, std::function<future<> ()>&&) (this=this@entry=0x7fffffffdd90, ac=ac@entry=1,
    av=av@entry=0x7fffffffdfc8, func=func@entry=<unknown type in /home/sothy/work/of1/a.out, CU 0x5f908d, DIE 0x69f5f5>)
    at core/app-template.cc:77
#8  0x0000000000411f96 in main (argc=1, argv=0x7fffffffdfc8) at testn4.cc:299

+++++++++++++++++++++++++++
It seems my machine (Ubuntu 14.04, ldd --version
ldd (Ubuntu EGLIBC 2.19-0ubuntu6) 2.19 ) does not have epoll_pwait.c;

The corresponding work rely on seastar normal tcp stack not based DPDK backend.

My question which version glibc seastar supports?

If I am wrong somewhere else, please let me where

Best regards
Sothy

Avi Kivity

<avi@scylladb.com>
unread,
May 31, 2016, 6:05:21 PM5/31/16
to sothy shan, seastar-dev
On 06/01/2016 12:28 AM, sothy shan wrote:
> hello,
>
> I am playing with seastar tcp server. While I am reading data, my
> application throws a segmentation fault.
> Then I checked via gdb:
>
> (gdb) run
> Starting program: /home/sothy/work/of1/a.out
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> [New Thread 0x7ffff2dff700 (LWP 19502)]
> [New Thread 0x7ffff27ff700 (LWP 19503)]
> [New Thread 0x7ffff21ff700 (LWP 19504)]
> [New Thread 0x7ffff1bff700 (LWP 19505)]
> [New Thread 0x7ffff15ff700 (LWP 19506)]
> [New Thread 0x7ffff0fff700 (LWP 19507)]
> [New Thread 0x7ffff09ff700 (LWP 19508)]
> Hello world
>
> Program received signal SIG34, Real-time event 34.

This SIG34 is an internal signal used by seastar, not your segmentation
fault.
Try to create a ~/.gdbinit file like mine:

$ cat ~/.gdbinit
handle SIGUSR1 pass noprint
handle SIGALRM pass noprint
handle SIG34 pass noprint
handle SIG35 pass noprint

then try again, gdb will stop in your application code.

(epoll_wait.c probably comes from libc-dbg, but you don't need it for
normal debugging)
Reply all
Reply to author
Forward
0 new messages