-
Notifications
You must be signed in to change notification settings - Fork 121
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
[BISECTED] SIGSEV (-11) on gfxrecon::decode::FileProcessor::~FileProcessor
#328
Comments
FWIW, using the commit previous to the one introducing the regression, I also get flaky SIGPIPEs (-13), although I cannot reproduce as consistently. |
gfxrecon::decode::FileProcessor::~FileProcessor
gfxrecon::decode::FileProcessor::~FileProcessor
Apologies for taking so long to respond. I did look into this when it was first submitted, but neglected to update the issue. At the time, I was unable to reproduce the problem with builds from both the dev and master branches. I made the modifications to the FileProcessor destructor and tested with the provided vkcube.gfxr file on a mesa-19.3.3 build. Testing was done with Fedora 31 and Debian Buster. I just tried to reproduce the issue again on Fedora 32 with the If you are able to test again with the latest source from the master branch, could you let me know if you are still experiencing the problem? |
Observed during SDK 1.2.141 .0 testing, using packages on Ubuntu 16.04 with a Radeon R9 285/380 and the
The stack trace shows:
|
As indicated in the previous comment, we are now able to reproduce this issue. The problem happens when the capture file does not contain a call to vkDestroySurfaceKHR. Replay does not currently attempt to destroy Vulkan resources that are still active on exit. For surfaces, when the capture file does not include a vkDestroySurfaceKHR call, the window associated with the surface will be destroyed on exit while the surface is still active. The SIGSEGV then seems to happen after a call to xcb_disconnect. For this case, Valgrind produces multiple messages like the following:
This message seems to be triggered by the call to xcb_disconnect in XcbApplication::~XcbApplication(). Change #389 ensures that surfaces are destroyed before their associated windows are destroyed. This eliminates the errors reported by Valgrind without removing the call to xcb_disconnect and seems to prevent the crash. Support for cleaning up all active Vulkan resources on exit will be added in the future. |
#389 was merged to the dev branch. |
Thanks a lot, @lunarpapillo and @dustin-lunarg ! |
No problem! Thank you for the detailed bug report! |
After:
I get flaky runs with
gfxrecon-replay
.Every now and then, the execution SIGSEVs at
gfxrecon::decode::FileProcessor::~FileProcessor
.From my very quick research, it seems that (at least) the destruction of the
parameter_buffer_
member ends with acorrupted double-linked list
. I could even confirm this by adding manually a:And seeing that the SIGSEV now happens inside the
shrink_to_fit()
call.Platform: Debian GNU/Linux Buster x86_64.
The trace is compressed with LZ4.
Reproduced with
anv
andradv
Mesa Vulkan drivers from locally built tag mesa-19.3.3.BT from gdb: gdb.txt
Trace file: vkcube.gfxr.zip
This is a run example from the source directory:
The text was updated successfully, but these errors were encountered: