Abnormal forced applicaion termination in multi-core proces

BLACKSHIP
edited July 2011 in DotNet
While we are developing the games, we faced critical problem.
the problem is as follows


Phone Model : Samsung Galaxy S2(OS : Gingerbread 2.3) , Motorola Atrix (Proyo 2.2)

Unity 3D version : v 3.3

Photon Server version : v 2.6

SDK : Photon-Unity3D_v6-4-1_SDK
DLL : PhotonUnity3D.dll (2011-5-16)

Source : src-server/Lite

Problem :

When packet is increasing (even thouth the data overflows), sinle-core processor phone do not make any problem in dealing with the data, while multi-core processor
smart phone do not come up with the incerased packet and terminate the program abnormally. What we are believed to be the cauese of abnormal termination is
the rapid increase of date packet in a short time. ( Forced terminaiton occurs whether the packet carry empty OpParam Hashtable or not)

Problem only occurs when client get data from the server not sending data to server.

We anticipate your prompt reply and always thanks.

Comments

  • We will investigate the problem - expect feedback next week.
  • It did somewhat of a problem solving process?

    Thank you for answers.
  • We need to get an appropriate phone - that is supposed to arrive tomorrow. On an emulator we can't reproduce the issue.
  • Sorry for the delay - our Samsung S II arrived today. We look into the issue in the next days.
  • A question that might make it easier to reproduce the issue:
    Did you use Coroutines in Unity? Or threads? Anything that's using Photon and that's not in the main thread?
  • Each thread is running.
    When you send a packet, regardless of the thread will die a lot.
    a lot of packets to send to realtime_demo should set.
    (Example)
    for (int i = 0 i <100; i + +)
    {
    this.PublishEvent (customEvent, actor, raiseEventOperation.OperationRequest.Reliability);
    }
  • Sorry, but the issue is client side and the question was: Do you use Coroutines or Threads in Unity? Client Side.
    The code snipped looks like server code.
  • the client not use thread or Coroutines.
  • Hi BLACKSHIP.
    We have been able to reproduce that issue: We have joined the realtimedemo room with a native Windows C++ client and sent movement updates 200 times a second, then joined the same room with two unity3d clients. One on a Samsung Galaxy S2(OS : Gingerbread 2.3) and the other on a iPod Touch 2nd generation. The iOS unity client could handle the enormous amount of incoming events, triggered by the win32 client, without even loosing the connection. After a while, it stops sending movements updates itself, but it still receives all the incoming ones even after 30minutes and more (did not test much longer). This of course is an extreme test case. You should never send that often in a real game (aside from testing purposes maybe). However, the Android device could not keep up for just 30seconds. After a few seconds the application just crashed.

    We currently do not have any Singlecore Android device available.

    So you tested on a single-core android phone and it worked fine?
  • Test Phone model -> Samsung Galaxy S(OS : proyo 2.2 ,GingerBread 2.3),
    Samsung Galaxy TaB(OS : proyo 2.2 ), IPhone 3,4 IPad, IPad2.

    Single Core Smart Phone is No problem...
  • I would like to know the progress of solving the problem.
  • We've been reproducing this issue with the very same phone model and our Realtime Demo.
    As the same code is working on the single core machines and iOS as well, we decided to report this as bug to Unity.
    Maybe you could do the same to add importance to this.

    We will contact Unity about this next week, if we don't get feeback until then.
  • We could not reproduce this issue anymore with Unity 3.4.0f3 (current Beta version), so it seems, the developers at Unity have fixed it in the new version.
    Could you please check, if you can still reproduce it on your side with that Unity version?
  • Sincere thanks for an answer.
    unity 3.4 Is there any way I can get?
    Photon server2.6 will soon purchase a license.
  • You have 2 options:
    a) wait, until 3.4 gets public release
    b) mail the guys at unity and ask them, if you can get access to their beta-releases in general or to this particular version.
  • Unity 3.4 is now released.
  • WOW, just 2 hours after I suggested the option of waiting for the release. That has been quick :D