-
Notifications
You must be signed in to change notification settings - Fork 292
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
SSR fails to record QtWebEngine application on ubuntu 22.04 #1013
Comments
FWIW I was able to capture the above QtWebEngine script using glinject 0.4.4. The segfault was happening at the cerr, so I printed to a string instead:
Since 0.4.4 does not have the PLT fixes I changed
Lastly
|
In the master branch |
One other limitation: the above changes are enough for 0.4.4 to work with Ubuntu's python3 package (3.10.6). Trying to use glinject with conda's python (3.10.9) fails, because |
I believe the error I am experiencing is caused by the same issue you just discussed, so I'll include this here. I have been having SSR fail to run any OpenGL application recently (my own, but also external projects like glxgears). I managed to get a backtrace using (gdb) r
Starting program: /usr/bin/glxgears
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7931f8a in std::ostream::sentry::sentry(std::ostream&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff7931f8a in std::ostream::sentry::sentry(std::ostream&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00007ffff7932a0c in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x00007ffff7932ebb in std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff7fb0cd7 in InitGLInject() () from /usr/lib/x86_64-linux-gnu/simplescreenrecorder/libssr-glinject.so
#4 0x00007ffff7fb0ff3 in dlsym () from /usr/lib/x86_64-linux-gnu/simplescreenrecorder/libssr-glinject.so
#5 0x00007ffff775e28e in ?? () from /lib/x86_64-linux-gnu/libGLdispatch.so.0
#6 0x00007ffff7fc947e in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdc38, env=env@entry=0x7fffffffdc48) at ./elf/dl-init.c:70
#7 0x00007ffff7fc9568 in call_init (env=0x7fffffffdc48, argv=0x7fffffffdc38, argc=1, l=<optimized out>) at ./elf/dl-init.c:33
#8 _dl_init (main_map=0x7ffff7ffe2e0, argc=1, argv=0x7fffffffdc38, env=0x7fffffffdc48) at ./elf/dl-init.c:117
#9 0x00007ffff7fe32ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#10 0x0000000000000001 in ?? ()
#11 0x00007fffffffe002 in ?? ()
#12 0x0000000000000000 in ?? () |
I have been told the latest git edition solve the segfault, and suspect the change in 83b8f9f . Perhaps give it a try? |
See also #947 . |
I have a simple python application using PyQt5 (version 5.15.6):
I can enable "Graphics API Visual Indicator" in nvidia-settings and see the FPS indicating that there is a GL context.
I can run the program inside gdb and see it hit the breakpoint in
glXSwapBuffers
.When I run this program using
ssr-glinject
, I see the directory created in/dev/shm
, but it is empty. Other programs that use opengl (using glfw instead of Qt) capture just fine.I am running under X11, not Wayland.
The above is a simplified version of a program that used to work with
ssr-glinject
under Ubuntu 20.04. AFAICT on 20.04 I had built from git at commit c934ae. Building from the same commit on 22.04,ssr-glinject
segfaults.I have tried building both with and without 32-bit glinject and get the same result either way.
It is possible this is related to #843, since QtWebEngine uses parts of chromium. Following the recommendations there, I set both
QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox"
andQTWEBENGINE_GL_TYPE=desktop
butssr-glinject
still does not capture frames from the window.To verify this is not a problem with QtWebEngine, I did try a simple PyQt5 gui that does not use QtWebEngine:
ssr-glinject
also does not capture from this window, but it is no surprise, because I do not think it is using opengl (I see no FPS indicator when I enable "Graphics API Visual Indicator" in nvidia-settings). This is despite seeing that Qt is using gl based on debug logging when I setQT_LOGGING_RULES="*.debug=true;qt.text.font.db=false;qt.qpa.events=false"
:(I have been able to capture other Qt applications in the past with glinject; I do not know what the difference is with this application).
The text was updated successfully, but these errors were encountered: