DataConnectionをnullにしてもSDK内でリファレンスが残る
仲様
もう一つのスレッドではご対応ありがとうございます。話が混乱してしまうかと思い、スレッドを分けさせて頂きます、お忙しいところ恐縮です。
dataConnectionを開いたり破棄したりを繰り返し、長時間ほっておくと止まってしまう問題について調べていたところ、アプリケーション内でdataConnectionをcloseし、すべてのcallbackをnullにして、dataConnection自体をnullにすると、アプリからの参照は正常に破棄されます。
しかしこの後も、SDK内では参照が残りd.c.と共にLooperExecuter(callback用でしょうか)がどんどん増えていって、ガベージコレクションでも解放されず、メモリーリークのような状態になります。
多分これが長時間のうちに止まってしまう原因の少なくとも一つで、アプリケーションをリスタートしなければおかしくなる場合の原因もこの関係ではないかと思います。Android Studioでヒープを確認しているところのスクリーンショットを撮ったので見ていただけないでしょうか。
https://drive.google.com/drive/folders/1KSqbyzojaYqQAbrc2L3aOwIq0C21wmM8
これはアプリ側からはどうしようもない問題なので、ご対処いただけないでしょうか、よろしくお願いします。
渡部
-
peer間のcheckの頻度をものすごく短くして実験してみました、また、ボタンを押したらDataConnectionを開閉するようにして実験しました。現在のアプリでこういこういう速いスピードではいつも決まって90個前後DataConnectionが残るとアプリが落ちます。そこまでいく前に、ガベージコレクションをトリガーしてみるとアプリからの参照は整理されますが、DataConnection,DataConnectionListener,LooperExecuterにはpeerからの参照が残るようで、GCされません。
先にご報告した通り、SKYWAYは詳しいLOGを出してくれないので難しいのですが、こんなエラーが出て止まる場合もあります。webrtcのモジュールがshared memoryを使っていて、ファイル数の上限を超えるのでしょうか。
11-09 18:18:44.683 14665-14725 E/art: ashmem_create_region failed for 'indirect ref table': Too many open files
11-09 18:18:44.683 14665-14725 E/rtc: #
# Fatal error in ../../webrtc/modules/utility/source/helpers_android.cc, line 108
# last system error: 24
# Check failed: attached_
# AttachCurrentThread failed: -1
# -
SKYWAY ご担当者様
上記問題とLOGの深度についてはSDKのバグだと思うのですがご対処いただけないのでしょうか。
以前にも、エンタープライズであればチケットでご対応の旨、伺いましたが、エンタープライズするためにテストをしている間に問題があれば当然エンタープライズに移行したくでもできません。真面目にサービスを開始するために開発をしておりましたが、おかげさまでまともに動きませんのでめどが立ちません。「開発者同士のコミュニティ」とおっしゃいましたが、他にこのSDKについて活発に話しているところもありませんし、英語ソースも非常に少ない状況で、SDKにバグがある可能性を報告させていただいているのに放置されていたら、ユーザーが増えるわけもないと思います。御社は大きな会社ですから、このフォーラムに回答することはみなさんの業務ではない、ということは想像に難くないのですが。
リソースリークを起こしている可能性を示させていただいていてもお返事いただけませんし、さらにそれを回避するためのデバッグログもまともに出してくれませんので(せめてコールバックだけでもちゃんとしていれば、なんとか対処のしようがあるのですが)本当にどうしようもないです。なんとかしていただけないでしょうか。よろしくお願いします。
渡部高士
-
There seems to be potential resource leak problem in Android SDK as I had reported in this post and earlier.
However, the developer team had not been answered for nearly 3 weeks since the last post. This SDK so far is unreliable for many applications but just for video conferencing between a small number of clients. Even for those environments, it is still unreliable, systems could fail to make connections if left for long hours.
IMHO, this system is good to show off what webRTC can do with very short development time. But there are tons of problems like this left unanswered on this forum for all platforms, even in Japanese, there isn't much information on web beyond just 30 minutes video chat app tests. So far, I do not think it is practical to use this in any real-world projects.
If anyone comes here to wonder if this SDK is good for your projects, I'd advice you to look elsewhere.
Takashi
-
> 上記問題とLOGの深度についてはSDKのバグだと思うのですがご対処いただけないのでしょうか。
メモリリークの件、詳細なご報告ありがとうございました。大変助かります。
投稿していただいたエラーログから、SkyWayのSDKが内部で利用しているオープンソースのWebRTCエンジン部分で発生している可能性があります。継続調査いたします。LOGの深度についてですが、別のスレッドで、以前のSDK(v0.2.2まで)と現在のSDK(v1.0.0以降)でLOGの出力内容が変わったということをことを書かれていましたが、そのことでしょうか。
v1.0.0以降はSDKの内部の実装が大きく変わっており、その関係でLOG出力のポイントや内容が変わっています。
以前のSDKのLOG出力内容を考慮しつつ、効率よくデバッグが出来るように、継続して改善していきます。> 「開発者同士のコミュニティ」とおっしゃいましたが、他にこのSDKについて活発に話しているところもありませんし、英語ソースも非常に少ない状況で、SDKにバグがある可能性を報告させていただいているのに放置されていたら、ユーザーが増えるわけもないと思います。御社は大きな会社ですから、このフォーラムに回答することはみなさんの業務ではない、ということは想像に難くないのですが。
SkyWayは、大きな会社の小さなチームで開発・運用しています。フォーラムにサポート回答することも大切な業務の一つですが、ご指摘の通り、後回しになったり、回答しきれない場合があります。Enterprise Editionのチケットサポートは、早急な一次回答ができるという意味でご紹介しましたが、こちらのフォーラムでも、バグの疑いがある問い合わせには順次対応しますのでご安心ください。
コミュニティが活発でない状況は認識しており、SkyWayチームでも、FAQを充実させるなど改善を続けていきます。
-
本日リリースしたv1.0.3で本件の不具合を解消致しました。
https://github.com/skyway/skyway-android-sdk/releases/tag/v1.0.3
ご報告ありがとうございました。
Please sign in to leave a comment.
Comments
7 comments