Skip to content

cpu100%,stucked in __libc_recvfrom #58

@sgf201

Description

@sgf201

stacktrace
#0 0x0000ffff8ff049cc in __libc_recvfrom (fd=-1, buf=0xffff1c01a170, len=65536, flags=0, addr=..., addrlen=0xffff2affc334) at ../sysdeps/unix/sysv/linux/recvfrom.c:27
27 ../sysdeps/unix/sysv/linux/recvfrom.c: No such file or directory.
(gdb) bt
#0 0x0000ffff8ff049cc in __libc_recvfrom (fd=-1, buf=0xffff1c01a170, len=65536, flags=0, addr=..., addrlen=0xffff2affc334) at ../sysdeps/unix/sysv/linux/recvfrom.c:27
#1 0x0000ffff8f936e84 in readSocket(UsageEnvironment&, int, unsigned char*, unsigned int, sockaddr_storage&) () from ./lib/libgroupsock.so
#2 0x0000ffff8f939ad4 in Groupsock::handleRead(unsigned char*, unsigned int, unsigned int&, sockaddr_storage&) () from ./lib/libgroupsock.so
#3 0x0000ffff8fa0960c in RTPInterface::handleRead(unsigned char*, unsigned int, unsigned int&, sockaddr_storage&, int&, unsigned char&, unsigned char&) () from ./lib/libliveMedia.so
#4 0x0000ffff8fa02a64 in BufferedPacket::fillInData(RTPInterface&, sockaddr_storage&, unsigned char&) () from ./lib/libliveMedia.so
#5 0x0000ffff8fa035e4 in MultiFramedRTPSource::networkReadHandler1() () from ./lib/libliveMedia.so
#6 0x0000ffff8fa0a238 in SocketDescriptor::tcpReadHandler1(int) () from ./lib/libliveMedia.so
#7 0x0000ffff8fa0a2ec in SocketDescriptor::tcpReadHandler(SocketDescriptor*, int) () from ./lib/libliveMedia.so
#8 0x0000ffff8f91b618 in BasicTaskScheduler::SingleStep(unsigned int) () from ./lib/libBasicUsageEnvironment.so
#9 0x0000ffff8f91a78c in BasicTaskScheduler0::doEventLoop(char volatile*) () from ./lib/libBasicUsageEnvironment.so
#10 0x0000ffff8ff9a5d8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<nmedia::RtspClientManager::RtspClientManager(char const*, char const*, std::shared_ptrnmedia::BufferPool, std::function<void (std::shared_ptrnmedia::Buffer)>)::{lambda()#1}> > >::_M_run() () from ./lib/libnmedia.so.1
#11 0x0000ffff8fdc1f9c in ?? () from /lib/aarch64-linux-gnu/libstdc++.so.6
#12 0x0000ffff8fef9624 in start_thread (arg=0xffff8fdc1f80) at pthread_create.c:477
#13 0x0000ffff8fc2f66c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

After running normally for a while, it was suddenly noticed that one of the CPU cores reached 100% usage. After attaching gdb, it was found stuck at this place. Strangely, the fd parameter of recvfrom is -1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions