Coder Social home page Coder Social logo

Comments (4)

alexkalmuk avatar alexkalmuk commented on June 10, 2024

For the CLI version, it doesn't crash and even collects some events, but it seems that the symbols are loaded only from ELF file but not from the shared libraries. I'll try to dig a bit deeper into that issue with the crash.

from orbit.

florian-kuebler avatar florian-kuebler commented on June 10, 2024

Interesting. We used to profile Orbit itself with Orbit (also quite recently), so I am a bit surprised. I remember some issues shared libraries, when passing the wrong flags to the dlopen call, but not sure if this is relevant.

I assume the crash does manifest in a stall in a non-debug build? In general, would be interesting to see what the other threads are doing.

We've also seen issues in the past, when the target has too many modules. You might want to try disabling auto-symbol loading (start with --auto_symbol_loading=false) and load symbols manually.

it seems that the symbols are loaded only from ELF file but not from the shared libraries.

It should be possible to open the capture in the UI version afterwards and then load the symbols (right-click on the module, in case auto-symbol loading does not work).

from orbit.

alexkalmuk avatar alexkalmuk commented on June 10, 2024

I remember some issues shared libraries, when passing the wrong flags to the dlopen call, but not sure if this is relevant.

It's hard to say so far, but at least it seems that the deadlock happens on different libraries at different moments of time.

I assume the crash does manifest in a stall in a non-debug build?

I'm using debug build: -DCMAKE_BUILD_TYPE=Debug.

In general, would be interesting to see what the other threads are doing.

Agree, I'll take a look into gdb in the evening. After brief examination yesterday, it seems that Orbit allocates one thread from thread pool per one shared library to load symbols, so these threads are running in parallel. And, at some moment, the deadlock happens. But I'll double check and see at which states all the threads are.

from orbit.

alexkalmuk avatar alexkalmuk commented on June 10, 2024

I'm still debugging/reading the code. That's something weird around the mutex in ScheduleAfterIfSuccess (Executor.h)
But here, as I promised, are threads and stack traces (the current thread has ID 32):
threads_bt.txt
threads_info.txt

P.S.
By the way, it seems that this deadlock verification is only enabled in debug version of absl, so I'm not sure if this issue is reproduced in the Release version.

from orbit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.