Giter Site home page Giter Site logo

Comments (14)

VTCoco avatar VTCoco commented on July 30, 2024

Hello @chanonly123, I can successfully reproduce your crash. VoxeetSDK isn't compatible with Guard Malloc...

from voxeet-sdk-ios.

chanonly123 avatar chanonly123 commented on July 30, 2024

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.

codlab avatar codlab commented on July 30, 2024

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.

chanonly123 avatar chanonly123 commented on July 30, 2024

ezgif com-video-to-gif
Screenshot 2019-03-11 at 7 11 45 PM

Sample app also crashes Guard Malloc turned off, by joining and hanging up continuously 3-4 times.

from voxeet-sdk-ios.

codlab avatar codlab commented on July 30, 2024

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.

chanonly123 avatar chanonly123 commented on July 30, 2024

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

Screenshot 2019-03-11 at 7 35 38 PM

from voxeet-sdk-ios.

codlab avatar codlab commented on July 30, 2024

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.

VTCoco avatar VTCoco commented on July 30, 2024

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.

chanonly123 avatar chanonly123 commented on July 30, 2024

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.

VTCoco avatar VTCoco commented on July 30, 2024

(it's because of our compilation)

from voxeet-sdk-ios.

VTCoco avatar VTCoco commented on July 30, 2024

(but we taking a look to double check)
For now we are still on yesterday problems.

from voxeet-sdk-ios.

codlab avatar codlab commented on July 30, 2024

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.

VTCoco avatar VTCoco commented on July 30, 2024

@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.

VTCoco avatar VTCoco commented on July 30, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.