Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

INTEGRATION_load_unload_ogre_gl3plus test fails on gz_rendering-ci-pr_any-noble-amd64 #1007

Closed
iche033 opened this issue May 30, 2024 · 4 comments
Assignees
Labels
bug Something isn't working

Comments

@iche033
Copy link
Contributor

iche033 commented May 30, 2024

Environment

  • OS Version: Ubuntu Noble 24.04

  • Source or binary build? source build, main branch (gz-rendering9)

    • Rendering plugin: ogre.

Description

INTEGRATION_load_unload_ogre_gl3plus test is failing on gz_rendering-ci-pr_any-noble-amd64 CI

The test passes on Ubuntu Jammy on github actions and jenkins

Output

CI console output

39:  GZ_ENGINE_TO_TEST=ogre
39:  GZ_ENGINE_BACKEND=gl3plus
39: Test timeout computed to be: 240
39: Running main() from /home/jenkins/workspace/gz_rendering-ci-pr_any-noble-amd64/gz-rendering/test/gtest_vendor/src/gtest_main.cc
39: [==========] Running 1 test from 1 test suite.
39: [----------] Global test environment set-up.
39: [----------] 1 test from LoadUnloadTest
39: [ RUN      ] LoadUnloadTest.Thread
 39/132 Test  #39: INTEGRATION_load_unload_ogre_gl3plus .................***Exception: SegFault  0.63 sec
@iche033 iche033 added the bug Something isn't working label May 30, 2024
@Blast545
Copy link
Contributor

🧑‍🌾 This is also affecting main noble jobs, see:
https://build.osrfoundation.org/job/gz_rendering-ci-main-noble-amd64/6/

@iche033
Copy link
Contributor Author

iche033 commented Jul 17, 2024

I was able to reproduce the issue on Ubuntu Noble with ogre 1.9.0 debs but I haven't found a fix for it yet. Some observations:

  • Test is designed to verify rendering works in a separate thread. Crash happens when the rendering (ogre) thread exists. No errors when deleting and cleaning up gz-rendering / ogre resources.
  • gdb points to std::thread::join here in the test but does not have any other suspicious traces.
  • Commenting out the call to delete ogre root made the test pass but that's not ideal.
  • When testing with ogre 1.9.0 built from source (with the same cmake args as ones used to build the debs), the test passes.

@azeey azeey moved this from Inbox to In progress in Core development Jul 22, 2024
@iche033
Copy link
Contributor Author

iche033 commented Aug 9, 2024

When testing with ogre 1.9.0 built from source (with the same cmake args as ones used to build the debs), the test passes.

I missed a few compile flags last time and now have found the one that caused the crash: -flto=auto. Running the test with ogre 1.9 built with this flag will reliably make the test fail. It seems to be related to the RenderSystem_GL.so plugin. If you comment out the call to unload (dlclose) the plugin, test does not crash when thread exists.

@iche033
Copy link
Contributor Author

iche033 commented Aug 27, 2024

merged workaround in #1033

@iche033 iche033 closed this as completed Aug 27, 2024
@github-project-automation github-project-automation bot moved this from In progress to Done in Core development Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Archived in project
Development

No branches or pull requests

2 participants