Comments (14)
Hello @chanonly123, I can successfully reproduce your crash. VoxeetSDK isn't compatible with Guard Malloc...
from voxeet-sdk-ios.
Guard malloc is a utility / tool to detect bad memory access immediately as it occurs, and gives early sign of Heap Corruption that may happen down the line in app's session. Without this utility, the app can have a corrupt heap and continue to work "normally" and crash randomly at a later point, giving you no clue what caused the Heap to get corrupted.
We have been struggling with Heap Corruption issues ever since the Voxeet SDK was integrated with our iOS app, and finally we seem to have found the root cause.
I dont think it is about being compatible. It is simply a diagnostic tool which tells where bad memory access is happening. And in this case as soon as you make 2 users join a Voxeet Conference, Guard Malloc forces the app to crash, which means there is some bad memory access involved.
For more details, read this: https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html
from voxeet-sdk-ios.
The issue you are facing is not concerning a leak in memory allocation. Corrupted heap is not involved in the conference creation where it has not even initialized the main native part.
But the crash you are facing now is completely related to the way this tool is working internally in the simulator (please refer to the various issues found via Google). MG is replacing the standard malloc library and due to native linking flags and binary structure, the object layout leads to critical fault leading to unallocated memory access.
It is simply a diagnostic tool but has its own side unmanaged side effects. Not that in our replication tests the app really crashes "before" the 2 users join the conference (!)
Did you try the various elements the documentation gives you if you really want to use this tool?
It is scheduled to have a plan to investigate further on this specific point.
from voxeet-sdk-ios.
Sample app also crashes Guard Malloc turned off, by joining and hanging up continuously 3-4 times.
from voxeet-sdk-ios.
This crash is not related to your memory allocation issue. It is mostly due to the different memory layout of the VM and the physical devices.
A Corrupted heap may not lead to the app having memory leak but crashes. Since those are not reproduced on physical devices, we'll flag them to enhancement and future investigation for the simulator but can't allocate much more right now on it.
from voxeet-sdk-ios.
Also able to make the voxeet sample app crash on real device. Had kept MG off on real device, so that can't be pointed out as the reason ;) Just try 15-20 times join-leave-join and you will be faced with "EXC_BAD_ACCESS" which causes Heap to get corrupted and ultimately will cause the app to crash at random place.
Device: iPhone 5s, iOS 12.1, Voxeet v1.2.9
from voxeet-sdk-ios.
So it has nothing to do with the leak that you were referring previously. Please take care not to mix issues ^^
The issue is interesting in this case, we have seen a possible async/barrier call. This is the typical example where MG can not help. Please keep posting this kind of issues, the logs that the screenshot show are extremely useful here. Thanks for the share
We are looking into it. We don't have any ETA but we should have more information soon :)
from voxeet-sdk-ios.
To be more precise with your first issue with Guard Malloc, WebRTC uses a custom malloc and isn't compatible with this Xcode tool.
That's why it crashes when a conference is started.
from voxeet-sdk-ios.
Just to let you know that we also use Tokbox lib which also uses WebRTC lib. We tested on simulator with Guard Malloc turned on, and it runs smoothly without any crash.
from voxeet-sdk-ios.
(it's because of our compilation)
from voxeet-sdk-ios.
(but we taking a look to double check)
For now we are still on yesterday problems.
from voxeet-sdk-ios.
To confirm but tokbox may be using outdated of different flavored version of the various libraries in the compilation tree. Google and GM compatibility have a lot of interesting results about its internal stability.
The whole new trace tool provided in XCode is very powerful and does not have the random side effects the GM tools have.
We have provided you trace from our various tests, it would be really great to have feedback from your side with your own traces
from voxeet-sdk-ios.
@chanonly123 Guard Malloc is compatible with the next release (v1.3.0 today) :)
It wasn't compatible with our previous WebRTC version.
from voxeet-sdk-ios.
Simulator is more stable with the latest release (1.3.2).
All issues from this post should be patched, thank you for your reports :)
from voxeet-sdk-ios.
Related Issues (20)
- Voxeet SDK - For iOS 14 HOT 2
- Not updated podspec HOT 4
- ใ3D Audioใis doesn't work? HOT 3
- Stop unwanted debug logs in version 3.0.0 HOT 2
- Stop unwanted logs version 3.0.0 HOT 1
- Failed to compile project on Bitrise HOT 2
- v3.1.0-beta.2 - Frameworks HOT 13
- VoxeetSDK crashes the debugger HOT 3
- Unable to compile application for iOS simulator running on Intel using Xcode 12.5/Swift 5.4 HOT 4
- iOS device can't call some android device HOT 3
- Network monitoring HOT 1
- Installing VoxeetSDK and VoseetUXKit with Swift Package Manager HOT 1
- dolbyVoice conference issue when joining with disabled audio HOT 9
- Deinitialiaze VoxeetSDK HOT 3
- is there any ios screen sharing sample project using voxeet-sdk ? HOT 4
- Is there a way to determine which participants are currently speaking? HOT 2
- activeParticipants feature is missing from latest release HOT 4
- VTConferenceDelegate: statusUpdated delegate incorrect method signature when using Xcode code completion.
- Application crashes when user joins with Audio enabled HOT 8
- Error when trying to unmute local participants HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from voxeet-sdk-ios.