mirror of
https://github.com/mumble-voip/mumble.git
synced 2026-03-03 00:46:56 -05:00
1.4.0 snapshot 6 crashes because of opus.dll #2274
Labels
No labels
GlobalShortcuts
Hacktoberfest
accessibility
acl
asio
audio
bonjour
bsd
bug
build
certificate
ci
client
code
documentation
external-bug
feature-request
gRPC
github
good first issue
help wanted
help-needed
ice
installer
linux
macOS
needs-ckeck-with-latest-version
needs-more-input
overlay
positional audio
priority/P0 - Blocker
priority/P1 - Critical
priority/P2 - Important
priority/P3 - Somewhat important
priority/P4 - Low
public-server-registration
qt
recording
release-management
server
stale-no-response
stale-support
support
task
test
theme
translation
triage
ui
windows
wontfix
x64
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/mumble-mumble-voip#2274
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ViBE-HU on GitHub (Aug 4, 2021).
Originally assigned to: @davidebeatrici on GitHub.
Describe the bug
Referring to this I opened this issue. So if I'm not wrong 1.3.4 stable version uses Opus codec already and that build runs without any issue. I directly changed from that to the new snapshot and this build instantly crash when I start Mumble.
Steps to Reproduce
Steps to reproduce the behavior:
Expected behavior
It should run.
Desktop (please complete the following information):
Additional context
The affected machine is a Lenovo ThinkPad R61. It is an upgraded oddware with a Penryn based Intel Core 2 Duo T9300. While the motherboard is Meron based the only difference in specs is the SSE4.1 capability.
@Kissaki commented on GitHub (Aug 6, 2021):
When the crash occurs the Mumble crash reporter opens and you submitted a crash report?
@Kissaki commented on GitHub (Aug 6, 2021):
If you can provide a stacktrace here that could be helpful too as a starting point for anyone looking into this.
@Krzmbrzl commented on GitHub (Aug 6, 2021):
Quoting from #4932:
The error log is
which google-translates to
Error code 0xc000001d seems to be "Illegal instruction" (see https://stackoverflow.com/questions/44231673/debugging-0xc000001d-exception-with-windbg) meaning that your CPU does not support some instruction that seems to be used inside the Opus library.
From this post it seems that this is probably because on the machine we build our windows bianries there are some CPU instructions that are not available on your computer and therefore it fails.
I think in order to figure out how to proceed with this, we'll have to figure out what instruction is the issue exactly.
@Kissaki or @davidebeatrici does one of you have experience with figuring this out based on the given memory address? 🤔
@ViBE-HU commented on GitHub (Aug 6, 2021):
yes it opens but @Krzmbrzl told that feature is dead. so i did not sent the report.
@Kissaki commented on GitHub (Aug 9, 2021):
If it’s actually CPU instructions compiled with but not supported my first suspect would be the SSE/SSE2 extensions.
As you asked for it, my assumptions would be as follows:
if
Error position: 0x000000000001f350indicates the memory or dll offset (which may be the same), then it should be discoverable while running, with a debugger, or maybe even from the dll itself.A stacktrace may be very helpful though to get the function (maybe even the context may be useful) that contains the unsupported CPU instruction. Given that no stacktrace was posted above, the dump - which contains the stacktrace - would be very helpful to debug it - especially with the instruction pointer at the correct address already, which should simplify discovery.
What kind of CPU are you using @ViBE-HU ?
The easiest approach may be to check the CPU for supported CPU instruction sets and simply compile a test version for ViBE to try out without it. As I said before, if this is actually the issue, SSE2 seems very likely (which has been common for a long time, but may still be missing on still used older CPUs). Otherwise, we should be able to discover which instruction sets are supported and not supported here.
@ViBE-HU commented on GitHub (Aug 9, 2021):
i mentioned in the additional infos that the CPU is an Intel Core 2 Duo T9300.
@davidebeatrici commented on GitHub (Aug 9, 2021):
Reproduced on an Arrandale Intel Core i5.
Opus is probably attempting to use the AVX instruction set because it relies on what the machine it is compiled on supports.
@davidebeatrici commented on GitHub (Aug 9, 2021):
@ViBE-HU The binary built from CI in #5229 should work.
@ViBE-HU commented on GitHub (Aug 9, 2021):
cool. do i have to test?
@davidebeatrici commented on GitHub (Aug 9, 2021):
That would be great, thanks!
@ViBE-HU commented on GitHub (Aug 10, 2021):
where can i download the Windows x64 build?
@davidebeatrici commented on GitHub (Aug 10, 2021):
https://dev.azure.com/Mumble-VoIP/Mumble/_build/results?buildId=5158&view=artifacts&pathAsName=false&type=publishedArtifacts
@ViBE-HU commented on GitHub (Aug 10, 2021):
it's working. thanks. but i had to start it for a few times. first it started with english without any error messages. then i changed the language and it won't started automatically. i tried to start it again but nothing happened. i checked the the task manager and looks like the application does not even stopped. it was stuck in the background and generated an event in the system log because of the mumble_app.dll as i mentioned before. if i kill the process the application will starts normally with the selected language.
the actual log:
@Krzmbrzl commented on GitHub (Aug 10, 2021):
I think what you are seeing now is #4932