Coder Social home page Coder Social logo

Comments (11)

Seeker14491 avatar Seeker14491 commented on August 16, 2024

No idea what caused the issue. It does seem dbus related given that backtrace, but I don't have any dbus internals expertise that would give me an idea of why this crash happened. Given that the original issue was resolved by reinstalling Arch, I'm going to assume it was some issue with the Arch install, and will close this issue.

from opener.

qu1ck avatar qu1ck commented on August 16, 2024

I believe root cause of the crash is statically linked dbus lib. See more here
https://internals.rust-lang.org/t/global-symbols-from-statically-linked-system-libraries/19954

It causes some global variables to not be initialized correctly which could manifest into a crash with a stack trace above.

Is there any reason why you use vendored feature here?

dbus = { version = "0.9", optional = true, features = ["vendored"] }

My understanding is that without it the lib will be not be statically linked so it may solve the above crash. Would it create other problems?

from opener.

Seeker14491 avatar Seeker14491 commented on August 16, 2024

The reason for using the vendored feature is to avoid needing dbus's usual dependencies to both build opener, and run executables that use opener.

from opener.

qu1ck avatar qu1ck commented on August 16, 2024

I don't understand how static linking helps avoid any dependencies. Doesn't the other end of what dbus talks to need dbus dependencies anyway?

Can you make it optional at least?

from opener.

Seeker14491 avatar Seeker14491 commented on August 16, 2024

On the development side, the vendored feature avoids needing dbus's library dependencies for compiling the library. On the user side, the vendored feature lets them run the built binaries, even if they lack the dbus runtime library (though that's rare). In that case the dbus functionality won't work, but they can still run the program.

I can make the vendored dbus feature optional, by adding a new feature flag to opener that controls it. I think I can also keep vendoring as the default, and therefore avoid making this a breaking change.

from opener.

qu1ck avatar qu1ck commented on August 16, 2024

I can make the vendored dbus feature optional, by adding a new feature flag to opener that controls it. I think I can also keep vendoring as the default, and therefore avoid making this a breaking change.

That would resolve the issue for me.

from opener.

Seeker14491 avatar Seeker14491 commented on August 16, 2024

Alright, I implemented this in a9dc2ee. It's technically a breaking change though if someone was using default-features = false for some reason. There's another unrelated PR I want to resolve (#28), then I plan on making a release.

As for the true underlying issue, if it's a Rust or Cargo bug we should open an issue in the appropriate place, if one hasn't been made.

from opener.

qu1ck avatar qu1ck commented on August 16, 2024

I'm not well versed enough in linker intricacies to file proper bug report with reproducible example, I'm just going off Nvidia engineer's analysis in the rust-lang forum thread I linked above. That thread just got closed for inactivity, sadly.

If it helps, I believe the whole investigation started from this webkitgtk bug report https://bugs.webkit.org/show_bug.cgi?id=261874#c57 (link to nvidia driver dev's comment explaining crash in my app)

from opener.

Seeker14491 avatar Seeker14491 commented on August 16, 2024

I've released opener v0.7.0.

from opener.

username227 avatar username227 commented on August 16, 2024

Please note that with the new version, the program will only render properly when started WITHOUT the environment variable contained in the .desktop file.
If I start the latest commit with the .desktop file then it renders a white screen.
Therefore, please push out a corrected desktop file. If the aur pkgbuild needs updating, i can do the same thing as last time, just tell me the direct download link to use in the pkgbuild.
Thanks.

from opener.

qu1ck avatar qu1ck commented on August 16, 2024

@username227 please open an issue for that on TrguiNG issue tracker, it is not relevant to this repo.

from opener.

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.